方法记录

优化记录

注意事项:

不要在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()
{
//每次开始时都会从Vector3.one*0.5f;
tw.Restart();
}