【问题标题】:Getting all enemies to attack the player inside a collider in unity 2d在统一 2d 中让所有敌人在对撞机内攻击玩家
【发布时间】:2018-04-03 18:55:25
【问题描述】:

我正在使用 Unity 2D 制作游戏。那么我的问题是,如果玩家触发了一个对撞机(大区域),我如何让对撞机内的所有敌方游戏对象攻击玩家?

我想让它像,但我不知道怎么做。

void OnTriggerEnter2D(Collider2D other)
    {
        //all enemies inside this collider attack the player
    }

有人可以帮帮我吗?

【问题讨论】:

    标签: collision detection


    【解决方案1】:

    使用OverlapAreaAll 获取区域内的所有敌人。

        public LayerMask enemyLayerMask;
        private void OnTriggerEnter2D(Collider2D other)
        {
            Collider2D thisCollider = GetComponent<Collider2D>();
            Collider2D[] enemyColliders = Physics2D.OverlapAreaAll(thisCollider.bounds.min, thisCollider.bounds.max, enemyLayerMask);
            foreach(Collider2D enemyCol in enemyColliders)
            {
                 Enemy enemy = enemyCol.gameObject.GetComponent<Enemy>();
                 if (enemy != null)
                 {
                     enemy.AttackPlayer();
                 }
            }
        }
    

    【讨论】:

    • 非常感谢
    猜你喜欢
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 2016-05-11
    • 1970-01-01
    • 2021-04-11
    相关资源
    最近更新 更多