【发布时间】:2021-06-29 11:54:39
【问题描述】:
我创建了这个按钮预制件,它使用内置的 Unity Button 组件、带有 Raycast Target 的图像组件以及在按下按钮时播放缩放动画的 Animator 组件。 在单击按钮图形的边缘并按住鼠标按钮时出现问题。
随着动画缩小按钮大小(以及带有 Raycast 目标的图像组件),鼠标光标在某个点不再悬停在按钮上,动画状态恢复正常。随着按钮自动缩小到正常大小(并且仍然按住鼠标按钮),按钮再次被按下 - 陷入循环。
我怎样才能防止这种情况发生?我是否需要修改组件的顺序或更改 Animator 中的某些内容?
【问题讨论】:
-
听起来应该只缩放视觉对象,而不是实际按钮。我会将其拆分为两个对象:实际按钮(没有图像或透明)和一个子对象,该对象具有精灵、动画师并将其光线投射目标设置为 false。
-
我认为是这样的原因是:即使动画表现如预期,如果你在这个按钮后面有另一个对象,它会在按钮缩小时被点击——这是应该发生的事情吗?
-
没错,我只想缩放视觉效果。光线投射目标的矩形应始终保持不变。但是,如果我将 Animator 组件添加到子级,则动画不会播放。
-
在将Animator添加到子对象时,您是否设置了Animator的“控制器”字段?这就是点击按钮后播放的原因。另外,也许检查父对象是否被检查为光线投射目标,而子对象不是。您可以通过在父对象的 OnClick 方法中添加一些内容(例如写入要记录的内容的函数)来验证按钮是否被正确单击。
-
是的,控制器设置为“按钮”动画器,但它似乎只在它们位于同一个游戏对象上时才起作用。
标签: c# unity3d user-interface animation button