【问题标题】:Is it possible to call a prefab in Unity using a variable?是否可以使用变量在 Unity 中调用预制件?
【发布时间】:2020-05-04 22:07:43
【问题描述】:

我正在制作一个应用程序,当相机指向 QR 时实例化某个模型。

应用程序然后与网站通信并显示与模型相关的地点的数据(例如:植物园,它显示一些鲜花和有关生态的文字)

问题是,虽然我可以使用 JSon 使用来自网站的文本,但我似乎找不到同样的方法。

我也有一段代码可以做一个 JSon,这个返回的是模型的名字。

我的问题是,有没有办法使用该名称在我的资产中搜索预制件并实例化预制件?

【问题讨论】:

    标签: c# json unity3d


    【解决方案1】:

    解决方法,在编辑器中分配预制件,在您的脚本中引用不同的预制件:

    public GameObject prefab1;
    public GameObject prefab2;
    

    当你想实例化你的预制时

    switch (JSONstring) {
    
    case "Garden":
    Instantiate(prefab1, new Vector3(0, 0, 0), Quaternion.identity);
    break;
    
    }
    

    【讨论】:

    • 那么,我应该为我拥有的每个预制件制作一个公共游戏对象和一个案例吗? (又名,花园,街道,办公室,湖泊,实验室)
    • 是的,然后你可以在检查器的预制件中扣篮,并且你的脚本有对它的引用
    【解决方案2】:

    是的,有可能,创建一个字典(字符串,GameObject)和一个带有预制件的检查器列表,使用该列表创建一个新字典

    私有 void Awake(){
    字典 = 新字典(字符串,游戏对象); // foreach ( GameObject 进入 yourList ) {
    字典.Add(go, go.name);

    }

    私人无效搜索(字符串名称){
    if(dictionary.ContainsKey ( name )){

    实例化(字典[名称]);

    }

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 2011-11-23
      • 2019-03-08
      • 2011-06-03
      • 2023-03-26
      • 1970-01-01
      • 2020-02-16
      相关资源
      最近更新 更多