zoukankan      html  css  js  c++  java
  • Unity3D编程学习 小知识_扇形攻击_2018Oct

    当需要判断一物体是否位于当前物体前方扇形范围内时  运用距离差和角度差实现判断

    //扇形攻击 实现类型_1
    public bool UmbrellaAttact( Transform attacker ,Transform attacked ,float angle, float radius)
    {

       Vector3 deltaA = attacked.position - attacker.position;

       float tmpAngle = Mathf.Acos(Vector3.Dot(deltaA.normalized, attacker.forward)) * Mathf.Rad2Deg;

       if (tmpAngle < angle * 0.5f && deltaA.magnitude < radius)
       {
         return true;
       }
       return false;
    }

    //扇形攻击 实现类型_2
    //距离差为半径 角度差为扇形角度的一半
    Transform Target;

    float _Dis = Vector3.Distance(Target.position, transform.position);
    float _Angle = Vector3.Angle(Target.position-transform.position,transform.forward)

    if (_Angle < x && _Dis < y)
    {
       Debug.logFormat("在范围内");
    }

  • 相关阅读:
    欧拉法求乘率
    利用连分数求乘率
    反乘率
    乘率
    别害怕暂时的迷茫
    别害怕心中的理想
    HDU6072 Logical Chain
    P3345 [ZJOI2015]幻想乡战略游戏
    P4449 于神之怒加强版
    [笔记] 拉格朗日插值法
  • 原文地址:https://www.cnblogs.com/RainPaint/p/9829505.html
Copyright © 2011-2022 走看看