我想知道unity2d要如何在没有input的情况下,移动到不同的几个特定的位置,在移动的过程中还需要动画相应的变化
if((Vector2) transform.position != positions[index])
{
moveTest();
}
else
{
index = ++index % positions.Length;
}
void moveTest()
{
transform.position = Vector2.MoveTowards((Vector2)transform.position, positions[index], speed * Time.deltaTime);
}
我已经解决了移动的问题,但新的问题就是我要如何解决动画跟着变化
我有4段动画,开头就是向右然后向上,我尝试过if-else,只有在向右->向上这个过程成功了,之后就会疯狂抽搐,sprite来回旋转
我就希望有哪位大手子能提供一下思路。
估计是计算误差累加的问题,你把
if ((Vector2)transform.position != positions[index])
替换成
if (Vector2.Distance((Vector2)transform.position, positions[index]) > 0.1)
也可以不使用移动代码,直接手拖一个动画出来,毕竟你的需求是移动到特定的位置
可以看一下DoTween 的 Insert 同时播放移动和动画
看一下判断的逻辑,是不是判断重叠了或者是进入死循环了