Files
2026-03-04 10:03:45 +08:00

41 lines
1.2 KiB
C#

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;
}
}
}
}