【发布时间】:2018-04-03 11:29:07
【问题描述】:
我在 Unity 中制作西洋跳棋游戏,并且我有一块对象,里面有一个瓷砖移动动画(GameObject)。当我单击新位置时,会触发动画并移动棋子。但在那之后,将这块移动到下一个图块(新坐标)不起作用!
这是该部分的代码!
if(selectedPiece.ValidMove(pieces, x1, y1, x2, y2, hasKilled))
{
// Tile jump check
if (Mathf.Abs (x2 - x1) == 1) {
if(selectedPiece.isWhite)
{
if(selectedPiece.transform.position.x < mouseOver.x)
{
// default
selectedPiece.GetComponentInChildren<Animator>().SetTrigger("tileJump");
selectedPiece.transform.GetChild(0).transform.position = Vector2.zero;
//pieces[x2, y2] = selectedPiece;
pieces[x1, y1] = null;
//MovePiece (selectedPiece, x2, y2);
}else{
selectedPiece.GetComponentInChildren<Animator>().SetTrigger("tileJump");
}
}
}
}
【问题讨论】:
-
使用 Debug.Log() 来验证代码是否按您的意愿执行。另外,请检查您的动画师:也许您错过了两种状态之间的过渡
-
是的,我的过渡似乎有问题,Entry --> idle(null) ; AnyState --> newState(trigger) 这里是动画过渡。动画完成后,它卡住了。我已经为条目添加了新的过渡,但是在动画片段再次回到旧位置之后!