Unity与Js通信交互

目录

1.Js给Unity传递消息

2.Unity给Js传递消息


简介:

Unity 与 JavaScript 通信交互是指在 Unity 项目中实现与 JavaScript 代码进行数据交换和功能调用的过程。

在 Unity 中,可以通过特定的接口和技术来与外部的 JavaScript 环境进行连接。这使得 Unity 能够利用 JavaScript 强大的网页开发能力和丰富的功能库。

一方面,Unity 可以向 JavaScript 传递数据,比如游戏中的状态信息、玩家数据等,让网页端可以根据这些信息进行相应的展示或处理。

另一方面,JavaScript 也可以向 Unity 发送指令或请求,触发 Unity 中的某些行为或逻辑,比如控制游戏对象的动作、执行特定的游戏功能等。

这种通信交互可以应用于多种场景,例如将 Unity 游戏嵌入网页中,实现网页与游戏的紧密结合;或者在混合开发项目中,协调 Unity 部分和网页部分的工作。

通过 Unity 与 JavaScript 的通信交互,开发者可以充分发挥两者的优势,创造出更丰富、更具创新性的应用和体验。

一. Js给Unity传递消息

unityInstance.SendMessage(objectName, methodName, value);

其中,__objectName__ 是场景中的对象名称;__methodName__ 是当前附加到该对象的脚本中的方法名称;__value__ 可以是字符串、数字,也可为空。

unityInstance在打包之后index.html的位置

 在别的地方用unityInstance,要在图片红框位置后面打括号里赋值.

ps:  __value__如果想传递多个参数.比如两个可以中间添加逗号,读取的时候使用string[] strArray = Value.Split(','),就可以获取第一个(strArray[0] )和第二个(strArray[1] )

二. Unity给Js传递消息

新建一个 .jslib 扩展名的文件.并且该文件要放置在 Assets 文件夹中的“Plugins”子文件夹下.

mergeInto(LibraryManager.library, {
  //Unity调用的函数名JSTest
  JSTest: function (str) {
  var strs=Pointer_stringify(str);
  //这个LogTest方法是前端那边写的方法
    LogTest(strs);
  }
	//这里可以添加若干个方法,方法之间记得用逗号隔开,
});

在C#代码中调用.

   [DllImport("__Internal")] //internal前是两个下划线  这一步的作用是动态调用dll
    private static extern void JSTest(string name);

    public void Test(string name)
    {
  
         JSTest(name);
    }

                在编辑器模式下直接调用会报错,建议加上平台判断.

三. 总结

它是在 Unity 项目中建立与 Js 代码间数据传递和功能调用的机制。通过专门接口和技术实现与外部 Js 环境的连接。Unity 可向 Js 传递如游戏状态、玩家数据等信息,以供网页端进行相关处理;Js 也能向 Unity 发送指令或请求以触发游戏内行为或逻辑。此交互适用于多种情况,如嵌入网页实现紧密结合,或在混合开发项目中协调两部分工作。这种通信让开发者能融合两者优势,打造更丰富多样和创新的应用体验。

相关推荐

  1. UnityAndroid交互通信系列(6)

    2024-06-14 07:48:02       4 阅读
  2. QWebEngineViewjs交互

    2024-06-14 07:48:02       29 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-14 07:48:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-14 07:48:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-14 07:48:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-14 07:48:02       18 阅读

热门阅读

  1. 深入理解服务器路由功能:配置与应用详解

    2024-06-14 07:48:02       5 阅读
  2. TCP是什么、UDP是什么,它们有什么区别

    2024-06-14 07:48:02       6 阅读
  3. WHAT - React 学习系列(一)

    2024-06-14 07:48:02       9 阅读
  4. .NET C# 实现国密算法加解密

    2024-06-14 07:48:02       3 阅读
  5. VB.net与C# 调用InitializeComponent的区别

    2024-06-14 07:48:02       6 阅读
  6. HarmonyOS(35) @State使用注意事项

    2024-06-14 07:48:02       5 阅读
  7. php学习笔记

    2024-06-14 07:48:02       6 阅读