所以我在团结项目中遇到了障碍,我甚至无法找到类似的问题。我不确定如何轻松地描述它,但这里有:
我有一个预制件。它意味着充当按钮(由于各种原因,它不能是UI按钮)。我有一堆他们。每个按钮都附有一个脚本,因此当按下按钮时,它将显示一些文本和一些图像。但是,这不起作用。
为了测试它,我放下了一些这些按钮。我填写了其中两个的脚本框,让我们称之为A和B.它们被定向到相同的UI元素,但每个元素都被赋予了不同的图像集。但是,当我测试它时,它只调用来自B的图像。如果A是唯一设置的,所有按钮都从A调用,即使没有连接脚本。
我需要一些方法来刷新分配的起始值"值"对于变量。因此,只有在点击时,而不是之前,它才会从我在编辑器中指定的内容中拉出来。任何帮助或建议将不胜感激。
答案 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元素,这是您的按钮),将不会调用该对象上的任何方法。