我正在构建一个多人射击游戏,当我收到玩家加入的事件时,我会听取事件并运行玩家,第一个玩家从摄像机视图中获取与第二个玩家相同的位置。我制作了2个产卵点,从服务器发送的玩家数量决定了他将被实例化的产卵点
public void OnRole(SocketIOEvent socketIOEvent)
{
string data = socketIOEvent.data.ToString();
PlayerData = PlayerBaseJSON.CreateFromJSON(data);
if (PlayerData.number == 1)
{
Fight(PlayerData.name, spawn, playerName, Player, PlayerCamera);
}
else if (PlayerData.number == 2)
{
Fight(PlayerData.name, _spawn, GuestName, OppositePlayer, OppositePlayerCamera);
}
}
这是接收和运行玩家的功能
public void Fight(string name, Transform transform, Text playerNameText, GameObject Turret, Camera camera)
{
playerNameText.text = " " + PlayerData.name;
GameObject Hitman = Instantiate(Turret, transform) as GameObject;
Hitman.name = PlayerData.name;
Shooter shooter = Hitman.GetComponentInChildren<Shooter>();
if (PlayerData.name == playerNameInput.text)
{
PlayerNumber = PlayerData.number;
MainCamera.gameObject.SetActive(false);
camera.gameObject.SetActive(true);
CrossHair.gameObject.SetActive(true);
shooter.Controlled = true;
return;
}
}
当我作为来自编辑的嘉宾加入时,我看到两个玩家都正常但是从第一个玩家那边切换到了第二个位置。