You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity导入WebSocketSharp包后仍遇CS0246错误:找不到WebSocket类型

Unity中WebSocketSharp引用失败解决办法

已下载WebSocketSharp包,但编译以下C#脚本时仍出现错误:

Assets\Script\Temperature.cs(10,2): error CS0246: 找不到类型或命名空间名称“WebSocket”(是否缺少 using 指令或程序集引用?)

用户脚本代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using WebSocketSharp;
using TMPro;
public class Temperature : MonoBehaviour
{
 [SerializeField]
 private TextMeshPro textMesh = null;
 WebSocket ws;
 string messageWs;
 private void Start()
 {
 ws = new WebSocket("ws://192.168.1.8:1880/ws/Temperature");
 ws.Connect();
 }
 void Update()
 {
 ws.OnMessage += (sender, e) => messageWs = e.Data;
 if (textMesh == null)
 {
 textMesh = GetComponent<TextMeshPro>();
 }
 if (textMesh != null)
 {
 textMesh.text = $"Temperetaure : " + messageWs ;
 }
 }
}

排查修复步骤

  • 确认dll放置路径:将WebSocketSharp的dll文件移到项目的Assets/Plugins目录下,Unity仅自动识别该目录下的外部程序集,无此目录则手动创建。
  • 匹配dll版本:选择与Unity当前.NET框架兼容的版本(Unity多使用.NET Framework 4.x系列),避免下载.NET Core或其他不兼容版本。
  • 重新导入程序集:先将dll从项目中移除,再重新拖入Plugins文件夹,触发Unity重新加载程序集,解决缓存导致的识别问题。
  • 检查命名空间:确保脚本中using WebSocketSharp;拼写正确,部分版本可能使用WebSocketSharp.Unity作为命名空间,可通过反编译dll确认。
  • 修复脚本逻辑隐患:Update方法中重复绑定ws.OnMessage会导致内存泄漏,应将事件绑定移至Start方法:
private void Start()
{
    ws = new WebSocket("ws://192.168.1.8:1880/ws/Temperature");
    ws.OnMessage += (sender, e) => messageWs = e.Data;
    ws.Connect();
}

内容的提问来源于stack exchange,提问作者abdou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 06:10:01