Players after join room dont see builds

Options
hello all,

Weel clone builds dont create for player after join another room if others players have build, but after connect is good , problem is if anoher join dont go see was build ;( but if are connect is good

Script PhotonPlayerHandlers

public class PhotonPlayerHandlers : Photon.MonoBehaviour { #region Private Fields private PhotonHandlers Handlers; #endregion Private Fields #region Private Methods private void Awake() { Handlers = FindObjectOfType<PhotonHandlers>(); } private void Start() { if (!photonView.isMine) { if (PhotonNetwork.isMasterClient) { if (Handlers != null) { photonView.RPC("RequestSyncPlacement", PhotonTargets.AllBuffered); } } return; } SimpleCampfire.OnInterracted += OnInterracted; EbsEvents.OnBuildPrefabPlaced += OnPrefabPlaced; EbsEvents.OnBuildPrefabDestroyed += OnPrefabDestroyed; } private void OnInterracted(EbsPrefab prefab) { if (prefab == null) { return; } } private void OnPrefabPlaced(EbsPrefab originPrefab, EbsPrefab placedPrefab) { if (!photonView.isMine) { return; } if (placedPrefab == null) { return; } placedPrefab.EntityInstanceId = placedPrefab.GetInstanceID(); if (Handlers != null) { photonView.RPC("RequestNewPlacement", PhotonTargets.OthersBuffered, placedPrefab.Id, placedPrefab.GetInstanceID(), placedPrefab.transform.position, placedPrefab.transform.rotation, false); } } private void OnPrefabDestroyed(EbsPrefab prefab) { if (!photonView.isMine) { return; } if (prefab == null) { return; } if (Handlers != null) { photonView.RPC("RequestNewDestruction", PhotonTargets.OthersBuffered, prefab.EntityInstanceId); } } #endregion Private Methods #region Public Methods #region Rpcs [PunRPC] public void RequestSyncPlacement(PhotonMessageInfo info) { foreach (EntityData PrefabData in Handlers.NetworkEntities) { if (PrefabData != null) { if (PhotonNetwork.isMasterClient) { return; } EbsPrefab PrefabTemp = EbsManager.Instance.GetPrefab(PrefabData.Id); PrefabTemp.EntityInstanceId = PrefabData.InstanceId; Instantiate(PrefabTemp.gameObject, PrefabData.Position, PrefabData.Rotation); } } } [PunRPC] public void RequestNewPlacement(int prefabId, int instanceId, Vector3 position, Quaternion rotation, bool sync, PhotonMessageInfo info) { Handlers.AddNetworkEntity(new EntityData(prefabId, instanceId, position, rotation)); EbsPrefab PrefabTemp = EbsManager.Instance.GetPrefab(prefabId); PrefabTemp.EntityInstanceId = instanceId; Instantiate(PrefabTemp.gameObject, position, rotation); } [PunRPC] public void RequestNewDestruction(int instanceId, PhotonMessageInfo info) { Handlers.RemoveNetworkEntity(instanceId); foreach (EbsPrefab prefab in FindObjectsOfType<EbsPrefab>()) { if (prefab != null) { if (prefab.EntityInstanceId == instanceId) { Destroy(prefab.gameObject); } } } } #endregion #endregion Public Methods }



- SCRIPT PhotonHandlers


public class PhotonHandlers : Photon.MonoBehaviour { public List<EntityData> NetworkEntities = new List<EntityData>(); public void AddNetworkEntity(EntityData data) { if (!PhotonNetwork.isMasterClient) { return; } if (data == null) { return; } NetworkEntities.Add(new EntityData(data.Id, data.InstanceId, data.Position, data.Rotation)); } public void RemoveNetworkEntity(int instanceId) { if (!PhotonNetwork.isMasterClient) { return; } foreach (var Entity in NetworkEntities) { if (Entity != null) { if (Entity.InstanceId == instanceId) { NetworkEntities.Remove(Entity); break; } } } } }

tobias Please help me

Comments

  • Haskoman
    Options
    need help please
  • Hi @Haskoman,

    please check the usage of PhotonTargets when calling a RPC, since PhotonTargets.OthersBuffered is not executed on the client that calls RPC(...) function. You can take a look at the possible options over here.
  • Haskoman
    Haskoman
    edited January 2017
    Options
    Thanks @Christian_Simon i have ufpsMp and i have look "PhotonTargets.OthersBuffered". This is not supported by the current UFPS multiplayer implementation

    hmm thanks for your link