BITKit/Src/UnityPluginsSupport/FPS/Spring3.cs

42 lines
1.1 KiB
C#
Raw Normal View History

2023-10-24 23:38:22 +08:00
using System;
2023-06-05 19:57:17 +08:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace BITKit.FPS
2025-03-09 13:38:23 +08:00
{
public interface ISprint3
{
public Vector3 Value { get; set; }
void Tick(float deltaTime, Vector3 target);
}
2023-10-24 23:38:22 +08:00
[Serializable]
2025-03-09 13:38:23 +08:00
public class Spring3:ISprint3
2023-06-05 19:57:17 +08:00
{
public Vector3 value = Vector2.zero;
2023-10-24 23:38:22 +08:00
[SerializeField] private Vector3 dampValue = Vector2.zero;
[SerializeField] private float damp = 1;
[SerializeField] private float frequence = 1;
2023-06-05 19:57:17 +08:00
public void Clear()
{
value = Vector2.zero;
dampValue = Vector2.zero;
}
public Spring3(float damp, float frequence)
{
this.damp = damp;
this.frequence = frequence;
}
2025-03-09 13:38:23 +08:00
public Vector3 Value
{
get=>value;
set=>this.value=value;
}
public void Tick(float deltaTime, Vector3 target)
2023-06-05 19:57:17 +08:00
{
value -= dampValue * deltaTime * frequence;
dampValue = Vector3.Lerp(dampValue, value - target, deltaTime * damp);
}
}
}