Unity3D+WebGL数据交互、传参

半城伤御伤魂 提交于 2019-11-30 00:56:46

描述

我也是刚开始学习WebGL+Unity3D。文章描述中可能有些不准确,见谅。

Unity版本 2018.2.6f1


1.项目:
    创建了一个选择框和一个文本内容
    要实现的就是改变文本内容的值

2.逻辑:
    鼠标左击点击屏幕->加载JS函数
    JS函数调用C#方法->改变WebGL中文本内容

C#代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ChangeTextColor1 : MonoBehaviour {

    public Toggle changeToggle;
    private Text text;

    void Start()
    {
        //Debug.Log("初始状态");
        text = changeToggle.GetComponentInChildren<Text>();
        text.text = "初始状态";
    }

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            //PassInformation为js的方法
            text.text = "激活-发送状态";
            Application.ExternalCall("PassInformation");
        }
    }


    //与html进行交互
    private void GetInformation(string s)
    {
        text.text = s;
    }

}

HTML+JS 

<!DOCTYPE html>
<html lang="en-us">
	<head>
		<meta charset="utf-8">
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>Unity WebGL Player | 20190918</title>
		<link rel="shortcut icon" href="TemplateData/favicon.ico">
		<link rel="stylesheet" href="TemplateData/style.css">
		<script src="TemplateData/UnityProgress.js"></script>
		<script src="Build/UnityLoader.js"></script>
		<script>
			var gameInstance = UnityLoader.instantiate("gameContainer", "Build/WebGL190918.json", {
				onProgress: UnityProgress
			});

			function PassInformation() //承接Unity
			{
				var str = "我是程序猿";
				gameInstance.SendMessage("GameObject", "GetInformation", str); //参数分别是:Unity里面挂载脚本的gameobject,要触发的脚本里面的方法,脚本方法的参数
			}

			function send() {
				gameInstance.SendMessage("GameObject", "GetInformation", 'title');
			}
		</script>
	</head>
	<body>
		<div class="webgl-content">
			<div id="gameContainer" style="width: 960px; height: 600px"></div>
			<div class="footer">
				<div class="webgl-logo"></div>
				<div class="fullscreen" onclick="gameInstance.SetFullscreen(1)"></div>
				<div class="title" onclick='send(this)'>20190918</div>
			</div>
		</div>
	</body>
</html>

运行效果

 

WebGL项目+Unity项目

链接: https://pan.baidu.com/s/1gg8NlHOo6AhxsGuGhQaRHQ 提取码: 2333

项目中遇到的问题 

Unity发布webgl时项目中的中文不显示或者消失
https://blog.csdn.net/liu442620190/article/details/82685266

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!