123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // --------------------------------------------------------------------------------------------------------------------
- // <copyright file="BezierCurve.cs" company="Exit Games GmbH">
- // Part of: Photon Unity Networking Demos
- // </copyright>
- // <summary>
- // Original: http://catlikecoding.com/unity/tutorials/curves-and-splines/
- // Used in SlotRacer Demo
- // </summary>
- // <author>developer@exitgames.com</author>
- // --------------------------------------------------------------------------------------------------------------------
- using UnityEngine;
- namespace Photon.Pun.Demo.SlotRacer.Utils
- {
- public class BezierCurve : MonoBehaviour
- {
- public Vector3[] points;
-
- public Vector3 GetPoint (float t)
- {
- return transform.TransformPoint(Bezier.GetPoint(points[0], points[1], points[2], points[3], t));
- }
-
- public Vector3 GetVelocity (float t)
- {
- return transform.TransformPoint(Bezier.GetFirstDerivative(points[0], points[1], points[2], points[3], t)) - transform.position;
- }
-
- public Vector3 GetDirection (float t)
- {
- return GetVelocity(t).normalized;
- }
-
- public void Reset ()
- {
- points = new Vector3[] {
- new Vector3(1f, 0f, 0f),
- new Vector3(2f, 0f, 0f),
- new Vector3(3f, 0f, 0f),
- new Vector3(4f, 0f, 0f)
- };
- }
- }
- }
|