描述
我也是刚开始学习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
来源:https://blog.csdn.net/qq_36267404/article/details/100983091