- Home /
Photon Networking: RPC call doesn't work over other clients
Hello!
First time posting here, so hopefully I've done everything right! =)
I've got an issue regarding the [RPC] calls with Photon Unity Networking.
I've looked at several tutorials and I've learnt the basics with Photon, Networking and the Multiplayer aspects within Unity.
So, I've set up a project with a couple of scenes and a NetworkManager (that handles the Creating/Joining Rooms, etc) and this works flawless! A Player can join and disconnect and the Players' can see eachother and walk around, etc.
The issue is that I'm trying to make a simple chat system for the game (following a tutorial; but making it a bit "my way"). It SHOULD work by what I've learnt, but it doesn't. I've done some debugging and it seems like the RPC call is only running on the local client it came from. So any other client isn't running the RPC call at all...
The script NetworkChatMessageManager.cs is attached to the Player prefab and the Player prefab also have a PhotonView (of course). The script is enabled on every Player object in the scene for every Player (I've also tried to disable the scripts, but not for the local Player, but this still doesn't work).
Here's the script (some things are commented out just for the sake of debugging):
using UnityEngine;
using UnityEngine.UI;
//using System;
using System.Collections.Generic;
public class NetworkChatMessageManager : Photon.MonoBehaviour {
//public Text chatMessagesText;
private List<string> _chatMessages = new List<string>();
private int _maxChatMessages = 20;
void Start() {
}
public void AddChatMessage(string m) {
GetComponent<PhotonView>().RPC("AddChatMessage_RPC", PhotonTargets.All, m);
}
[RPC]
void AddChatMessage_RPC(string m) {
while (_chatMessages.Count >= _maxChatMessages) {
_chatMessages.RemoveAt (0);
}
_chatMessages.Add (m);
Debug.Log (_chatMessages.Count + " | Last msg: + " + m);
}
/*void Update() {
if (photonView.isMine) {
string msg = "";
foreach (string _msg in _chatMessages) {
msg += _msg + "\n";
}
chatMessagesText.text = msg;
}
}*/
public void SendMsg() {
AddChatMessage(PhotonNetwork.player.name);
}
}
Only the client who calls the RPC will update the _chatMessages list, any other client isn't recieving the call I guess or something...
The SendMsg() method is attached to a Button OnClick for testing purposes.
So what could the problem be? Thanks for the help! =)
Your answer
Follow this Question
Related Questions
Unity multiplayer solutions: Photon, Unity Networking - what else and in what way is good? 0 Answers
How to use an RPC to send an animation over the network? 2 Answers
Unity3D Photon movement synchronization 0 Answers
Best Solution for Multiplayer Shooting 1 Answer
RPCMode.AllBuffered Basic Question 1 Answer