AutoForce.cs 831 B

1234567891011121314151617181920212223242526272829303132
  1. using UnityEngine;
  2. using Random = UnityEngine.Random;
  3. namespace Mirror.Examples.RigidbodyBenchmark
  4. {
  5. [RequireComponent(typeof(Rigidbody))]
  6. public class AutoForce : NetworkBehaviour
  7. {
  8. public Rigidbody rigidbody3d;
  9. public float force = 500;
  10. public float forceProbability = 0.05f;
  11. protected override void OnValidate()
  12. {
  13. base.OnValidate();
  14. rigidbody3d = GetComponent<Rigidbody>();
  15. }
  16. [ServerCallback]
  17. void FixedUpdate()
  18. {
  19. // do we have authority over this?
  20. if (rigidbody3d.isKinematic) return;
  21. // time to apply force?
  22. if (Random.value < forceProbability * Time.deltaTime)
  23. {
  24. rigidbody3d.AddForce(Vector3.up * force);
  25. }
  26. }
  27. }
  28. }