你可以做的是在你的Javascript代码中发送消息给Unity,但你会让Unity做关于实例化对象的肮脏工作。
这是我只是做了一个例子:
首先你创建一个派生的对象/预制一个C#脚本,像这样:
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class MyObjectSpawner : MonoBehaviour {
public Transform Prefab;
public void Spawn(string data) {
var instance = Instantiate(Prefab);
// do what you like with your instantiated object and the data from the javascript here
}
}
现在你里面的场景创建一个对象,并附加这个脚本来吧。请注意您给刚刚创建的游戏对象的名称,这在下一步中很重要。现在,假设我们将其命名为“MyGameObject”。
最后一步是你的JavaScript里面的游戏页面容器。在这个例子中,我创建了一个按钮,当它被点击时,调用spawnUnityObject()
方法。就像这样:
HTML:
<button type="button" onclick="spawnUnityObject()">Press me</button>
的Javascript:
function spawnUnityObject() {
// game object in the scene, method name, method parameter
SendMessage('MyGameObject', 'Spawn', 'Super string');
}
结果将是:当您单击HTML里面的 “按我” 的按钮,游戏将产生的对象,并且可以使用“超级字符串”作为Spawn()
方法中的数据。
我希望这可以帮助你。让我知道你是否需要更多细节。
这听起来像我需要的,我会尝试它,让你知道,谢谢。 –
所以我一直在使用这段代码试图修改它,但有一件事我不能摆脱是这个消息我得到的视图sendMessage(“MyGameObject”,“产卵”)','sendMessage'是不明确的) 所以我一直在尝试使用这个“gameInstance.SendMessage()”,我仍然得到相同的错误,我真的不知道为什么。 –
您不需要获取任何实例来调用'SendMessage'。注意案件很重要。所以'sendMessage'不同于'SendMessage'。 – Kleber