Unity Prefab问题

时间:2016-06-10 17:32:37

标签: c# unity3d

所以我在团结项目中遇到了障碍,我甚至无法找到类似的问题。我不确定如何轻松地描述它,但这里有:

我有一个预制件。它意味着充当按钮(由于各种原因,它不能是UI按钮)。我有一堆他们。每个按钮都附有一个脚本,因此当按下按钮时,它将显示一些文本和一些图像。但是,这不起作用。

为了测试它,我放下了一些这些按钮。我填写了其中两个的脚本框,让我们称之为A和B.它们被定向到相同的UI元素,但每个元素都被赋予了不同的图像集。但是,当我测试它时,它只调用来自B的图像。如果A是唯一设置的,所有按钮都从A调用,即使没有连接脚本。

我需要一些方法来刷新分配的起始值"值"对于变量。因此,只有在点击时,而不是之前,它才会从我在编辑器中指定的内容中拉出来。任何帮助或建议将不胜感激。

2 个答案:

答案 0 :(得分:0)

从统一网站尝试此链接Instantiating Prefabs

一种可能的解决方案是为每个按钮(预制件)设置一个全局布尔变量。如果按钮1处于活动状态,则将变量设置为true,对于按钮2和3,将它们设置为false以使其处于非活动状态。

我建议以这种方式为每个按钮设计脚本。按下按钮后,刷新每个按钮的变量值,并在按下按钮后再次检查这些值。

答案 1 :(得分:0)

你好像差不多了。

public class A : Mono {
    public ImageToShow Image; // Assign this in inspector

    void OnMouseDown() {
         Image.DoYourThing(); // Do whatever you need to here for the image
    }
}

当这是在许多不同的" Prefabs"如果正确处理预制件,则每个按钮都有自己的实例,并具有对检查器内分配的图像的引用。

https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnMouseDown.html

OnMouseDown的链接。

每个按钮都可以有SAME脚本,您只需要确保您已经SAVED的每个预制实例都为其脚本分配了正确的图像。

希望这有帮助。

编辑:这样做,每个按钮都会被激活"但如果不点击,就不会做任何事情。如果点击或单击非活动游戏对象(因为它不是GUI元素,这是您的按钮),将不会调用该对象上的任何方法。