add
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// Attach to a game object to make its rotation always lag behind its parent as the parent rotates.
|
||||
/// </summary>
|
||||
|
||||
[AddComponentMenu("NGUI/Examples/Lag Rotation")]
|
||||
public class LagRotation : MonoBehaviour
|
||||
{
|
||||
public float speed = 10f;
|
||||
public bool ignoreTimeScale = false;
|
||||
|
||||
Transform mTrans;
|
||||
Quaternion mRelative;
|
||||
Quaternion mAbsolute;
|
||||
|
||||
public void OnRepositionEnd ()
|
||||
{
|
||||
Interpolate(1000f);
|
||||
}
|
||||
|
||||
void Interpolate (float delta)
|
||||
{
|
||||
if (mTrans != null)
|
||||
{
|
||||
Transform parent = mTrans.parent;
|
||||
|
||||
if (parent != null)
|
||||
{
|
||||
mAbsolute = Quaternion.Slerp(mAbsolute, parent.rotation * mRelative, delta * speed);
|
||||
mTrans.rotation = mAbsolute;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Start ()
|
||||
{
|
||||
mTrans = transform;
|
||||
mRelative = mTrans.localRotation;
|
||||
mAbsolute = mTrans.rotation;
|
||||
}
|
||||
|
||||
void Update ()
|
||||
{
|
||||
Interpolate(ignoreTimeScale ? RealTime.deltaTime : Time.deltaTime);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user