能否在Unity中使用变量调用一个预制件?

问题描述 投票:0回答:1

我正在做一个App,当相机指向一个QR时,它将实例化某个模型,然后该App与一个网站通信,并显示与该模型相关的一个地方的数据(例如:植物园,它显示一些花和一个地方的数据)。

然后,该应用程序通信到一个网站,并显示与模型相关的地方的数据(例如:植物园,它显示了一些花和一个关于生态学的文本)。

问题是,虽然我可以用JSON来使用网站上的文本,但我似乎找不到一种方法来做同样的事情。

我还有一段代码,可以制作一个Json,这个代码返回的是模型的名称。

我的问题是,有没有办法用这个名字来搜索我的assets中的预制件,从而实例化预制件?

c# json unity3d
1个回答
0
投票

解决办法,在编辑器中分配prefabs,在你的脚本中有对不同prefabs的引用。

public GameObject prefab1;
public GameObject prefab2;

当你想实例化你的预制件时...

switch (JSONstring) {

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

}

0
投票

是的,这是可能的,创建一个字典(字符串,GameObject)和一个列表,为检查器创建一个新的字典。

Private void Awake(){ dictionary = new Dictionary (string,GameObject); / <- (不要用括号) foreach ( GameObject go in yourList ) { dictionary.Add(go, go.name);

}

Private void Search(string name){ if(dictionary.ContainssKey ( name )){

Instantiate(dictionary[name])。

}

}

© www.soinside.com 2019 - 2024. All rights reserved.