Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

776
Views
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 answers
Answer question

0

Replace transform.forward to transform.left

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!