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