- Home /
Unity UNET Multiplayer Chatroom - (Need Help With 1 Line)
Hey guys! I'm developing a UNET Multiplayer Chat system, all is going well apart from one command. I keep getting an error no matter how I try format the line, I'm just a little under educated with this one command, if anyone can help me I would be very grateful.
ERROR I GET: Assets/Scripts/Input.js(34,81): BCE0024: The type 'Object' does not have a visible constructor that matches the argument list '(String)'.
My Code (JAVA)
var mainChatScript : mainChat;
var currentMessage = "";
var username = "";
private var pt2 = ": ";
var fullName = "";
function Awake()
{
mainChatScript = GameObject.Find("Server").GetComponent(mainChat);
}
function Update ()
{
if(networkView.isMine)
{
currentMessage = username + pt2 + currentMessage;
}
}
function OnGUI()
{
GUILayout.Space(2);
GUILayout.BeginHorizontal(GUILayout.Width(Screen.width));
GUILayout.BeginVertical ("box");
currentMessage = GUILayout.TextField(currentMessage);
username = GUILayout.TextField(username, 12);
if(GUILayout.Button("SEND"))
{
if(!String.IsNullOrEmpty(currentMessage.Trim()))
{
networkView.RPC("SendMessage", RPCMode.AllBuffered, new Object[currentMessage]);
currentMessage = String.Empty;
}
}
GUILayout.EndVertical();
GUILayout.EndHorizontal();
}
@RPC
public function SendMessage(string, message)
{
mainChatScript = GameObject.Find("Server").GetComponent(mainChat);
mainChatScript.list.Add(message);
}
Answer by Landern · Aug 08, 2016 at 08:28 PM
It's true, the Object type does't have a constructor that takes a string as a argument/parameter.
Also the function SendMessage was defined oddly, fixed that.
var mainChatScript : mainChat;
var currentMessage = "";
var username = "";
private var pt2 = ": ";
var fullName = "";
function Awake()
{
mainChatScript = GameObject.Find("Server").GetComponent(mainChat);
}
function Update ()
{
if(networkView.isMine)
{
currentMessage = username + pt2 + currentMessage;
}
}
function OnGUI()
{
GUILayout.Space(2);
GUILayout.BeginHorizontal(GUILayout.Width(Screen.width));
GUILayout.BeginVertical ("box");
currentMessage = GUILayout.TextField(currentMessage);
username = GUILayout.TextField(username, 12);
if(GUILayout.Button("SEND"))
{
if(!String.IsNullOrEmpty(currentMessage.Trim()))
{
networkView.RPC("SendMessage", RPCMode.AllBuffered, currentMessage); // don't need to set as object, also don't need to set an non-existing indexer
currentMessage = String.Empty;
}
}
GUILayout.EndVertical();
GUILayout.EndHorizontal();
}
@RPC
public function SendMessage(message : string) // your parameters/argument was wrongly defined as "string, message"
{
mainChatScript = GameObject.Find("Server").GetComponent(mainChat);
mainChatScript.list.Add(message);
}
Your answer
Follow this Question
Related Questions
Voice chat in browser based unity projects 3 Answers
Making A Chat System 0 Answers
Global Chat between different servers 0 Answers
[Photon] Cant give damage to other client and getting RPC error. 0 Answers
Multiplayer Voice Chat? 2 Answers