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 ();
}
}
}
答案 0 :(得分:1)
首先,我将wssv变量声明为一个类变量,位于MonoBehavior的顶部。
初始化(构建wssv,通过调用Start()进行)进入Start()。
输入检查(将替换您的Console.ReadKey)进入Update()。 如果要在按下(例如Escape)键时停止,则要检查Input.GetKeyDown(),然后在wssv对象上调用Stop。
通常在Unity3d中,我们将单独的类保存在单独的文件中,即使它们很短。因此,我建议将Laputa类移动到自己的文件中(并且它不应该是MonoBehavior)。之后,您的MonoBehavior文件将具有变量声明,Start()和Update()。很干净。