0%

Unity按钮动画问题


在制作新游戏愤怒的小鸟时,我遇见了按钮被选中后,动画无法正常播放的问题。
后来得到解决,特在此记录,以作备忘。


背景

Unity 中使用 GUI 作为其 UI 界面,其中包括了很多有用的预制物体。按钮(Button)便是其中之一。
原版游戏中,每当玩家鼠标进入按钮时,按钮便会放大,已表明其被选中。当按下后,该按钮仍然可以触发上述效果。
为了实现这种功能,我尝试使用 Button 中的 Animation ,试图通过动画来控制其缩放。
然而这样就遇到了问题。

问题

Unity 中的 UI 物体,继承于Selectable类。顾名思义,该类说明该物体可以被选中。
当按钮被选中后,动画机会自动切换到 Select 。这时若是想再次使其放大,必须先取消对该按钮的选择(通过点击空白区域或是其他可被选中的 UI 物体)。
这就使得我无法做出和原版按钮一样的效果。

解决

但万事皆有解决之法。

我一开始试图用取消选择的方式解决问题,但很可惜的是,我并没有找到取消选择的有效方法。
后来,我猜测是由于导航(Navigation)的缘故。这个导航,可以自动生成 UI 之间的切换路径,当用键盘操作时,可以顺着预设路径选择不同 UI 。
事实证明,这的确是导航的问题。通过把导航关闭,问题得到解决。


-------------End-------------