0

在我的游戏中,玩家可以发射一种武器,该武器会发射一个射弹,自动瞄准离某个物体最近的敌人。但是,我怎样才能阻止射弹也瞄准我自己的玩家?有没有办法给所有其他玩家贴上某个标签,同时给我自己的玩家贴上不同的标签?游戏开始时,玩家被实例化为预制件。

4

1 回答 1

1

发射弹丸时,请给它一个射击它的玩家的参考。然后,在计算最近的球员时,检查最近的球员是否与射门的球员相同。如果是,请选择第二个最接近的。

public class Projectile : MonoBehaviour
{

    public Player player = null;
    private Player target = null;

    private Player GetClosestPlayer(IList listOfPlayers)
    {
        Player closestPlayer = ...; // use your algorithm method here

        if (player != null && player == closestPlayer)
        {
            // copy listOfPlayers and remove closestPlayer from it
            return GetClosestPlayer(copyOfListOfPlayersWithoutPreviousClosest);
        }

        return closestPlayer;

    }

    void Update()
    {
        if (target != null)
            // steer to target
        else
            target = GetClosestPlayer();
    }

}
于 2015-10-28T09:25:32.637 回答