- Home /
 
 
               Question by 
               richwarp · Jan 08, 2021 at 09:16 PM · 
                scripting problemorbitellipse  
              
 
              How to create a changing orbit from elliptical to planar and back?
I'm trying to create an object that rotates around the main camera, starting off on a planar orbit, then going elliptical, then back to planar. Essentially 'rotate the rotation'. Here is what I'm using, a great script from a while back:
  using UnityEngine;
  using System.Collections;
  
  public class testRotate2 : MonoBehaviour {
      
      GameObject cube;
      public Transform center;
      public Vector3 axis = Vector3.up;
      public Vector3 desiredPosition;
      public float radius = 2.0f;
      public float radiusSpeed = 0.5f;
      public float rotationSpeed = 80.0f;
  
      void Start () {
          cube = GameObject.FindWithTag("Cube");
          center = cube.transform;
          transform.position = (transform.position - center.position).normalized * radius + center.position;
          radius = 2.0f;
      }
      
      void Update () {
          transform.RotateAround (center.position, axis, rotationSpeed * Time.deltaTime);
          desiredPosition = (transform.position - center.position).normalized * radius + center.position;
          transform.position = Vector3.MoveTowards(transform.position, desiredPosition, Time.deltaTime * radiusSpeed);
      }
  }
 
               It doesn't have to be perfect, just moving from a 'ring around your head' on the azimuthal plane gradually to the same thing but on the elevation/vertical plane, then back to flat, etc. Any ideas?
               Comment
              
 
               
              Your answer