Player.cs 1011 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System;
  2. using UnityEngine;
  3. public class Player : MonoBehaviour
  4. {
  5. private void Start()
  6. {
  7. this.lastPosition = base.transform.position;
  8. }
  9. private void Update()
  10. {
  11. float num = this.trailReference.spline.Length();
  12. this.distance = Mathf.Clamp(this.distance + this.speed * Time.deltaTime, 0f, num - 0.1f);
  13. this.trailReference.maxLength = Mathf.Max(num - this.distance, 0f);
  14. Vector3 vector = this.trailReference.spline.FindTangentFromDistance(this.distance);
  15. Vector3 rhs = this.trailReference.spline.FindPositionFromDistance(this.distance);
  16. if (vector != Vector3.zero)
  17. {
  18. if (this.lastPosition == rhs)
  19. {
  20. this.anim.CrossFade("Idle");
  21. }
  22. else
  23. {
  24. this.anim.CrossFade("Walk");
  25. }
  26. base.transform.forward = vector;
  27. base.transform.position = (this.lastPosition = rhs);
  28. }
  29. }
  30. public float speed;
  31. public SplineTrailRenderer trailReference;
  32. public Animation anim;
  33. private float distance;
  34. private Vector3 lastPosition;
  35. }