DontMove.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1.  using UnityEngine;
  2. public class DontMove : MonoBehaviour
  3. {
  4. new Rigidbody rigidbody;
  5. public Vector3 position, velocity, angularVelocity;
  6. public bool isColliding;
  7. void Awake()
  8. {
  9. rigidbody = GetComponent<Rigidbody>();
  10. }
  11. void FixedUpdate()
  12. {
  13. if (!isColliding)
  14. {
  15. position = rigidbody.position;
  16. velocity = rigidbody.velocity;
  17. angularVelocity = rigidbody.angularVelocity;
  18. }
  19. }
  20. void LateUpdate()
  21. {
  22. if (isColliding)
  23. {
  24. rigidbody.position = position;
  25. rigidbody.velocity = velocity;
  26. rigidbody.angularVelocity = angularVelocity;
  27. }
  28. }
  29. void OnCollisionEnter(Collision collision)
  30. {
  31. if (collision.collider.tag == "Player")
  32. isColliding = true;
  33. }
  34. void OnCollisionExit(Collision collision)
  35. {
  36. if (collision.collider.tag == "Player")
  37. isColliding = false;
  38. }
  39. }