最近走网页存档功能,需要获取网页登陆的用户名,就收集整理了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讨论。