У меня проблема, когда игроки возрождаются в точках появления каждый раз, когда в комнату входит новый игрок. Каждый игрок должен перемещаться в точку возрождения только каждый раз, когда он входит в комнату. Это действительно происходит, и это работает. Это также происходит в респауне RP C, но это не вызывается, пока игрок не умер. Если любой новый игрок присоединяется и порождает, любые существующие игроки телепортируются в точку появления (как будто это их первое присоединение). Я пытался проверить локальные фотоны, но это не сработало. Я пытался выяснить, откуда исходит респаун, но я не могу точно определить это. Кажется, что функция каждого игрока Start () выполняется дважды , но это не имеет никакого смысла. Есть идеи, почему это происходит?
Функция запуска игрока:
void Start()
{
if (photonView.IsMine)
{
SetPlayerTeam(gameInst.specString);
transform.position = GameManager.instance.spawnPoints[Random.Range(0, GameManager.instance.spawnPoints.Length)].position;
transform.rotation = GameManager.instance.spawnPoints[Random.Range(0, GameManager.instance.spawnPoints.Length)].rotation;
}
}
RP респауна игрока C
void RespawnRPC()
{
SetRagdoll(false);
if (photonView.IsMine)
{
transform.position = GameManager.instance.spawnPoints[Random.Range(0, GameManager.instance.spawnPoints.Length)].position;
transform.rotation = GameManager.instance.spawnPoints[Random.Range(0, GameManager.instance.spawnPoints.Length)].rotation;
if (!playerProperties.ContainsKey("state"))
{
playerProperties.Add("state", "alive");
}
playerProperties["state"] = "alive";
PhotonNetwork.LocalPlayer.SetCustomProperties(playerProperties);
}
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
}