物体实例化案例

绘制子弹效果

1.鼠标单击物体实例化的触发

public class Turn : MonoBehaviour
{
    void Update()
    {
        if(Input.GetKeyDown (KeyCode.Mouse0))//点击鼠标会触发的效果
        {
            GameObject Orange = Instantiate () as GameObject;//物体实例化,需要在括号中标注实例化的物体
        }
    }
}

2.在创建物体实例化时需要先创造两个变量,在触发中设置了Orange对象,所以要设置目标变量:对象,对象即生成的物体

public class Turn : MonoBehaviour
{
    public GameObject Mubiao;
    public GameObject Duixiang;

//申请公有变量可以在面板查看一些东西,设置私有变量ptivate可以节省一些资源,会使场景游戏更加流畅
   +第一步中的代码

3.将代码内容绑定在主摄像机上,会在属性面板出现变量Mubiao和Duixiang

4.创建一个球(Sphere)为对象,将其位置改为0,0,0;在Assets中单击右键选择Create>Material更换材质;将出现的材质球更改名字为black,并改变颜色;将材质球拖到Hierarchy>Sphere上,使小球染色;再将小球拖到材料面板上变成预制物体(Assets),再将Hierarchy上的Sphere删除

5.点开主相机,将预制物体拖拽到属性面板的Duixiang框中

6.设置目标点>创建空物体:在菜单栏的GameObject中创建(选第一个)并将其坐标设置为(0,0,0)//此时,球会在目标点生成

void Update()
    {
        if(Input.GetKeyDown (KeyCode.Mouse0))//点击鼠标会触发的效果
        {
            GameObject Orange = Instantiate (Duixiang ) as GameObject;//物体实例化,需要在括号中标注实例化的物体
            Orange.transform.position = Mubiao.transform.position;//当小球到达这个目标位置时,出现
            Orange.transform.rotation = Mubiao.transform.rotation;//子弹不应该是圆形,而是胶囊体型,设置旋转
        }
    }

前面的代码不发生改变

7.需要将Hierarchy中的GameObject改名字为代码中的Mubiao,并将它拖拽到属性面板的Mubiao中,这样就可以才能不报错,点击播放,此时单击左键会生成很多个黑色小球(子弹)

8.选中预制物体Sphere,在属性面板中添加physics>Rigidbody,此时点击播放,单击鼠标多次单击会出现多个小球,在Y轴上叠加。

9.制作子弹效果,则需要小球能进行位移,创建一个新的脚本,命名为“Zidan”,在Update中给子弹一个正方向的位移(或者在Start中给一个力)代码:

public class zidan : MonoBehaviour
{
    void Start()
    {
        
    } 

     void Update()
    {
        transform.Translate(0.4f, 0, 0);//此时给了子弹一个正方向的位移
    }
}

10.将“Zidan”脚本绑在Sphere的预制物体上,在属性面板中选择Add Component>Scripts>Zidan即可绑定脚本。此时单击,可以生成子弹向一个方向移动的效果。

11.调整子弹的大小和位移的速度。

备注:最终Turn的代码内容

public class Turn : MonoBehaviour
{
    public GameObject Mubiao;
    public GameObject Duixiang;//申请公有变量可以在面板查看一些东西,设置私有变量ptivate可以节省一些资源,会使场景游戏更加流畅
    void Update()
    {
        if(Input.GetKeyDown (KeyCode.Mouse0))//点击鼠标会触发的效果
        {
            GameObject Orange = Instantiate (Duixiang ) as GameObject;//物体实例化,需要在括号中标注实例化的物体
            Orange.transform.position = Mubiao.transform.position;//当小球到达这个目标位置时,出现
            Orange.transform.rotation = Mubiao.transform.rotation;//子弹不应该是圆形,而是胶囊体型,设置旋转
        }
    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值