Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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编辑器脚本帮助创建像ui按钮这样的脚本对象_C#_Unity3d - Fatal编程技术网

C# Unity C编辑器脚本帮助创建像ui按钮这样的脚本对象

C# Unity C编辑器脚本帮助创建像ui按钮这样的脚本对象,c#,unity3d,C#,Unity3d,在Unity中,当您向ui添加按钮时,会得到一个脚本,该脚本为您提供了向OnClick方法添加项的选项。 如果可能的话,我想做类似的事情。 我想有一个脚本,其中有一个所有的影响,块可以被损坏的脚本列表。 我希望能够将不同的脚本拖动到此列表中,或者通过单击+符号并从类似按钮脚本的列表中选择来添加它们。 包括在列表中的效果有火、闪电、酸等。 一个模型图像示例 编辑:有错误的模型图像你是在问如何公开你的游戏对象,以便你可以在检视器中点击和拖动项目吗 所以应该是这样的 List<Effects

在Unity中,当您向ui添加按钮时,会得到一个脚本,该脚本为您提供了向OnClick方法添加项的选项。

如果可能的话,我想做类似的事情。 我想有一个脚本,其中有一个所有的影响,块可以被损坏的脚本列表。 我希望能够将不同的脚本拖动到此列表中,或者通过单击+符号并从类似按钮脚本的列表中选择来添加它们。 包括在列表中的效果有火、闪电、酸等。 一个模型图像示例


编辑:有错误的模型图像

你是在问如何公开你的游戏对象,以便你可以在检视器中点击和拖动项目吗

所以应该是这样的

List<Effects> effects; 
public GameObject object; 
public bool fire; 
pbulic bool lightening;  
然后,通过单击场景中的游戏对象并将其拖动到检查器中,可以设置上面的对象。同样对于bools,您可以使用true或false bools打开火或闪电或false。这有意义吗

此外,您还可以创建一个效果列表,用于保存火焰、照亮对象

这就是你说的吗

无法创建公共脚本,因为它不是变量

无论如何,您可以使用函数getComponent

您可以尝试类似的方法:

// Drag and drop your gameobject containing your script
public GameObject obj;

void start()
{
  obj.getComponent<NameOfYourScript>()."function or variable in your script";
}

我会使用unity的默认数组绘制和PropertyDrawer,它不会直接给你+和-按钮,但它允许你为你的类绘制你想要的检查器。然后可以使用数组的大小或右键单击每个值来复制或删除它


这应该给你一个例子,让你得到你想要的

我不完全确定我是否理解你的问题,但请让我知道我的答案是否有帮助。我的效果是公开的,它会显示在编辑器中,但我无法将效果脚本拖放到其中。我只能拖放附加了效果脚本的unity对象。编辑器中显示的内容:以及单击添加效果时得到的空窗口: