zombie_mp/Assets/HQ FPS Weapons/Scripts/Equipment/Physics/RecoilForce.cs
Sewmina Dilshan 68183e5317 initial
2021-08-23 13:28:33 +05:30

46 lines
1.1 KiB
C#

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;
}
}
}