using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace BITKit.FPS { public interface ISprint3 { public Vector3 Value { get; set; } void Tick(float deltaTime, Vector3 target); } [Serializable] public class Spring3:ISprint3 { public Vector3 value = Vector2.zero; [SerializeField] private Vector3 dampValue = Vector2.zero; [SerializeField] private float damp = 1; [SerializeField] private float frequence = 1; public void Clear() { value = Vector2.zero; dampValue = Vector2.zero; } public Spring3(float damp, float frequence) { this.damp = damp; this.frequence = frequence; } public Vector3 Value { get=>value; set=>this.value=value; } public void Tick(float deltaTime, Vector3 target) { value -= dampValue * deltaTime * frequence; dampValue = Vector3.Lerp(dampValue, value - target, deltaTime * damp); } } }