Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Unity引擎:哪个组件称为运行脚本?_C#_User Interface_Unity3d_Button_Canvas - Fatal编程技术网

C# Unity引擎:哪个组件称为运行脚本?

C# Unity引擎:哪个组件称为运行脚本?,c#,user-interface,unity3d,button,canvas,C#,User Interface,Unity3d,Button,Canvas,所以,我试图建立一个菜单的动画。除了按下的那个按钮,我想把所有的按钮都调到一边。但是,由于为每个按钮编写单独的脚本不够优雅(对于动态按钮来说,这是不切实际的),因此我需要考虑其他一些事情 所以,我想制作一个脚本,它将连接到几个按钮上。当按下其中任何一个按钮时,将调用脚本,标识调用它的按钮,并将其排除在使用分流动画的范围之外。对于伪代码描述: for (each button){ if (pressed_button != this_button){ run this_button's an

所以,我试图建立一个菜单的动画。除了按下的那个按钮,我想把所有的按钮都调到一边。但是,由于为每个按钮编写单独的脚本不够优雅(对于动态按钮来说,这是不切实际的),因此我需要考虑其他一些事情

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

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

但有一个问题:我一辈子都不知道如何识别按下的按钮!任何提示?

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


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

您也可以简单地将引用作为值传入(在这种情况下,例如游戏对象或其任何组件)。因此,您不需要根据值进行切换。这听起来是一个不错的选择。您可以通过inspector中的OnClick配置执行此操作吗?我现在不在电脑前检查,但我不记得以前见过。是的,它对参考参数和值参数的作用是一样的。还值得一提的是,该方法可能需要最多1个参数。嗯,我真的很喜欢参数的想法!仍然很好奇如何在脚本中识别脚本的调用方ftom,因为这必须是可能的,对吗但是,你的参数将是我要使用的。嗯,是的,我的意思是,这解决了我的问题,我认为实际问题的一半回答了。但是,如果有一种方法可以让脚本识别其调用组件,唯一的原则是作为其调用组件(不是因为它提供了一个“标识标签”,而是因为代码可以跟踪调用什么),那么出于学术好奇心,我也想这样做。也许有一天它会派上用场。参见副本中的2。它在一个函数中做这件事,并作为参数接收按钮引用!看起来它可以解决我的问题!但是,标题和实现列表并不容易找到。