方法记录
优化记录
注意事项:
不要在OnDestory或者OnDisable中Kill
1 2 3 4 5 6 7 8 9
| public Transform tf; void Start() { tf.DoMove(Vector3.one,1f).SetLoops(-1); } void OnDisable() { tf.DoKill(); }
|
上述代码很容易引起 tf miss
错误,原因就是tf可能在场景跳转销毁的比这个脚本所在的物体要早,那么此时就会找不到tf,随机报错,建议做法
1 2 3 4 5 6 7 8 9 10
| public Transform tf; private Tweener tw; void Start() { tw= tf.DoMove(Vector3.one,1f).SetLoops(-1); } void OnDisable() { tw.kill(); }
|
在重复使用一个Tween的时候,不要再OnPlay中重置值,会没效果
1 2 3 4 5 6 7
| tw = target.DOMove(Vector3.one * 2, 1f).OnPlay(() => { target.position = Vector3.one * -1f; }); tw.Pause(); tw.SetAutoKill(false);
|
可以在tween记录的时候设置默认值,那么tween每次播放的时候都是从记录前的位置开始
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public Transform target; private Tweener tw;
private void Start() { target.position = Vector3.one*0.5f; tw = target.DOMove(Vector3.one * 2, 1f).OnPlay(() => { }); tw.Pause(); tw.SetAutoKill(false); } [NaughtyAttributes.Button] private void DOStart() { tw.Restart(); }
|