【发布时间】:2014-10-12 05:34:05
【问题描述】:
我正在尝试弄清楚如何从 c# 代码中实例化一个预制件,并且我尝试了以下方法:
我已经像这样创建了一个公共转换:
public Transform myItem;
然后我创建了一个预制件并将其命名为 myPrefab 并将其放在我的 Assets/Resources 文件夹中。
然后我在 start() 中调用这个:
myItem = Instantiate(Resources.Load("myPrefab")) as Transform;
运行代码时,Transform 保持为空?
我错过了什么?任何帮助表示赞赏。
【问题讨论】:
-
使用硬转换(产生错误)而不是软转换(产生空值)可能有助于避免类似未来的问题。如果您将上述内容写为
myItem = (Transform)Instantiate(Resources.Load("myPrefab"));,Unity 会告诉您“error CS0030: Cannot convert type `UnityEngine.GameObject' to `UnityEngine.Transform'”,您的Instantiate()API 使用问题将很明显。
标签: c# object unity3d transform