预设体是一个游戏对象及其组件的集合,目的是使游戏对象及资源能够被重复使用,相同的游戏对象可以通过一个预设体来创建,此过程可以理解为实例化
对预设体进行修改后,所有游戏对象都会相应改变
把一个游戏对象从层级视图拖到工程视图后就会生成一个预设体
代码实例
using UnityEngine;
using System.Collections;
public class Test : MonoBehaviour {
public GameObject playerPrefab; // play 的预设体
void Update () {
if (Input.GetKeyDown(KeyCode.P))
{
// 每当按下 P 键就会在场景中创建一个 Player 游戏对象
// 用预设体创建游戏对象
Vector3 pos = new Vector3();
pos.y = 0.5f;
// 使用 Random.Range() 方法来产生随机数
pos.x = Random.Range(-5f, 5f);
pos.z = Random.Range(-5f, 5f);
// 生成随机的角度值
float angle = Random.Range(0f, 360f);
// 使用 Instantiate 来创建游戏对象
// 参数1: 使用哪个预设体创建游戏对象
// 参数2: 创建出的游戏对象的初始位置
// 参数3: 创建出的游戏对象初始化旋转角度;Quaternion用于表示旋转;identity 表示不旋转
// Instantiate 返回一个 Object 类型的对象,用一个 GameObject 类型接受;后面用 as 关键字将返回的 Object 转换成 GameObject
GameObject p = Instantiate(playerPrefab,pos,Quaternion.AngleAxis(angle,Vector3.up)) as GameObject;
p.AddComponent<CubeController>();
}
}
}