比如有以下场景,飞机发射子弹,这个子弹就是被创建的对象
C#程序中创建对象
习惯C#的都知道,我们使用一个new就可以创建一个类、结构,称之为对象。
Hero hero=new Hero();
U3D中创建对象
创建对象是要用静态函数
publicstatic Object Instantiate(Object original,Vector3position,Quaternionrotation);
第一个参数:要创建的对象,第二个参数:要创建的对象的坐标,第三个参数:
-----------------------------------------------------------------------------------------------
实际应用中,子弹是被大量创建的,因此需要将子弹对象创建一个Prefabs(预设、我理解为克隆体、影子),而不用重新创建一个新的子弹对象,节省系统资源
下面展示一个玩家控制的飞机发射子弹的控制代码:
Hero.cs
void Start () { //省略部分代码 }
void Update () {
//省略部分代码
CreateRocket();
}
publicTransform obj_rocket;//子弹已经通过预设创建好了,将其联到主角,从Project视图拖拽绑定到游戏主角脚本
void CreateRocket()
{
//创建子弹的时间间隔
r_shootInterval -=Time.deltaTime;
if (r_shootInterval<=0)
{
r_shootInterval = 0.3f;
//按下空格键或鼠标左键
if (Input.GetKey(KeyCode.Space) ||Input.GetMouseButtonDown(0))
{
//子弹是从主角身上发出的,所以借用主角目前的坐标位置
Instantiate(obj_rocket,m_transform.position,m_transform.rotation);
}
}
}