UnityWebGl--Unity和Web的通信

最近走网页存档功能,需要获取网页登陆的用户名,就收集整理了Unity和Web通信的一些知识。

使用的Unity 2017.3.0的版本,提示方法过时,但是还可以用。

新建一个项目,搭建一个简单的场景:

UnityWebGl--Unity和Web的通信_第1张图片

创建一个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传送过来得输出

    /// 
    /// 从Unity向Web发送数据
    /// 
    public void UnityToWeb()
    {
        //参数一:Web里面接收数据的方法,参数二:Unity传递的数据(我这里是输入就传递)
        Application.ExternalCall("GetFromUnity", input.text);
    }

    /// 
    /// 接收Web发送过来得数据
    /// 
    /// 
    public void WebToUnity(string s)
    {
        text.text = s;       
    }
   
}

我们把项目打包发布,部署到服务器,UnityWebGl--Unity和Web的通信_第2张图片

打开Index.html,在里面添加对应的接收方法:

     UnityWebGl--Unity和Web的通信_第3张图片

这个方法就是获取从Unity传递的数据。注意方法名       需要和Unity里面对应,方法里面是修改id的显示功能。在HTML里面添加一个ID:

UnityWebGl--Unity和Web的通信_第4张图片

 

传递方法:

UnityWebGl--Unity和Web的通信_第5张图片

关键点就在SendMessage(),方法里面的参数:Unity里面有个叫做Canvas的物体。这个物体挂载的脚本里面有个WebToUnity的方法。把s传递给这个方法里。

添加一个按钮方法,点击调用WebToUnity,并传一个HelloWorld。看看效果:

UnityWebGl--Unity和Web的通信_第6张图片

Over

欢迎加群:4364930讨论。

你可能感兴趣的:(WebGl)