using UnityEngine; namespace Artngame.TEM { public class TestSpin : MonoBehaviour { public GameObject spinSpehere; public float rotationSpeed = 5f; public float speedY = 1f; public float radius = 15f; private void Start() { Vector3 position = base.transform.position + Vector3.right * radius; position.y = 0f; spinSpehere.transform.position = position; } private void Update() { Vector3 position = base.transform.position; Vector3 vector = position - base.transform.up * 100f; Vector3 vector2 = position + base.transform.up * 100f; float num = TornadoMath.CalculateProgress(vector, vector2, spinSpehere.transform.position); Vector3 vector3 = num * (vector2 - vector) + vector; float magnitude = (spinSpehere.transform.position - vector3).magnitude; Vector3 normalized = (spinSpehere.transform.position - vector3).normalized; spinSpehere.transform.position += (radius - magnitude) * normalized; spinSpehere.transform.RotateAround(base.transform.position, base.transform.up, rotationSpeed * Time.deltaTime); spinSpehere.transform.Translate(base.transform.up * speedY * Time.deltaTime); if (num > 1f) { spinSpehere.transform.position = vector + Vector3.right * radius; } } } }