对于重复使用的游戏体可以将其制作成Perfab。首先在Project窗口中选择【Create】-【Prefab】创建一个空的Perfab。然后将该重复使用的游戏体拖到这个空的Perfab上就OK了。

比如说,gun发射子弹,子弹可以看作一个重复使用的游戏体,就可以将子弹制作成一个Perfab让gun去使用。

该怎么将gun和子弹的Perfab关联起来呢?

首先,需要在gun的脚本文件中添加一个Transform属性,这个属性用来指向子弹的Perfab。可以这样写:Public Transform  m_rocket;这样在gun的Inspector窗口中会增加一个Rocket选项,可以选择子弹的Perfab,或者将其拖动到Rocket选项上,即可实现gun与子弹的Perfab的关联。

如果gun要发射子弹,比如当我们按下空格键时,gun就发射一颗子弹。

可以这样写:

 if(Input.GetKey(KeyCode.Space))

 {

     //m_transform  是gun的Transform组件。

     Instantiate(m_rocket,m_transform.position,m_transform.rotation);

 }

Unity的游戏体只能使用Instantiate函数实例化,不能使用new。

Instantiate函数的介绍

函数原型:

staticfunction Instantiate (original:Object,position:Vector3,rotation: Quaternion):Object

作用:克隆原始物体并返回克隆物体。

克隆原始物体,位置设置在position,设置旋转在rotation,返回的是克隆后的物体。这实际上在Unity和使用复制(ctrl+D)命令是一样的,并移动到指定的位置。如果一个游戏物体,组件或脚本实例被传入,实例将克隆整个游戏物体层次,以及所有子对象也会被克隆。所有游戏物体被激活。

05-16 19:02