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 --- StayInPlace.cs | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 StayInPlace.cs (limited to 'StayInPlace.cs') diff --git a/StayInPlace.cs b/StayInPlace.cs new file mode 100644 index 0000000..d10ebba --- /dev/null +++ b/StayInPlace.cs @@ -0,0 +1,50 @@ +using UnityEngine; + +public class StayInPlace : MonoBehaviour +{ + private InputHandler input; + + public Rigidbody rig; + + public float force; + + private Vector3 stopPosition; + + private bool isBroken; + + private PlayerDeath death; + + private Strength str; + + private float strength = 1f; + + private void Start() + { + str = GetComponent(); + input = GetComponent(); + death = GetComponent(); + stopPosition = rig.position; + } + + private void FixedUpdate() + { + if (death.dead) + { + return; + } + strength = str.strength; + if (input.inputMovementDirection.magnitude > 0.1f) + { + stopPosition = rig.position + rig.velocity * 0.25f; + isBroken = false; + } + else if (!isBroken) + { + if (Vector3.Distance(stopPosition, rig.position) > 1f) + { + isBroken = true; + } + rig.AddForce((stopPosition - rig.position) * force * strength, ForceMode.Acceleration); + } + } +} -- cgit v1.1-26-g67d0