Я работаю над многопользовательской игрой, используя Photon в Unity, где игроки присоединяются к комнате и появляются на определенных позициях на основе их Actornumber. Однако, когда игрок покидает комнату, и присоединяется новый игрок, я сталкиваюсь с проблемой, в которой идентификаторы игрока (то есть Actornumber) не всегда следуют последовательному порядку, который вызывает пробелы в положениях спауна (например, я могу получить Actornumber 1, затем 3, затем 4). позиций. Когда игрок уйдет, а другой присоединяется, новый игрок может получить ранее используемый Actornumber, который может привести к отсутствующим позициям в последовательности. /> Актер 2 получает Actornumber 2 < /li>
Актер 3 получает Actornumber 3 < /li>
< /ul>
, но если игрок 2, например, покидает комнату, а новый игрок придет за ним, тогда он будет: < /p>
Actor 4 Actorm 4, но мне нужен < /p> actor. потому что, как я сказал, актер 2 вышел.public class SpawnPlayers : MonoBehaviourPunCallbacks
{
public GameObject playerPRE;
private Dictionary waitingRoomSpawnPositions = new Dictionary()
{
{1, new Vector3(0, 0, 0)},
{2, new Vector3(0.85f, 0, 1.25f)},
{3, new Vector3(-0.85f, 0, 1.25f)},
{4, new Vector3(-1.7f, 0, 2.5f)},
{5, new Vector3(1.7f, 0, 2.5f)},
{6, new Vector3(0.85f, 0, 3.75f)},
{7, new Vector3(-0.85f, 0, 3.75f)},
{8, new Vector3(0, 0, 2.5f)}
};
public void PlayerSpawn()
{
// int actorNumber = actorNumberManager.AssignActorNumber(); // Assign a unique actor number.
int actorNumber = PhotonNetwork.LocalPlayer.ActorNumber;
Vector3 spawnPosition = Vector3.zero;
if (SceneManager.GetActiveScene().name == "Home")
{
waitingRoomSpawnPositions.TryGetValue(actorNumber, out spawnPosition);
spawnPosition = new Vector3(spawnPosition.x, spawnPosition.y, spawnPosition.z);
PhotonNetwork.Instantiate(playerPRE.name, spawnPosition, Quaternion.Euler(0, 160f, 0));
}
}
public override void OnJoinedRoom()
{
PlayerSpawn();
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... -a-room-wi
Как обеспечить последовательные идентификаторы игроков в фотоне, когда игроки присоединяются/покидают комнату (без пробе ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение