您的位置:首页 > 移动开发 > Unity3D

Unity3D中Prefab的使用

2015-02-27 19:12 232 查看
转载自:http://blog.sina.com.cn/s/blog_62df69790101ggnt.html

在Unity3D的工程建设中,Prefabs(预设)是最非常用的一种资源类型,是一种可被重复使用的游戏对象。

特点1:它可以被置入多个场景中,也可以在一个场景中多次置入。

特点2:当你在一个场景中增加一个Prefabs,你就实例化了一个Prefabs。

特点3:所有Prefabs实例都是Prefab的克隆,所以如果实在运行中生成对象会有(Clone)的标记。

特点4:只要Prefabs原型发生改变,所有的Prefabs实例都会产生变化。

例如,游戏中有5个人,每人需要显示自己的血条。假设血条属于NGUI中UI的一部分。

1 在 Awake() 中加载血条的 prefab,并缓存此对象的引用

private GameObject prefabBloodBarUI = null;

void Awake()

{

    prefabBloodBarUI = Resources.Load(UIPrefabPath.CONTROL_BLOOD_BAR) as GameObject;

}

2 在后面找个机会将它实例化成若干实例对象

foreach(ObjFightRole objFightRole in fightRoleList)

{

    GameObject objPrefab = NGUITools.AddChild(uiGameObject, prefabBloodBarUI);

    BloodBar bloodBar = objPrefab.GetComponent();

    bloodBar.objFightRole = objFightRole;

    objPrefab.name = objFightRole.title;

}

这里的问题有如下:

NGUITools.AddChild(parent, prefab)会将传入的 prefab 创建一个实例后,设置为 parent 的孩子
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity3d Prefab