using UnityEngine; using System.Collections; using uc.Spline; public class BezierSplineTest : MonoBehaviour { public BezierSplineComponent m_spline; public float m_speed = 1, m_curspeed = 0 ,m_position = 0; public Vector3 m_up = Vector3.up; private BaseSpline.SplineIterator m_iter; void Awake() { m_iter = m_spline.Spline.GetIterator(); m_iter.SetTransform(m_spline.transform); } void Update() { m_iter.Iterate(m_speed * Time.deltaTime); Vector3 prevpos = transform.position; transform.position = m_iter.GetPosition(); m_curspeed = (transform.position - prevpos).magnitude / Time.deltaTime; if(m_iter.GetOffset()>=m_spline.Spline.Length-0.2f) { SendMessage("reset_role"); m_iter.SetOffset(0); } Debug.DrawLine(transform.position, transform.position + m_iter.GetTangent().normalized, Color.red); Debug.DrawLine(transform.position, transform.position + m_iter.GetNormal().normalized, Color.green); Debug.DrawLine(transform.position, transform.position + Vector3.Cross(m_iter.GetTangent().normalized, m_iter.GetNormal().normalized).normalized, Color.blue); } }