如何定位除自己以外的所有其他玩家?

时间:2015-10-26 19:50:32

标签: c# unity3d unity5 photon

在我的游戏中,玩家可以发射一种武器,该武器将发射一枚射弹,自动瞄准最接近某个物体的敌人。但是,我怎样才能阻止射弹瞄准我自己的玩家呢?有没有办法用特定标签标记所有其他玩家,同时让我自己的玩家使用不同的标签?当游戏开始时,玩家被实例化为预制件。

1 个答案:

答案 0 :(得分: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();
    }

}