From 8e13e7e2874adc8982e16d1d2ed2e28d7480b45f Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Sun, 19 May 2024 16:05:58 +0800 Subject: +1.57 --- Thronefall_1_57/Decompile/Ara/TireTrack.cs | 50 ++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Thronefall_1_57/Decompile/Ara/TireTrack.cs (limited to 'Thronefall_1_57/Decompile/Ara/TireTrack.cs') diff --git a/Thronefall_1_57/Decompile/Ara/TireTrack.cs b/Thronefall_1_57/Decompile/Ara/TireTrack.cs new file mode 100644 index 0000000..845bee2 --- /dev/null +++ b/Thronefall_1_57/Decompile/Ara/TireTrack.cs @@ -0,0 +1,50 @@ +using UnityEngine; + +namespace Ara; + +[RequireComponent(typeof(AraTrail))] +public class TireTrack : MonoBehaviour +{ + private AraTrail trail; + + public float offset = 0.05f; + + public float maxDist = 0.1f; + + private void OnEnable() + { + trail = GetComponent(); + trail.onUpdatePoints += ProjectToGround; + } + + private void OnDisable() + { + trail.onUpdatePoints -= ProjectToGround; + } + + private void ProjectToGround() + { + if (Physics.Raycast(new Ray(base.transform.position, -Vector3.up), out var hitInfo, maxDist)) + { + if (trail.emit && trail.points.Count > 0) + { + AraTrail.Point value = trail.points[trail.points.Count - 1]; + if (!value.discontinuous) + { + value.normal = hitInfo.normal; + value.position = hitInfo.point + hitInfo.normal * offset; + trail.points[trail.points.Count - 1] = value; + } + } + trail.emit = true; + } + else if (trail.emit) + { + trail.emit = false; + if (trail.points.Count > 0) + { + trail.points.RemoveAt(trail.points.Count - 1); + } + } + } +} -- cgit v1.1-26-g67d0