Unity调用jslib中JS函数时提示DllImportAttribute未找到,求解决方案
解决Unity中DllImportAttribute找不到的编译错误
嘿,这个问题其实很常见,核心原因就是你漏了引入DllImportAttribute所在的命名空间!它属于System.Runtime.InteropServices,Unity默认已经包含了对应的程序集,但必须显式添加using指令才能使用这个特性。
修改后的完整C#代码
using UnityEngine; // 关键:添加这个命名空间引用 using System.Runtime.InteropServices; public class Prefab : MonoBehaviour { private string test = "test"; [DllImport("__Internal")] private static extern void SendToJavascript(string test); void Start() { // 额外提醒:编辑器非WebGL环境下调用会报错,建议加平台判断 #if UNITY_WEBGL && !UNITY_EDITOR SendToJavascript(this.test); #endif } }
额外注意事项
- 确保你的
.jslib文件放在Assets/Plugins/WebGL文件夹下(而非直接在Assets/Plugins),Unity仅在WebGL平台下识别这个路径的jslib文件 - 必须将Unity的目标平台切换为WebGL,否则
__Internal标识不会生效,还可能引发其他错误 - 如果需要在编辑器中测试逻辑,可以在
#else分支里添加编辑器专属的替代代码,避免运行报错
内容的提问来源于stack exchange,提问作者honey_cake
相关产品推荐
相关产品推荐

