Nextrek
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
using UnityEngine;
/// <summary>
/// Attach to a game object to make its position always lag behind its parent as the parent moves.
/// </summary>
[AddComponentMenu("NGUI/Examples/Lag Position")]
public class LagPosition : MonoBehaviour
{
public int updateOrder = 0;
public Vector3 speed = new Vector3(10f, 10f, 10f);
public bool ignoreTimeScale = false;
Transform mTrans;
Vector3 mRelative;
Vector3 mAbsolute;
void OnEnable ()
{
mTrans = transform;
mAbsolute = mTrans.position;
mRelative = mTrans.localPosition;
}
void Update ()
{
Transform parent = mTrans.parent;
if (parent != null)
{
float delta = ignoreTimeScale ? RealTime.deltaTime : Time.deltaTime;
Vector3 target = parent.position + parent.rotation * mRelative;
mAbsolute.x = Mathf.Lerp(mAbsolute.x, target.x, Mathf.Clamp01(delta * speed.x));
mAbsolute.y = Mathf.Lerp(mAbsolute.y, target.y, Mathf.Clamp01(delta * speed.y));
mAbsolute.z = Mathf.Lerp(mAbsolute.z, target.z, Mathf.Clamp01(delta * speed.z));
mTrans.position = mAbsolute;
}
}
}
|
Revision |
Author |
Commited |
Message |
83
|
FMMortaroli
|
Tue 13 May, 2014 11:32:51 +0000 |
|