How can I instantiate different prefabs for owner and proxy using photon?

I was using uLink and on uLink I have the ability to instantiate different prefabs for owner, proxy and server. Using photon it seems to have only the option to instantiate one prefab for all machines. How can I solve this problem? Is there one way to instantiate different prefabs for proxy and owner?

You have 2 options:

  1. You can create a prefab which is basically just a place-holder for the actual object you instantiate. A script on the prefab checks isMine and creates whatever you want the owner or proxy to see.
  2. Skip PhotonNetwork.Instantiate and do instantiation via buffered RPC. This means: The player who needs to instantiate something will call PhotonNetwork.AllocateViewID() to get a viewID, then it calls some RPC with that viewID. All clients execute the RPC method and execute GameObject.Instantiate a local object or a proxy. BOTH prefabs you instantiate need a PhotonView and in the RPC method you need to assign the viewID that the originating player sent.

There is a short section about manual instantiation in the manual that is in the PUN package. For detail questions, post in the Exit Games Forum.

You can check if you are the owner with photonView.isMine or master client with photonNetwork.isMasterClient. With these you could customise the instantiate behaviours.