#一、描述
预设体就是一个模版,比如可以先设计一个怪物,他皮肤,有技能,有属性,当你之后需要进行生成多个怪物的时候,就可以运用这个预设体进行生成,他们的属性,脚本皮肤都自带着生成出来了
#二、使用说明
生成预设体,比如你创建了一个cube,就可以直接把cube拉到project面板当中,他就会自动成为一个预设体,怎么判断是否是预设体,你看他的图标如果是一个蓝色的方块的话,他就是一个预设体
怎么使用预设体?直接把预设体拉入到界面上去,他就会自动生成了。
当预设体的颜色或者属性更改时,所有根据预设体生成出来的游戏对象,他们的属性都会跟随着预设体进行变化
随便选择一个预设体,他的属性面板的Prefab有3个选项卡可以选择。
1 Select就是选中生成你这个游戏对象的那个预设体,在project面板显示
2 Revert就是当你把此游戏对象的属性自行更改后,会恢复到预设体默认的属性
3 Apply是让此对象的属性作为预设体的基础默认属性
#三、根据预设体动态生成游戏对象
// Update is called once per frame
void Update () {
if (Input.GetKeyDown (KeyCode.P)) {
//生成一个随机的Vector向量
Vector3 vector3 = new Vector3 ();
vector3.y = 0.5f;
vector3.x = Random.Range (-5,5);
vector3.z = Random.Range (-5, 5);
//生成一个随机的旋转角度
float angle = Random.Range (0, 360);
//运用Instantiate方法动态生成一个游戏对象,返回值为生成后的游戏对象
//1 需要生成的游戏预设体 2 生成后的游戏对象位置坐标 3 是否需要进行旋转或者其他操作
GameObject game = Instantiate (gameobject,vector3,Quaternion.AngleAxis(angle,Vector3.left)) as GameObject;
//根据返回的生成后的游戏对象,设置他的高度缩放为随机1 - 5
Transform transform = game.transform;
transform.localScale = new Vector3 (transform.localScale.x, Random.Range (1f, 5f), transform.localScale.z);
}
}
复制代码