c# - 统一引擎 : Which component called a running script?

标签 c# user-interface unity3d button canvas

<分区>

因此,我正在尝试构建菜单的动画。我想要所有按钮,但按下的按钮被移到一边。但由于为每个按钮编写单独的脚本不够优雅(如果是动态按钮,也不切实际),我需要考虑其他事情。

所以,我想制作一个脚本,它会卡在几个按钮上。当按下其中任何一个时,将调用脚本,识别调用它的按钮,并将其排除在使用其分流动画之外。对于伪代码描述:

for (each button){
 if (pressed_button != this_button){
  run this_button's animation
 }
}

但是有一个问题:我一辈子都弄不明白如何识别按下的按钮!有什么建议吗?

最佳答案

您可以将 OnClick 事件添加到您的按钮,该事件可以调用您指向的脚本中的任何公共(public)函数。您还可以将单个参数传递给函数,该函数可以是对按钮、整数、字符串等的引用。有了这个,您可以拥有一个带有 switch 语句的函数,该函数根据您传递的内容处理按钮按下

enter image description here

请记住,当您将事件添加到按钮组件时,您需要从场景中拖入一个游戏对象并附加脚本,以便访问其公共(public)功能。您不能直接将脚本本身拖到 OnClick 事件中。

关于c# - 统一引擎 : Which component called a running script?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52370499/

相关文章:

c# - Unity 覆盖 `StandardAssetsScripts` 的最佳方式

java - Java Swing 中具有换行和换行功能的面板

c# - Unity Resource.Load 管理

ios - 应用程序经过广泛测试,也得到了苹果的认可,但一旦进入 App Store,所有用户都会崩溃

ios - 确定最后一行在 UILabel 中的结束位置

unity3d - 如何在unity3D中平滑移动Camera?

javascript - 为什么包装我的 JS SignalR 回调我的 $(function() 使其不被触发?

c# - 为什么我不能在条件运算符中返回具有共同祖先的兄弟类型?

c# - 正则表达式:将名字、姓氏拆分为以逗号分隔的列表,例如 "john smith Jr."到 "john"、 "smith"、 "Jr."

java - 从外部类访问 JFrame 中的组件