Unity 3D制作“预制体”和实现
2016-12-22 本文已影响55人
光明程辉
Unity3D 里面的预制体,制作非常简单。只需在 控制面板里创建一个模型,然后,组合好想要的UI后,直接拖到“Assets” 目录下对应的文件夹下即可。看图:

使用代码,做绑定:
预制体是,全局的,要声明为:public
//制作“预制体”[定义一个引用变量],然后去到可视化界面,Inspector界面的脚本区域找到,自定义引用变量“prefab_gold”,点击选择预制体
public GameObject prefab_gold;
去到UI 界面可以看到自定义的 prefab_gold

此时,你就可以选择最右边的“小圆圈”,然后,弹出一个选择预制体的选择栏,选择你想要的预制体,这时我们可以使用代码让它们做我想做的事了。是不是很简单!!!
实战:声明--》加载 --》实例化

private GameObject m_prefab_gem; // 宝石
在 void Start() 方法里面加载:
{
m_prefab_gem = Resources.Load ("gem 2") as GameObject;
}
// 在其它地方实例化
GameObject gem = GameObject.Instantiate(m_prefab_gem,tile.GetComponent<Transform>().position+ new Vector3(0,0.6f,0) ,Quaternion.identity) as GameObject;
// 给宝石 建立父子关系(目的是,解决 砖块和 宝石一起掉落, 这样就可以不用给宝石添加刚体了)
gem.GetComponent<Transform>().SetParent(tile.GetComponent<Transform>());