我正在构建 ac# unity 游戏,但在让动画正常工作时遇到了一些麻烦。我正在使用 LeanTween 来选择这些动画。
这是我的一些代码:
void Alpha()
{
Destroy(Cubes[aux]);
AddCube(aux2,Map[aux]);
ChangeColor(aux2);
Map[aux]=0;
Semafor = true;
}
void MoveCube(int Initial,int Final)
{
Semafor = false;
EmptySpaces.Remove(Final);
EmptySpaces.Add (Initial);
LeanTween.move(Cubes[Initial],new Vector3(PosX[Final],PosY[Final],5),0.5f);
aux = Initial; // auxiliar variables used because I don't know how to send params through Invoke
aux2 = Final;
// Invoke( "Alpha",0.6f);
Alpha();
}
如果我像这样运行上面的代码,而不使用 Invoke,它就可以完美运行。问题是它在动画完成之前破坏了游戏对象。因此,我需要在动画调用和 Destroy 的实际调用之间存在某种延迟。问题是,当我尝试在 Alpha 中使用 Invoke all 函数时,开始表现得很奇怪和错误。例如,许多对象实际上并未被销毁。
我正在寻找一种在延迟后进行该函数调用的方法。我已经尝试过该yield return new WaitforSeconds
方法,但没有奏效。也尝试过LeanTween.delaiedCall
thinggy,但是当我尝试通过Alpha时它给了我一个错误,因为它需要一个System.Action。
我正在寻找一种方法让这个动画工作,然后在不涉及任何碰撞的情况下销毁对象。