好吧,我现在已经被困在兔子洞里一段时间了,我需要一些见解。我正在尝试创建一个小脚本,我可以将其附加到按下实例化图像的按钮上。我已经锁定了如何在编辑器中创建公共GameObject字段,我可以将唯一的Image预制件拖动到编辑器中(对于每个按钮)。我现在迷路了。我最初在Resources.Load()中使用显式预制件编写它,但现在我需要对其进行抽象,以便我可以使用几十个按钮。
Vector3 symbolScale = new Vector3(1.0f, 1.0f, 1.0f);
public GameObject symbolPrefabObj = Resources.Load(symbolPrefab);
GameObject symbolCharacter;
public void OnPointerClick (PointerEventData eventData)
{
// Instantiate an object on Click
symbolCharacter = Instantiate(symbolPrefabObj, new Vector3(0, 0, 0), Quaternion.identity) as GameObject;
symbolCharacter.transform.parent = GameObject.FindGameObjectWithTag("MessagePanel").transform;
symbolCharacter.transform.localScale = symbolScale;
}
这是我编写的原始代码(下面),它适用于单个实例,但就像我提到的,我想将这些代码放到几十个按钮上,并在编辑器中为每个按钮指定一个不同的图像预制件。 / p>
Vector3 symbolScale = new Vector3(1.0f, 1.0f, 1.0f);
GameObject symbolCharacter;
#region IPointerClickHandler implementation
public void OnPointerClick (PointerEventData eventData)
{
// Instantiate an object on Click
symbolCharacter = Instantiate(Resources.Load ("Prefabs/Symbols/SymbolImage1"), new Vector3(0, 0, 0), Quaternion.identity) as GameObject;
symbolCharacter.transform.parent = GameObject.FindGameObjectWithTag("MessagePanel").transform;
symbolCharacter.transform.localScale = symbolScale;
}
答案 0 :(得分:1)
也许这就是:
public string imageName;
symbolCharacter = Instantiate(Resources.Load (Path.Combine("Prefabs/Symbols", imageName)), new Vector3(0, 0, 0), Quaternion.identity) as GameObject;
现在您可以将此脚本附加到具有不同imageName的许多游戏对象,因为imageName
是一个公共变量。