123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- using UnityEngine;
- using System;
- namespace HQFPSWeapons
- {
- [Serializable]
- public class RecoilForce
- {
- public Vector3 RotForce;
- public Vector3 PosForce;
- [Range(0, 20)]
- public int Distribution;
- [Space]
- [Tooltip("max randomness for each axis")]
- [Group]
- public ForceJitter JitterForce;
- public void PlayRecoilForce(float forceMultiplier, Spring rotSpring = null, Spring posSpring = null)
- {
- if (posSpring != null)
- posSpring.AddForce(Vector3Utils.JitterVector(PosForce / 100, JitterForce.xJitter, JitterForce.yJitter, JitterForce.zJitter) * forceMultiplier, Distribution);
- if (rotSpring != null)
- rotSpring.AddForce(Vector3Utils.JitterVector(RotForce, JitterForce.xJitter, JitterForce.yJitter, JitterForce.zJitter) * forceMultiplier, Distribution);
- }
- [Serializable]
- public struct ForceJitter
- {
- [Range(0,1)]
- public float xJitter;
- [Range(0, 1)]
- public float yJitter;
- [Range(0, 1)]
- public float zJitter;
- }
- }
- }
|