using UnityEngine; public class Torus : MonoBehaviour { private Rigidbody _controller; public void Awake() { _controller = GameObject.FindGameObjectWithTag("Torus controller").GetComponent(); } public void OnCollisionEnter(Collision collision) { GetComponent().Play(); // Move the torus. GetComponent().isKinematic = true; GetComponent().isTrigger = true; transform.position = collision.collider.transform.position; GetComponent().isKinematic = false; GetComponent().isTrigger = false; // Move the controller. Vector3 oldPos = _controller.transform.position; _controller.transform.position = collision.collider.transform.position; Vector3 delta = _controller.transform.position - oldPos; // Move the camera. Camera.main.transform.Translate(delta, Space.World); } }