C# 如何使用Unity C将字符串从对等服务器发送到客户端?

C# 如何使用Unity C将字符串从对等服务器发送到客户端?,c#,C#,我正在用C语言编写一个带有Unity引擎的游戏。我希望用户能够充当服务器或客户端,并且我希望服务器能够向客户端发送消息字符串。我曾经尝试过使用函数,但当然它没有真正的工作,因为如果有两个独立的身份。现在我正在尝试使用RCP,但它似乎不像教程中那样工作……我在更新函数中遇到了一个编译器错误。我已经附加了网络视图组件 using UnityEngine; using System.Collections; public class NetworkManager : MonoBehaviour {

我正在用C语言编写一个带有Unity引擎的游戏。我希望用户能够充当服务器或客户端,并且我希望服务器能够向客户端发送消息字符串。我曾经尝试过使用函数,但当然它没有真正的工作,因为如果有两个独立的身份。现在我正在尝试使用RCP,但它似乎不像教程中那样工作……我在更新函数中遇到了一个编译器错误。我已经附加了网络视图组件

using UnityEngine;
using System.Collections;

public class NetworkManager : MonoBehaviour 
{
private int maxConnections = 12;
private int serverPort = 9955;
public string message = "NoMessageSelected";
public bool sendMessage = false;

public void OnGUI()
{
    //Creates 2 Buttons on GUI, if disconnected
    if (Network.peerType == NetworkPeerType.Disconnected) 
    {
        if (GUI.Button (new Rect (100, 100, 100, 30), "Server")) 
        {
            Network.InitializeServer (maxConnections, serverPort);
        }
        if (GUI.Button (new Rect (200, 100, 100, 30), "Client")) 
        {
            Network.Connect ("localHost", serverPort);
        }
    }
    ////Shows Client or Server GUI
    //Client
    if (Network.peerType == NetworkPeerType.Client) 
    {
        GUI.Label (new Rect (100, 100, 400, 30), "Connected to Server");
        //Disconnect
        if (GUI.Button (new Rect (200, 200, 100, 30), "Disconnect"))
        {
            Network.Disconnect();
            MasterServer.UnregisterHost();
        }
    }
    //Server
    if (Network.peerType == NetworkPeerType.Server) 
    {
        GUI.Label (new Rect (100, 100, 400, 30), "Clients connected: " +
        Network.connections.Length);
        message = GUI.TextField(new Rect(150, 150, 200, 20), message, 25);//How to 
        receive "message"?
        //Sends message via RPC
        if (GUI.Button (new Rect (200, 200, 100, 30), "Send Message"))
        {
            networkView.RPC ("PrintText", RPCMode.All, "Hello world");
        }
    }
}


  public void Update()
  {
      Debug.Log (message);
  }

  @RPC
  function PrintText (text : String)
  {
      Debug.Log(text);
  }

}

您已将JS functon声明复制到C脚本中。您可以在这里看到所有三种语言的示例-

C相当于:

[RPC]
public void PrintText (String text)
{
    Debug.Log(text);
}

什么是编译器错误?对不起,忘了。错误CS1519:类、结构或接口成员声明中出现意外符号“PrintText”。嗯,我怀疑这是错的,因为我是从Unity手册上抄来的。。。所以我有点困惑。它有用吗?您是否设法修复了编译器错误并通过RPC传递了字符串?很抱歉,回复太晚了,当时我对堆栈溢出一无所知,不知道如何提问和回答。据我记忆所及,马克斯·K.的解决方案解决了主要问题。这并不意味着上述代码是好的。