Решил написать пошаговую сетевую игру, но столкнулся с проблемой отображения у 3-го игрока.
Есть игровое поле - Игровое поле
Каждому игроку при присоединении добавляю платформу-триггер под ноги:
Синтаксис:
Используется csharp
if (NetworkLobbyHook.instance.Players.Count == 3)
{
GameObject Player1 = Instantiate(player.TriggerPlayer1) as GameObject;
GameObject Player2 = Instantiate(player.TriggerPlayer2) as GameObject;
GameObject Player3 = Instantiate(player.TriggerPlayer3) as GameObject;
Player1.transform.SetParent(NetworkLobbyHook.instance.Players[0].transform, false);
Player2.transform.SetParent(NetworkLobbyHook.instance.Players[1].transform, false);
Player3.transform.SetParent(NetworkLobbyHook.instance.Players[2].transform, false);
Player1.transform.position = new Vector3(NetworkLobbyHook.instance.Players[0].transform.position.x, NetworkLobbyHook.instance.Players[0].transform.position.y - 1.5f, NetworkLobbyHook.instance.Players[0].transform.position.z);
Player2.transform.position = new Vector3(NetworkLobbyHook.instance.Players[1].transform.position.x, NetworkLobbyHook.instance.Players[1].transform.position.y - 1.5f, NetworkLobbyHook.instance.Players[1].transform.position.z);
Player3.transform.position = new Vector3(NetworkLobbyHook.instance.Players[2].transform.position.x, NetworkLobbyHook.instance.Players[2].transform.position.y - 1.5f, NetworkLobbyHook.instance.Players[2].transform.position.z);
NetworkServer.Spawn(Player1);
NetworkServer.Spawn(Player2);
NetworkServer.Spawn(Player3);
}
{
GameObject Player1 = Instantiate(player.TriggerPlayer1) as GameObject;
GameObject Player2 = Instantiate(player.TriggerPlayer2) as GameObject;
GameObject Player3 = Instantiate(player.TriggerPlayer3) as GameObject;
Player1.transform.SetParent(NetworkLobbyHook.instance.Players[0].transform, false);
Player2.transform.SetParent(NetworkLobbyHook.instance.Players[1].transform, false);
Player3.transform.SetParent(NetworkLobbyHook.instance.Players[2].transform, false);
Player1.transform.position = new Vector3(NetworkLobbyHook.instance.Players[0].transform.position.x, NetworkLobbyHook.instance.Players[0].transform.position.y - 1.5f, NetworkLobbyHook.instance.Players[0].transform.position.z);
Player2.transform.position = new Vector3(NetworkLobbyHook.instance.Players[1].transform.position.x, NetworkLobbyHook.instance.Players[1].transform.position.y - 1.5f, NetworkLobbyHook.instance.Players[1].transform.position.z);
Player3.transform.position = new Vector3(NetworkLobbyHook.instance.Players[2].transform.position.x, NetworkLobbyHook.instance.Players[2].transform.position.y - 1.5f, NetworkLobbyHook.instance.Players[2].transform.position.z);
NetworkServer.Spawn(Player1);
NetworkServer.Spawn(Player2);
NetworkServer.Spawn(Player3);
}
С его помощью активирую ячейки на которые игрок может сделать свой ход:
Синтаксис:
Используется csharp
public void OnTriggerStay(Collider other)
{
if (isServer)
{
if (other.CompareTag("Tile"))
{
other.GetComponent<Tile>().select= true;
}
}
}
public void OnTriggerExit(Collider other)
{
if (isServer)
{
if (other.CompareTag("Tile"))
{
other.GetComponent<Tile>().select= false;
}
}
}
{
if (isServer)
{
if (other.CompareTag("Tile"))
{
other.GetComponent<Tile>().select= true;
}
}
}
public void OnTriggerExit(Collider other)
{
if (isServer)
{
if (other.CompareTag("Tile"))
{
other.GetComponent<Tile>().select= false;
}
}
}
Мне нужно добиться того, чтобы каждый игрок видел только свою активацию ячеек.
Так на данный момент видит каждый из игроков:
Игрок1(красный)
Игрок2(зеленый), Игрок3(синий)
Очень буду рад услышать советы грамотных людей.