将C#Websocket示例转换为Unity MonoBehaviour

时间:2017-01-28 17:08:15

标签: c# unity3d websocket

C#noob的一点 尝试使用Websocket CSharp库 http://sta.github.io/websocket-sharp/ 在Unity中创建套接字服务器 如何将以下内容转换为 Monobehaviour ,以便我可以简单地附加到游戏对象并运行? 我知道我正在扩展Monobehaviour,我正在处理 Awake 开始更新方法,但是在嵌套类方面有点模糊,命名空间,以下我将在开始方法中添加的代码,以及我是否应该将所有内容保存在一个.cs文件中或者将其分解,每个类一个文件。

using System;
using WebSocketSharp;
using WebSocketSharp.Server;

namespace Example
{
  public class Laputa : WebSocketBehavior
  {
    protected override void OnMessage (MessageEventArgs e)
    {
      var msg = e.Data == "BALUS"
      ? "I've been balused already..."
      : "I'm not available now.";

      Send (msg);
    }
  }

  public class Program
  {
    public static void Main (string[] args)
    {
      var wssv = new WebSocketServer ("ws://dragonsnest.far");
      wssv.AddWebSocketService<Laputa> ("/Laputa");
      wssv.Start ();
      Console.ReadKey (true);
      wssv.Stop ();
    }
  }
}


using WebSocketSharp;
using WebSocketSharp.Server;

namespace Example
{
  public class Laputa : WebSocketBehavior
  {
    protected override void OnMessage (MessageEventArgs e)
    {
      var msg = e.Data == "BALUS"
      ? "I've been balused already..."
      : "I'm not available now.";

      Send (msg);
    }
  }

  public class Program
  {
    public static void Main (string[] args)
    {
      var wssv = new WebSocketServer ("ws://dragonsnest.far");
      wssv.AddWebSocketService<Laputa> ("/Laputa");
      wssv.Start ();
      Console.ReadKey (true);
      wssv.Stop ();
    }
  }
}

1 个答案:

答案 0 :(得分:1)

首先,我将wssv变量声明为一个类变量,位于MonoBehavior的顶部。

初始化(构建wssv,通过调用Start()进行)进入Start()。

输入检查(将替换您的Console.ReadKey)进入Update()。 如果要在按下(例如Escape)键时停止,则要检查Input.GetKeyDown(),然后在wssv对象上调用Stop。

通常在Unity3d中,我们将单独的类保存在单独的文件中,即使它们很短。因此,我建议将Laputa类移动到自己的文件中(并且它不应该是MonoBehavior)。之后,您的MonoBehavior文件将具有变量声明,Start()和Update()。很干净。

相关问题