Unity关于webgl学习

打包后的文件:
在这里插入图片描述

如何创建webgl模板?
简单的方法:先用默认模板打包,然后复制TemplateData文件夹,复制到Assets/WebGLTemplates,比如叫Test,那么在ProjectSettings的WebGLTemplate地方就会看到一个叫Test名字的模板,选择即可。默认模板是Default。
在这里插入图片描述
打包显示效果
模板里边的样式,logo等资源,可以自定义,打包时勾选自定义模板即可。
在这里插入图片描述
webgl文字
unity在编辑器模式下,用的字体,打包时不会打包。有可能出现不显示文字的情况。需要自己选择一个字体。

Unity和Js互调
JSMain.jslib要放在Assets/Plugins下。

Javascript: JSMain.jslib


var JSMain = {
    
    
	$input:null,
	$unityGameObjectName : "",
	$callUnity: function(){
    
    
		if(input != null){
    
    
			//调用unity核心方法,直接调用即可
			SendMessage(unityGameObjectName, "UnityFuncA",input.value);
		}
	},
	InputShow: function(GameObjectName_,v_)
	{
    
    		
		unityGameObjectName =  = Pointer_stringify(GameObjectName_);
		var v =  = Pointer_stringify(v_);
		console.log("unity 回调InputShow: "+unityGameObjectName);

		var input = document.createElement("input");
		input.value = v;
		input.focus();	
	},
	isFullScreen:function (){
    
    
	  return document.fullscreen;
	}
};
//JSMain内部方法可以,相互调用变量
autoAddDeps(JSMain,'$callUnity');
autoAddDeps(JSMain,'$unityGameObjectName');
mergeInto(LibraryManager.library,JSMain);

Unity: JSManager.cs

using System;
using System.Runtime.InteropServices;

public static class JSManager {
    
    
//js提供的接口,要写在扩展里边
#if UNITY_WEBGL && !UNITY_EDITOR
    [DllImport("__Internal")]
	public static extern void InputShow (string GameObjectName,string v);
	[DllImport("__Internal")]
	public static extern bool isFullScreen ();
#else
    public static void InputShow(string GameObjectName,string v) {
    
     }
	public static bool isFullScreen (){
    
     return false; }
#endif
}

Unity: InputWebGL.cs

public class UnityWebGL : MonoBehaviour{
    
    	
	//调用JS
	public void callJS(){
    
    	
		JSManager.InputShow(gameObject.name,"hello world");
		JSManager.isFullScreen();
	}
	//被JS调用	
	public void UnityFuncA(){
    
    
			
	}
}

猜你喜欢

转载自blog.csdn.net/wangwen_22/article/details/127268707