Unity项目的目录组织与Prefab的动态实例化

来源:互联网 发布:.手机 域名骗局 编辑:程序博客网 时间:2024/04/30 03:33

Unity项目的资源目录如何组织呢?作为一个初学者,我提供一个基于Resources的简单方案。我们先来分析一下。

首先,一个资源,例如三维模型,Import之后会自动创建一些目录,比如Materials、Texture。我们可以根据自己创建的目录结构来随意移动这些原有内容,比如将材质、贴图和模型文件分别归类整理,但这些操作并不影响模型的使用。其次,整理过后导出为unitypackage后,再次Import到别的项目中则会保留当时Export之前的默认目录。为了保证项目资源之间的方便移植,我们将目录做出规定,所有使用的资源都使用同一种目录结构,这样不同的资源整合就变得容易了。Unity在Import时会自动识别哪些文件是新的,我们只需要勾选这些文件即可。但如果想删除某一个资源的所有相关文件呢?只需要右击想要删除的那个Prefab,选择Select Dependencies选项,Unity会自动找到这些相关文件。

我设置的目录如下图:


我们可以使用Resources.Load函数来导入Resources目录下的资源,当然我们可以写全路径,这样就可以不必要用Resources这个名字。使用用Resources.Load函数将用到的Prefab导入为一个GameObject,然后使用Instantiate函数实例化它。编写如下脚本:

using UnityEngine;using System.Collections;public class Staticer : MonoBehaviour {public static GameObject heli0;// Use this for initializationvoid Start () {heli0 = Resources.Load ("Prefabs/helicopter") as GameObject;Instantiate (heli0);}// Update is called once per framevoid Update () {}}
将它挂载到主摄像相机下(发现主摄像机真是个挂载脚本的好地方微笑),然后点击运行,场景中就会出现一个我们预先设计好的Prefab。基本功能就是这样了,可以结合自己的UI使用。



0 0
原创粉丝点击