1
This commit is contained in:
37
Unity/Extensions/FPS/SpringEulerAngle.cs
Normal file
37
Unity/Extensions/FPS/SpringEulerAngle.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BITKit
|
||||
{
|
||||
[System.Serializable]
|
||||
public class SpringEulerAngle
|
||||
{
|
||||
public float damp = 20;
|
||||
public float frequence = 15;
|
||||
[HideInInspector]
|
||||
public Vector3 value = Vector2.zero;
|
||||
Vector3 dampValue = Vector2.zero;
|
||||
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
value = Vector2.zero;
|
||||
dampValue = Vector2.zero;
|
||||
}
|
||||
|
||||
public void Update(float deltaTime, Vector3 target)
|
||||
{
|
||||
value -= dampValue * deltaTime * frequence;
|
||||
dampValue = eulerLerp(dampValue, value - target, deltaTime * damp);
|
||||
}
|
||||
public static Vector3 eulerLerp(Vector3 left, Vector3 right, float t)
|
||||
{
|
||||
Vector3 ret;
|
||||
ret.x = Mathf.LerpAngle(left.x, right.x, t);
|
||||
ret.y = Mathf.LerpAngle(left.y, right.y, t);
|
||||
ret.z = Mathf.LerpAngle(left.z, right.z, t);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user