Unity 动态添加或移除预制件

Posted newchenxf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity 动态添加或移除预制件相关的知识,希望对你有一定的参考价值。

具体而言,指的是在代码中,动态添加或删除预制件。

这种功能,一般用于切换副本,地图等场景。

例如,做两个预制件,一个是主城,一个是副本。那可以通过代码,来动态加载2个预制件,来切换场景。

核心函数,是GameObject.InstantiateGameObject.Destroy

具体办法:

先把预制件放到Assets/Resouces目录下,如果文件多的话,可以再叠加个目录,如prefab。例如,绝对路径是Assets/Resouces/prefab/ExitZone.prefab

则在你所在的Scene的任何一个挂载脚本下,执行如下代码:

tempObject = Resources.Load("prefab/ExitZone") as GameObject;
GameObject.Instantiate(tempObject);

注意,后缀.prefab不要加。

这样,运行期间,就会添加这个对象。

如果你运行期间,用完prefab还想删除咋办?

也很简单,执行

GameObject.Destroy(this.tempObject);

以上是关于Unity 动态添加或移除预制件的主要内容,如果未能解决你的问题,请参考以下文章

在 Unity3d 中将游戏对象动态添加到场景中

Unity 运行状态下动态保存 预制体/预制体上脚本参数

如何使用 Unity ARKit 激活场景中的对象而不是预制件

Unity学习笔记:预制件Prefab的创建和使用

unity中怎么控制生成的prefab位置

Unity - 项目面板中缺少子元素扩展按钮的预制件