【问题标题】:Creating a Resources.Load variable to use with multiple buttons创建 Resources.Load 变量以与多个按钮一起使用
【发布时间】:2015-07-13 14:15:50
【问题描述】:

好的,我已经被困在这个兔子洞有一段时间了,我需要一些见解。我正在尝试创建一个小脚本,我可以将其附加到按下时实例化图像的按钮。我锁定了如何在编辑器中创建一个公共 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;
}

这是我编写的原始代码(如下),它适用于单个实例,但就像我提到的那样,我想将此代码放到几十个按钮上,并在编辑器中为每个按钮分配一个不同的图像预制件。

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;
}

【问题讨论】:

  • 看起来你应该将GameObject symbolPrefabObj作为方法的参数,并将GameObject symbolCharacter作为返回值。然后,您还可以将方法设为静态,然后,例如,每个 GameObject symbolCharacter* 有一个全局字段,并为每个字段调用该函数。

标签: unity3d instantiation


【解决方案1】:

也许是这样的:

public string imageName;

symbolCharacter = Instantiate(Resources.Load (Path.Combine("Prefabs/Symbols", imageName)), new Vector3(0, 0, 0), Quaternion.identity) as GameObject;

现在您可以将此脚本附加到许多具有不同 imageName 的游戏对象上,因为 imageName 是一个公共变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多