UnityException:声明变量时不允许调用此函数
UnityException: You are not allowed to call this function when declaring a variable
我正在尝试实例化一个 GameObject 并保留对它的引用,但由于某种原因,即使实例化仍在进行,每次实例化时都会出现上述错误。它指向我的代码行是这样的: GameObject next = Instantiate(prefab);
就像我说的,实例化仍然正常工作,但为了稳定性,我想摆脱这个错误。 Unity 想从我这里得到什么?
Instantiate()
return 一个 Object
,你需要明确地把它转换成 GameObject
。
试试这个:
GameObject next = (GameObject)Instantiate(prefab);
更多信息:
Instantiate()
签名:public static Object Instantiate(Object original)
这清楚地表明 return 类型是 Object
而不是 Gameobject
参考
详情请参考this
Unity Instantiate
方法的 return 类型为 Object
。如果要将预制件存储在 GameObject
变量中,则需要将预制件实例化为 GameObject
。
假设您使用的是 C#,您可以实例化一个 GameObject 并将其存储在一个变量中,如下所示:
GameObject myGameObject = Instantiate(prefab) as GameObject;
你们都错了。 粗略地说,实例化returns
你输入的内容。
如果你有这个...
public GameObject modelDinosaur;
你确实可以拥有这个
GameObject nu = Instantiate(modelDinosaur);
不用投了。 (想投就投吧。)
是的,对于预制件,完全按照上面每个人告诉你的去做
GameObject nu = (GameObject)Instantiate(yourPrefab);
顺便说一句,使用“nu”(如“new”)作为临时变量是惯用的。 (“new”当然是关键字,不能用。)
最常见的是你会做这些事情..
GameObject nu = Instantiate(modelDinosaur);
YourDinoScript nuD = nu.GetComponent<YourDinoScript>();
yourDinoList.Add(nuD);
nu.name = "dynamic " + counter;
nuT = nu.transform;
nuT = blah blah
nuT = your holder
nuT = logic position
etc etc
PS:关于Unity的doco,你还不如看看醉酒聊天机器人的胡言乱语。算了。
我正在尝试实例化一个 GameObject 并保留对它的引用,但由于某种原因,即使实例化仍在进行,每次实例化时都会出现上述错误。它指向我的代码行是这样的: GameObject next = Instantiate(prefab);
就像我说的,实例化仍然正常工作,但为了稳定性,我想摆脱这个错误。 Unity 想从我这里得到什么?
Instantiate()
return 一个 Object
,你需要明确地把它转换成 GameObject
。
试试这个:
GameObject next = (GameObject)Instantiate(prefab);
更多信息:
Instantiate()
签名:public static Object Instantiate(Object original)
这清楚地表明 return 类型是 Object
而不是 Gameobject
参考
详情请参考this
Unity Instantiate
方法的 return 类型为 Object
。如果要将预制件存储在 GameObject
变量中,则需要将预制件实例化为 GameObject
。
假设您使用的是 C#,您可以实例化一个 GameObject 并将其存储在一个变量中,如下所示:
GameObject myGameObject = Instantiate(prefab) as GameObject;
你们都错了。 粗略地说,实例化returns
你输入的内容。
如果你有这个...
public GameObject modelDinosaur;
你确实可以拥有这个
GameObject nu = Instantiate(modelDinosaur);
不用投了。 (想投就投吧。)
是的,对于预制件,完全按照上面每个人告诉你的去做
GameObject nu = (GameObject)Instantiate(yourPrefab);
顺便说一句,使用“nu”(如“new”)作为临时变量是惯用的。 (“new”当然是关键字,不能用。)
最常见的是你会做这些事情..
GameObject nu = Instantiate(modelDinosaur);
YourDinoScript nuD = nu.GetComponent<YourDinoScript>();
yourDinoList.Add(nuD);
nu.name = "dynamic " + counter;
nuT = nu.transform;
nuT = blah blah
nuT = your holder
nuT = logic position
etc etc
PS:关于Unity的doco,你还不如看看醉酒聊天机器人的胡言乱语。算了。