zoukankan      html  css  js  c++  java
  • 《Unity3D-控制检测碰撞以后触发的事件之敌人的攻击行为》

    //思路:此方法适用于敌人的攻击行为,当敌人和主角间的距离达到一定的范围的时候触发器将会触发这个行为

      首先给主角和敌人身上绑定触发器 然后isTarigger选项一定要勾选上

    //定义敌人的攻击行为

    代码:

    private float attack=10; //定义敌人的攻击伤害值

    private float attackTimer=1;//定义敌人的攻击频率为1秒

    private float timer=1;  //触发的间隙时间

    //定义触发时间的方法

    public void OnTriggerStar(Collider collider){  //此方法会检测玩家和敌人的距离一旦距离到达一定的值此方法 就会被调用然后下面的代码就是控制敌人去攻击的玩家的

      if(collider.tag=="Player"){  //定义触发器触发的对象是玩家控制的角色

        timer+=Time.deltaTime;  //让触发的间隙时间随着每帧的时间增加

        if(timer>=attackTimer){  //一旦触发的间隙时间大于固定的攻击的是频率的时候就让敌人发动一次攻击

          timer-=attackTimer;  //让触发的间隔时间不但的减小下一次需要的时候就可以调用此种方法

          collider.GetComponent<PlayerHealth>().HealthDamage(attack);  //其中的HealthDamage()方法就是让我们玩家控制的角色掉血的方法 attack为敌人每次的攻击的伤害

        }

      }

    }

  • 相关阅读:
    vue—子调父 $emit (把子组件的数据传给父组件)
    解决 Error: EBUSY: resource busy or locked, rmdir 'E:/...'问题
    php中session原理及安全性问题
    MySQL函数大全及用法示例
    php基础语法
    常用sql语句
    php表单传值--GET和POST
    jQuery插件的使用方法
    $.ajax()方法详解
    php文件上传
  • 原文地址:https://www.cnblogs.com/ylllove/p/7283380.html
Copyright © 2011-2022 走看看