繁体   English   中英

Unity重复移动对象动画

[英]Unity Moving object Animation repeatedly

我正在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");    
                    }
                }
            }
        }

带有动画器的动画旨在可循环播放,因此,当您再次播放它时,它将始终返回到原来的位置。

一种解决方案是通过代码将对象的位置设置为预期位置,同时重置动画制作器。

所以

transform.position = yourCheckersIntededPosition;

如果只希望棋盘格对象在板上滑动,也可以用代码执行此操作,而不用动画师对其进行动画处理,那么该位置将始终与显示位置一致。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM