Unity初级坦克大战游戏实现(Battle Tank)带工程源码资源包(四)

记学习Unity后第三次做游戏

       上一节写完了敌人和玩家上面的脚本,这次我们来写出生点的逻辑和其他脚本。
       首先看子弹的脚本,子弹要可以移动,向固定位置发射,碰撞到对应的物体要做出相应的操作。比如撞到墙了就要同时摧毁墙和子弹,而且要有子弹发射的声音和撞到墙的声音,等等。所以就要加上碰撞体,但是子弹又不能推走坦克,就把IsTrigger选项勾上就行了。

private void OnTriggerEnter2D(Collider2D collision)//检测子弹和什么发生碰撞了,碰撞后要做什么事情
{
   
    if (Equals(collision.tag,"Wall"))//碰到的是墙
    {
   
        ControlPlay(NewObject(Resources.Load("GameResource/AudioSource/Hit") as AudioClip));//播放hit声音
        Destroy(collision.gameObject);//摧毁墙
    }
    if (Equals(collision.tag,"Sea"))
    {
   
        return;//碰到海直接穿过去
    }
    if (collision.tag == "Cristal")//碰到水晶
    {
   
        Instantiate(Resources.Load("Prefabs/BrokenCristal"), collision.gameObject.transform.position, collision.gameObject.transform.rotation);//实例化一个破水晶
        ControlPlay(NewObject(Resources.Load("GameResource/AudioSource/HeartDamage") as AudioClip));//放声音
        Instantiate(Resources.Load("Prefabs/Explosion"), collision.gameObject.transform.position, collision.transform.rotation);//爆炸效果
        Destroy(collision.gameObject);//摧毁水晶
        GameObject.Find("Environment").GetComponent<BornAndText>().isCristalDestroyed = true;//更改bool变量为true,在BornAndText里实现游戏失败的逻辑
    }
    if (collision.tag == "Enemy")
    {
   
        if (gameObject.tag == "EnemyBullet")//敌人的子弹碰到敌人就啥也不干
            return;
        ControlPlay(NewObject(Resources.Load("GameResource/AudioSource/Die") as AudioClip));
        Instantiate(Resources.Load("Prefabs/Explosion"), collision.gameObject.transform.position, collision.gameObject.transform.rotation);
        GameObject.Find("Environment").GetComponent<
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dark9spring

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值