Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

788
Visualizações
Unity 3D - Moving an Object around a circle circumference facing forward

I am using Unity3D to move the player around the circumference of a large circle facing inwards towards the centre at all times.

The following code works by using transform.forward

  // Rotate the forward vector towards the target direction
    Vector3 newDirection = Vector3.RotateTowards(transform.forward, targetDirection, singleStep, 0.0f);

and then I move the player sideways by using

characterController.Move(horizontalSpeed * transform.right * Time.deltaTime);

I have been stuck on how to get the player to move around the circumference but facing forward with the left of the player facing the centre of the circle. My code is as follows

   void Start()
    {
        characterController = GetComponent<CharacterController>();

    }

    void Update()
    {


        // Determine which direction to rotate towards
        Vector3 targetDirection = GameObject.Find("Platforms").transform.position - transform.position;

        // The step size is equal to speed times frame time.
        float singleStep = 1 * Time.deltaTime;

        // Rotate the forward vector towards the target direction by one step
        Vector3 newDirection = Vector3.RotateTowards(transform.forward, targetDirection, singleStep, 0.0f);

        // Draw a ray pointing at our target in
        Debug.DrawRay(transform.position, newDirection*50, Color.red);

        // Calculate a rotation a step closer to the target and applies rotation to this object
        transform.rotation = Quaternion.LookRotation(newDirection);

        CheckIfOnGround();

        characterController.Move(velocity * Time.deltaTime);

    }

   
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Replace transform.forward to transform.left

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda