Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/MegaCharacterFollow.cs
2026-02-21 16:45:37 +08:00

46 lines
1.1 KiB
C#

using UnityEngine;
[ExecuteInEditMode]
public class MegaCharacterFollow : MonoBehaviour
{
public MegaShape path;
private Rigidbody rbody;
public bool rot;
public Vector3 rotate = Vector3.zero;
private void Start()
{
float alpha = 0f;
Vector3 tangent = Vector3.zero;
int kn = 0;
rbody = GetComponent<Rigidbody>();
Vector3 position = base.transform.position;
Vector3 position2 = path.FindNearestPointWorld(position, 5, ref kn, ref tangent, ref alpha);
rbody.MovePosition(position2);
}
private void LateUpdate()
{
if ((bool)path)
{
Vector3 position = base.transform.position;
float alpha = 0f;
Vector3 tangent = Vector3.zero;
int kn = 0;
Vector3 vector = path.FindNearestPointWorld(position, 5, ref kn, ref tangent, ref alpha);
if (rot)
{
Vector3 vector2 = path.splines[0].InterpCurve3D(alpha + 0.001f, true, ref kn);
Quaternion quaternion = Quaternion.Euler(rotate);
Quaternion quaternion2 = Quaternion.LookRotation(vector2 - vector);
base.transform.rotation = path.transform.rotation * quaternion2 * quaternion;
}
vector.y = position.y;
base.transform.position = vector;
}
}
}