javascript - 我可以用外部 JavaScript 控制 Unity3D 吗?

标签 javascript browser 3d unity-game-engine

Unity3D Plugin中的场景可以通过JavaScript来控制吗? JavaScript 代码应该在浏览器的上下文中运行,而不是在 Unity3D 插件的上下文中运行?

我必须在场景中变换、删除和添加对象。

也许你有一个例子。

感谢您的任何建议。

最佳答案

是的,这是可能的 - 至少,我知道我已经做到了,但那是很久以前的事了。

Here's the demo page我当时拼凑起来的。

请随意查看页面的源代码。大部分来自Unity's docs and examples .我只是制作了一个简单的包装器,用于向/从 Unity 网络播放器发送消息和从中接收消息,并对代码进行了一些调整。

我的代码基于 Prototype.js ,因此如果您使用 jQuery(就像现在的大多数人一样),则必须进行一些小的重写,但这应该不会太糟糕。或者您可以只使用 Unity 的预制内容。

我通常不是 Unity 编码员,所以我不能确切地告诉你如何设置 Unity 端的东西(我确实制作了你看到的简单的基于着色器的演示,但我丢失了源文件,我想),但我记得,这只是使用一组公共(public)方法创建游戏对象的问题。然后可以通过 JavaScript 调用这些方法。就这么简单。

基本上,从 JS 端来看,您所要做的就是:

var player = document.getElementById("UnityObject");
player.sendMessage("name of game object", "name of method", "argument");

如果需要,您还可以将消息从 GameObject 发送回 JavaScript。它不会在演示中发生,但它应该可以工作。查看来源了解详情。

关于javascript - 我可以用外部 JavaScript 控制 Unity3D 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9312975/

相关文章:

javascript - 使用箭头键浏览网站

javascript - 拉动刷新数据重复

javascript - CryptoJS 最大调用堆栈大小在 wordArray 到 ByteArray 转换中超出

android - 为海豚安卓浏览器写一个插件

javascript - jquery/javascript - 解析 url 以查看您是否在某个页面上

javascript - 什么是 WebIDL?(为什么)它很重要?

Javascript通过浏览器检测隐藏html表单

javascript - 如何独立于特定相机轴来移动相机?

math - 将 3D 点投影到 2D 平面

java - 无法正确旋转 3D 点 A 到 B(在 X、Y、Z 轴上)