我可以用外部JavaScript控制Unity3D吗

Can I control Unity3D with external JavaScript?

本文关键字:Unity3D 控制 JavaScript 外部 我可以      更新时间:2023-09-26

是否可以使用JavaScript控制Unity3D插件中的场景?JavaScript代码应该在浏览器的上下文中运行,而不是在Unity3D插件的上下文中?

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

也许你有一个例子。

谢谢你的建议。

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

这是我当时制作的演示页面。

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

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

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

基本上,从JS的角度来看,你所要做的就是:

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

若你们愿意,你们也可以将消息从游戏对象发送回JavaScript。这在演示中没有发生,但它应该可以工作。有关详细信息,请查看来源。