From 6ce8b9e22fc13be34b442c7b6af48b42cd44275a Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Wed, 13 Mar 2024 11:00:58 +0800 Subject: +init --- DoggoMovement.cs | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 DoggoMovement.cs (limited to 'DoggoMovement.cs') diff --git a/DoggoMovement.cs b/DoggoMovement.cs new file mode 100644 index 0000000..ea7519b --- /dev/null +++ b/DoggoMovement.cs @@ -0,0 +1,43 @@ +using UnityEngine; + +public class DoggoMovement : MonoBehaviour +{ + public float drag = 0.1f; + + private CollisionChecker[] checkers; + + private Rigidbody rig; + + private Rigidbody[] rigs; + + private MovementHandler move; + + private void Start() + { + move = base.transform.root.GetComponent(); + rigs = base.transform.root.GetComponentsInChildren(); + checkers = base.transform.root.GetComponentsInChildren(); + rig = GetComponent(); + } + + private void FixedUpdate() + { + float num = 1f; + num = 0f; + for (int i = 0; i < checkers.Length; i++) + { + if (checkers[i].sinceGrounded < 0.3f) + { + num += 1f / (float)checkers.Length; + } + } + move.multiplier = num; + Rigidbody[] array = rigs; + foreach (Rigidbody rigidbody in array) + { + rigidbody.velocity *= 1f - drag * num; + rigidbody.angularVelocity *= 1f - drag * num; + } + rig.AddTorque(Vector3.Angle(base.transform.up, Vector3.up) * Vector3.Cross(base.transform.up, Vector3.up) * 50f * num, ForceMode.Acceleration); + } +} -- cgit v1.1-26-g67d0