用于Unity的WebSocket 库支持
该库主要服务于 https://github.com/AlianBlank/GameFrameX 作为子库使用。
直接在 manifest.json 文件中添加以下内容
{"com.gameframex.unity.psygames.unitywebsocket": "https://github.com/AlianBlank/com.gameframex.unity.psygames.unitywebsocket.git"}
在Unity 的Packages Manager 中使用Git URL 的方式添加库,地址为:https://github.com/AlianBlank/com.gameframex.unity.psygames.unitywebsocket.git
直接下载仓库放置到Unity 项目的Packages 目录下。会自动加载识别
IsConnected 的属性
通过 Unity Package 安装
在 Releases 页面中,下载最新版本的 UnityWebSocket.unitypackage 安装包,然后导入到您的项目中。
通过 Package Manager 安装
在 Unity 菜单栏中打开 Window/Package Manager,点击左上角 + 号,选择 Add package from git URL... ,输入 https://github.com/psygames/UnityWebSocket.git#upm 并确认。
代码示例
// 命名空间
using UnityWebSocket;
// 创建实例
string address = "ws://echo.websocket.org";
WebSocket socket = new WebSocket(address);
// 注册回调
socket.OnOpen += OnOpen;
socket.OnClose += OnClose;
socket.OnMessage += OnMessage;
socket.OnError += OnError;
// 连接
socket.ConnectAsync();
// 发送 string 类型数据
socket.SendAsync(str);
// 或者 发送 byte[] 类型数据(建议使用)
socket.SendAsync(bytes);
// 关闭连接
socket.CloseAsync();
更多使用方法可参考项目中的 UnityWebSocketDemo.cs 示例代码。
功能菜单:
Unity 编译宏(可选项):
UNITY_WEB_SOCKET_LOG 打开底层日志输出。UNITY_WEB_SOCKET_ENABLE_ASYNC 针对非WebGL平台使用异步线程处理消息(需自行处理跨线程访问Unity组件问题)。