你可以做的是在你的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