美文网首页
UnityRPG游戏战斗怪物检测

UnityRPG游戏战斗怪物检测

作者: 玄策丶 | 来源:发表于2018-07-28 14:37 被阅读0次

在做一款简单的rpg游戏时,肯定会遇到检测敌人是否被击中,检测的方法可以用下面两种。

1. 通过主角与场景中的所有敌人比较

void AtkCondition1(float _range, float _angle)
    {
        //搜索所有的敌人列表(在动态创建敌人时生成的)
        //列表存储的敌人并非敌人的GameObject而是自定义的Enemy类
        //Enemy类的一个变量mGameObject则用来存储实例出来的敌人实例
        foreach (var item in GameManager.instance.gMonsterDict)
        {
            //敌人的坐标向量减去Player的坐标向量的长度(使用magnitude)
            float tempDis1 = (item.Value.mGameObject.transform.position - player.transform.position).magnitude;
            //敌人向量减去Player向量就能得到Player指向敌人的一个向量
            Vector3 v3 = item.Value.mGameObject.transform.position - player.transform.position;
            //求出Player指向敌人和Player指向正前方两向量的夹角,其实就是Player和敌人的夹角(不分左右)
            float angle = Vector3.Angle(v3, player.transform.forward);
            if (tempDis1 < _range && angle < _angle)
            {
                //距离和角度都满足了
                //--------------------------------------
            }
        }
    }

2. 通过主角和射线检测的敌人比较

void AtkCondition2(float _range, float _angle)
    {
        //球形射线检测周围怪物,不用循环所有怪物列表,我发获取“Enemy”类
        Collider[] colliderArr = Physics.OverlapSphere(player.transform.position, _range, LayerMask.GetMask("Enemy"));
        for (int i = 0; i < colliderArr.Length; i++)
        {
            Vector3 v3 = colliderArr[i].gameObject.transform.position - player.transform.position;
            float angle = Vector3.Angle(v3, player.transform.forward);
            if (angle<_angle)
            {
                //距离和角度都满足了
                //---------------------------------------
            }
        }
    }

当然还有别的方法去检测战斗,例如: 在主角前方放置一个隐藏的碰撞盒改成触发器,当进行攻击动作的时候,让触发器显示。触发器与敌人身上的碰撞盒接触时,消灭敌人,1551;

还有另外一个老哥写的,https://www.jianshu.com/p/068705534e07

相关文章

  • UnityRPG游戏战斗怪物检测

    在做一款简单的rpg游戏时,肯定会遇到检测敌人是否被击中,检测的方法可以用下面两种。 1. 通过主角与场景中的所有...

  • 怪物王国加减法

    在怪物王国中,每个怪物都有一个战斗值,比如:怪物8的战斗值=8,怪物9的战斗值=9。 近几年,怪物之间矛盾升级,王...

  • 【转载】饥荒全怪物击杀方法汇总 怪物怎么打

    饥荒游戏中玩家战斗方式常见的就是玩家躲过怪物攻击后攻击,简单讲就是躲一打**,今天小编分享下玩家总结的全怪物的战斗...

  • 2018-07-29

    跟怪物战斗的时候,小心自己变成怪物

  • 怪物学院——战斗?

    有请凋小公举带我们进入正文~ ???:我……来了 凋灵骷髅:什么?! 僵尸猪人:你……巴迪?! 巴迪:没错就是我!...

  • 《暴雪将至》:呼啸而过的时代,沉默不语的余国伟

    与怪物战斗的人,应当小心自己不要成为怪物。当你远远凝视深渊时,深渊也在凝视你。 ...

  • 青春的颜色

    与怪物战斗的人,应当小心自己不要成为怪物。当你远远凝视深渊时,深渊也在凝视你。 ...

  • change

    与怪物战斗的人,应当小心自己不要成为怪物。当你凝视深渊时,深渊也在凝视着你。

  • 怪物猎人战斗系统变迁历史

    战斗系统 怪物猎人的战斗系统对玩家的空间感、节奏感和对系统的认知程度要求较高;怪物的攻击力与血量较高(血量不显示)...

  • 怪物学院——战斗【3】

    他们就是这么一群人,燃烧生命,敬畏自然。 满川烟雨:行啊,你挺横啊!???,你以为我打不过你吗? ???:你确实打...

网友评论

      本文标题:UnityRPG游戏战斗怪物检测

      本文链接:https://www.haomeiwen.com/subject/vmeomftx.html