Photon Unity players don`t see each other

191 Views Asked by At

I use photon PUN for creating a simple Unity game. When player joins room-- new scene is loading and one object spawns player. This code spawns player:

`using Photon.Pun;
using UnityEngine;
using Random = UnityEngine.Random;

public class MultiplayerManager : MonoBehaviourPunCallbacks
{
private const string TankFolder = "Tanks/";
private Transform\[\] \_spawns;
\[SerializeField\]private GameObject canvas;

    private void Start()
    {
        SpawnPlayer();
    }
    
    public void LeaveRoom()
    {
        PhotonNetwork.LeaveRoom();
        PhotonNetwork.LoadLevel("StartRoom");
    }
    
    
    private static Transform[] GetChildren(Transform parent)
    {
        var count = parent.childCount;
        var list = new Transform[count];
        for (var i = 0; i < count; i++)
        {
            list[i] = parent.GetChild(i);
        }
    
        return list;
    }
    
    private void CreateCanvas()
    {
        var curCanvas = Instantiate(canvas);
        CanvasHandler.cameraSight = curCanvas.transform.GetChild(0);
        CanvasHandler.gunSight = curCanvas.transform.GetChild(1);
    }
    
    private void SpawnPlayer()
    {
        _spawns = GetChildren(transform);
    
        var spawn = _spawns[Random.Range(0, _spawns.Length)];
        CreateCanvas();
        
        var player = PhotonNetwork.Instantiate
        (TankFolder + PlayerPrefs.GetString(PlayerPrefsKeys.TankModel),
            spawn.position, spawn.rotation);
        PhotonView.DontDestroyOnLoad(player);
    }

}
`

But actually they don't see each other. I only recieve received onserialization for view id 1002. we have no such photonview! ignore this if you're joining or leaving a room\

Yes, my components have photon view.

I tried to change some setting and add PhotonView.DontDestroyOnLoad(player); but I don't know what to do. And post says there is to much code but it literally says everything so idk what to add.

1

There are 1 best solutions below

0
On

Ok, forget about it. I just put here:

 _view = GetComponent<PhotonView>();
            if (!_view.IsMine)
            {
                Destroy(this);
                return;
            }

destroing of whole gameobject, not component. Problem solved)