让所有敌人在团结2d中攻击对手内的玩家

时间:2018-04-02 05:39:04

标签: collision detection

我在Unity 2D中制作游戏。所以这就是我的问题,如果玩家触发对撞机(大区域),如何让对手内的所有敌人游戏对象攻击玩家?

我想让它变得像,但我不知道如何。

return (
    <div>
        {
            this.state.houses.map(item =>
            <div>
                <h2>{item.name}</h2>
                <p>{item.description}</p>
                <ul>
                    {
                        item.photos.map(photo => <li>{photo}</li>)
                    }
                </ul>
            </div>
        )}
    </div>
)

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

使用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();
             }
        }
    }