Редактирование: измененные массивы для включения просто объектов для лучшей читаемости.
В настоящее время я использую Photon и у меня есть функция OnPlayerPropertiesChanged, вызывающая RP C в сценарии проигрывателя для изменения модели игрока. Какая у них модель, зависит от команды, которая указана в их пользовательских свойствах. Эти две команды - "граждане" и "ангелы". Я хочу, чтобы модель Citizen Model обнаруживалась, когда свойство команды человека "гражданин", и то же самое для свойства "ангел". Ниже приведены фрагменты кода:
GameManager:
public override void OnPlayerPropertiesUpdate(Player target, ExitGames.Client.Photon.Hashtable changedProps)
{
if (changedProps.ContainsKey("team"))
{
var targetPhotonView = (PhotonView)target.TagObject;
targetPhotonView.RPC("ChangeTeamObjs", target, changedProps);
}
}
PlayerController:
[PunRPC]
public void ChangeTeamObjs(PhotonHash changedProps)
{
switch (changedProps["team"].ToString())
{
case specString:
citizenModel.SetActive(true);
angelModel.SetActive(false);
break;
case citiString:
citizenModel.SetActive(true);
angelModel.SetActive(false);
break;
case angelString:
citizenModel.SetActive(false);
angelModel.SetActive(true);
break;
default:
Debug.Log("ChangeTeamObjs() | Unknown team! | " + PhotonNetwork.LocalPlayer.NickName);
break;
}
ClientServerEnabling();
}
В настоящее время модель каждого человека корректно изменяется на собственном экране, но обе модели на других игроках включены на экранах локального игрока. Как я могу настроить свой код так, чтобы модели других клиентов появлялись / исчезали на экране человека при вызове OnPlayerPropertiesUpdate ()?