繁体   English   中英

在Unity中从c#加载PreFab

[英]Loading PreFab from c# in Unity

我试图弄清楚如何从c#代码实例化预制件,我尝试了以下内容:

我创建了一个像这样的公共变换:

public Transform myItem;

然后我创建了一个预制件并将其命名为myPrefab并将其放在我的Assets / Resources文件夹中。

然后我在start()中调用:

myItem = Instantiate(Resources.Load("myPrefab")) as Transform;

运行代码时,Transform保持为空?

我错过了什么? 任何帮助表示赞赏。

当对象被实例化时,它们变成GameObjects 您的代码应如下所示:

GameObject myItem = Instantiate(Resources.Load("myPrefab")) as GameObject;

如果你想要一个变换,你可以简单地使用所有GameObjects都有变换组件的事实。

Transform t = myItem.transform.

或者,如果你真的想成为一个坏蛋 ,你可以在一行中完成所有这些:

Transform myItem = (Instantiate(Resources.Load("myPrefab")) as GameObject).transform;

预制件应放入GameObject而不是Transform:

GameObject myItem = (GameObject)Instantiate(Resources.Load("myPrefab"), typeof(GameObject));

然后你可以从GameObject访问Transform,如下所示:

Transform transform = myItem.transform;

如果你有这样的预制路径

GameObject mainObject = (GameObject)Instantiate(Resources.Load("prefabs/" + "BaseMain"));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM