- Home /
[PUN]Hi, I need help with RCP
Hi I'm using PUN and I'm trying call a method with RCP function... I really don't have idea how works this :/ I was read some post and watched some videos of this function but I don't find a solution to my problem and for this I appeal to you :).
I'm controlling the floors of my map with this script:
 public class MapManager : MonoBehaviour {
 
     public int currentFloor;
     [SerializeField]
     private GameObject currentMap;
     public Text txt;
     public static MapManager MP;
 
     void Awake()
     {
         MP = this;
     }
 
 
     void Start () {
             currentFloor = 0;
             setFloor (currentFloor);
     }
     
     // Update is called once per frame
     void Update () {
         txt.text = currentFloor.ToString ();
     }
 
     [PunRPC]
     public void setFloor(int i)
     {
         
             currentFloor = i;
             
 
             switch (i) {
             case 0:
                 currentMap.transform.GetChild (0).gameObject.SetActive (true);
                 currentMap.transform.GetChild (1).gameObject.SetActive (true);
                 currentMap.transform.GetChild (2).gameObject.SetActive (false);
                 currentMap.transform.GetChild (3).gameObject.SetActive (false);
                 break;
             case 1:
                 currentMap.transform.GetChild (0).gameObject.SetActive (true);
                 currentMap.transform.GetChild (1).gameObject.SetActive (true);
                 currentMap.transform.GetChild (2).gameObject.SetActive (true);
                 currentMap.transform.GetChild (3).gameObject.SetActive (false);
                 break;
             case 2:
                 currentMap.transform.GetChild (0).gameObject.SetActive (true);
                 currentMap.transform.GetChild (1).gameObject.SetActive (true);
                 currentMap.transform.GetChild (2).gameObject.SetActive (true);
                 currentMap.transform.GetChild (3).gameObject.SetActive (true);
                 break;
             case 3:
                 currentMap.transform.GetChild (0).gameObject.SetActive (true);
                 currentMap.transform.GetChild (1).gameObject.SetActive (true);
                 currentMap.transform.GetChild (2).gameObject.SetActive (true);
                 currentMap.transform.GetChild (3).gameObject.SetActive (true);
                 break;
             default:
                 break;
     }
 }
 
 }
I'm sending the int of "setFloor(int i)" from here:
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class CambiaPiso : MonoBehaviour {
 
     // Use this for initialization
     [SerializeField]    
     MapManager mapManager;
     public int numeroPiso;
 
     void Start () {
         
     }
     
     // Update is called once per frame
     void Update () {
         
     }
 
     void OnTriggerEnter2D(Collider2D col)
     {
         //photonView = col.gameObject.GetComponent<PhotonView> ();
         if (col.gameObject.tag == "Player") 
         {
             if (mapManager.currentFloor == numeroPiso) {
                 mapManager.setFloor (numeroPiso - 1);
             } else {
                 mapManager.setFloor (numeroPiso);
             }
         }
     }
 }
I deleted my tries of use photonview because it could cause confusion, this works but only this update the currentFloor to all clients, the int is obtained at trigger2D in a stair :/ Someone know how I can fix this?(to update the currentFloor in the respective client)
hmm here are my last tries with photonview c:
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class CambiaPiso : MonoBehaviour {
 
     // Use this for initialization
     [SerializeField]    
     MapManager mapManager;
     public int numeroPiso;
 
     //PhotonView photonView;
 
     /*PhotonView id = gameObject.GetComponent<PhotonView> ().viewID;
     PhotonView a =PhotonView.RPC("setFloor", RPCMode.Server, id);*/
 
     void Start () {
         
     }
     
     // Update is called once per frame
     void Update () {
         
     }
 
     void OnTriggerEnter2D(Collider2D col)
     {
         //photonView = col.gameObject.GetComponent<PhotonView> ();
         if (col.gameObject.tag == "Player") 
         {
             if (mapManager.currentFloor == numeroPiso) {
                 /*photonView.RPC ("setFloor", /*PhotonPlayer.Find(gameObject.GetComponent<PhotonView>().viewID)*//*PhotonTargets.MasterClient, -1);*/
                 mapManager.setFloor (numeroPiso - 1);
             } else {
                 
                 /*photonView.RPC ("setFloor", /*PhotonPlayer.Find(gameObject.GetComponent<PhotonView>().viewID)*//*PhotonTargets.MasterClient, numeroPiso);*/
                 mapManager.setFloor (numeroPiso);
             }
         }
     }
 }
 
Answer by ianmohan · Jul 09, 2018 at 08:45 PM
192.168.0.1. Many Netgear and D-Link model routers use 192.168.0.1 as their default IP address. It is used in a private IPv4 network address as the router
https://www.wordsoftech.org/192-168-0-1-login/ ,192.168.0.1. Many Netgear and D-Link model routers use 192.168.o.1 as their default IP address. It is used in a private IPv4 network address as the router
Your answer
 
 
             Follow this Question
Related Questions
Custom dedicated server application 3 Answers
How to solve RPC error 1 Answer
AllocatedID error 1 Answer
Sync Animations through Network (Mecanim) 0 Answers
RPC or Synchronization ? 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                