最近走網頁存檔功能,需要獲取網頁登陸的用戶名,就收集整理了Unity和Web通信的一些知識。
使用的Unity 2017.3.0的版本,提示方法過時,但是還可以用。
新建一個項目,搭建一個簡單的場景:
創建一個Canvas,添加一個Test腳本。腳本里面內容:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Test : MonoBehaviour {
public InputField input;//輸入
public Text text;//顯示Web傳送過來得輸出
/// <summary>
/// 從Unity向Web發送數據
/// </summary>
public void UnityToWeb()
{
//參數一:Web裏面接收數據的方法,參數二:Unity傳遞的數據(我這裏是輸入就傳遞)
Application.ExternalCall("GetFromUnity", input.text);
}
/// <summary>
/// 接收Web發送過來得數據
/// </summary>
/// <param name="s"></param>
public void WebToUnity(string s)
{
text.text = s;
}
}
我們把項目打包發佈,部署到服務器,
打開Index.html,在裏面添加對應的接收方法:
這個方法就是獲取從Unity傳遞的數據。注意方法名 需要和Unity裏面對應,方法裏面是修改id的顯示功能。在HTML裏面添加一個ID:
傳遞方法:
關鍵點就在SendMessage(),方法裏面的參數:Unity裏面有個叫做Canvas的物體。這個物體掛載的腳本里面有個WebToUnity的方法。把s傳遞給這個方法裏。
添加一個按鈕方法,點擊調用WebToUnity,並傳一個HelloWorld。看看效果:
Over
歡迎加羣:4364930討論。