搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
木道寻08
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Python+Requests接口测试教程(1):Fiddler抓包工具_怎么查看exe请求url请求body怎么查看
2
linux下载安装fastdfs和fastdfs与nginx整合、springboot访问fastdfs_服务器下载fastdfs
3
Python写一个MS-DOS系统 - 第一天 欢迎及ECHO和EXIT命令实现_python模拟dos
4
6-3 两个有序链表序列的合并(头节点)_l1和l2是给定的带头结点的单链表,其结点存储的数据是递增有序的;函数merge要
5
泛谈-文本挖掘-词向量技术(一)_文本挖掘查询向量
6
Java的基本学习(六)——多线程与输入输出_标准输入输出 多线程
7
scrapy的入门和使用_scrapy创建项目的命令
8
软件测试方法——等价类划分法详解_软件测试等价划分,字节软件测试面试必问_软件测评师等价类
9
pythonpythonpython一些函数的性质_python中的非原地操作
10
抖音seo矩阵系统源代码部署及产品功能设计分析_抖音矩阵系统开发
当前位置:
article
> 正文
Unity3D WEBGL项目注意事项_unity webgl
作者:木道寻08 | 2024-07-11 04:02:53
赞
踩
unity webgl
Unity打包webgl主要有以下几个方面需要注意:
1、数据库无法像PC端那样直连,需要通过后台接口对数据库进行访问,再由Unity去调用后台接口,目前我们项目用的是JAVA后台,Unity调用后台接口必须要使用
携程(IEnumerator)
,并通过
StartCoroutine
去调用执行该携程函数,
携程(IEnumerator)
与主线程是异步进行的,所以界面中有需要初始化或者显示的地方,需要将代码写在
携程(IEnumerator)
数据读取完后,不然无法正常初始化数据。调用方式如下图所示。
public void OnClick()
{
string userName = GameObject.Find("BP2/UserName/InputField").GetComponent<InputField>().text;
string password = GameObject.Find("BP2/Password/InputField").GetComponent<InputField>().text;
Text text = txtError.GetComponent<Text>();
if (string.IsNullOrEmpty(userName))
{
text.text = "用户名不能为空!";
return;
}
else if (string.IsNullOrEmpty(password))
{
text.text = "请输入正确的密码!";
return;
}
string json = JsonParamUtils.geUserLogin(userName, password);
Debug.Log(json);
StartCoroutine(login(string.Format("http://{0}/user/login",UtilsClass.WEBURL), json));
}
IEnumerator login(string _url, string _jsonStr)
{
Text text = txtError.GetComponent<Text>();
Debug.Log(_url);
byte[] bytes = Encoding.UTF8.GetBytes(_jsonStr);
UnityWebRequest request = new UnityWebRequest(_url, UnityWebRequest.kHttpVerbPOST)
{
uploadHandler = new UploadHandlerRaw(bytes),
downloadHandler = new DownloadHandlerBuffer()
};
request.SetRequestHeader("Content-Type", "application/json;charset=utf-8");
yield return request.SendWebRequest();
if (request.isHttpError || request.isNetworkError)
{
Debug.LogError(request.error);
}
else//200
{
PostValueResult postValueResult = JsonMapper.ToObject<PostValueResult>(request.downloadHandler.text);
if (postValueResult.success)
{
//User userInfo = JsonMapper.ToObject<User>(postValueResult.data.ToJson());
User userInfo = postValueResult.data;
if (userInfo != null)
{
//SceneManager.LoadSceneAsync("SampleScene");
StartCoroutine(LoadLevel());
}
else
{
text.text = "用户名或密码错误!";
}
}
else
{
Debug.Log(postValueResult.msg);
text.text = postValueResult.msg;
}
}
}
//用户POST请求参数传递
string
geUserLogin(string userName,string passWord)
{
JsonData jd= new JsonData();
jd["userName"] =
userName;
jd["
passWord
"] =
passWord;
string jsonData = JsonMapper.ToJson(jd);
return jsonData;
}
2、Unity中Text自带默认的字体为
Arial
,此字体在WEBGL中无法显示,所以需要导入其它字体进行替换,目前我们项目中用的是
微软雅黑(msyh.ttc)
3、如果项目中使用了AssetBundle,那么初始化的时候也需要使用
携程(IEnumerator)
的方式去进行初始化,调用方式可继续使用PC端的单例模式。初始化代码如下。
void Start()
{
StartCoroutine(LoadUIAssetBundle());
StartCoroutine(LoadObjAssetBundle());
StartCoroutine(LoadTextureAssetBundle());
}
/// <summary>
/// UI携程
/// </summary>
/// <returns></returns>
IEnumerator LoadUIAssetBundle()
{
AssetBundleUtils.path = Application.streamingAssetsPath + "/WebGL/ui.unity3d";
UnityWebRequest www = UnityWebRequestAssetBundle.GetAssetBundle(AssetBundleUtils.path, 0);
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError)
{
Debug.LogError(www.error);
}
else
{
AssetBundleUtils.obj = DownloadHandlerAssetBundle.GetContent(www);
}
}
4、Unity中的
PDFRenderer
插件,无法在WEBGL中使用,通过文档可以看到是支持WEBGL,但在使用测试中,是无法再WEBGL中正常显示PDF内容的,不知道是因为我们使用阉割版的问题还是什么,正版的是需要付费购买;最终选择在WEBGL中新打开网页页签的形式查看PDF,代码如下,UtilsClass.filePath + fileName为你PDF的路径。
Application.ExternalEval("window.open('" + UtilsClass.filePath + fileName + "','_blank')");
如果文件存储在服务器,则可以通过下方的形式打开文件,url为后台给的文件访问路径
Application.OpenURL(url)
声明:
本文内容由网友自发贡献,转载请注明出处:
【wpsshop】
推荐阅读
article
WebGL
Programming
Guide...
Praise for
WebGL
Programming
Guide“
WebGL
provides one of the ...
赞
踩
article
【
Unity3D
IL2CPP
】构建失败,异常:
Building
Library
\Bee\...fa...
Unity3D
打包
IL2CPP
报错C++编译问题_
unity
bee
unity
bee ...
赞
踩
article
3D
可视化
项目,选择
unity
3D
还是
three
.
js
,是时候挑明了。_前端
unity3d
...
Unity
3D
是一款跨平台的游戏引擎,可以用于开发2D和
3D
游戏。它提供了一个
可视化
的开发环境,包含了强大的编辑器和工具...
赞
踩
article
Unity
改造
编辑器
组件
字段
显示
...
Unity
改造
编辑器
组件
字段
显示
Unity
改造
编辑器
组件
字段
显示
关于
Unity
中组...
赞
踩
article
Unity
编辑器
开发...
编辑器
开发基本有四个Button在 GUI 系统里我最常用 EditorGUILayout。_unity
编辑器
开发un...
赞
踩
article
Unity
CustomEditor
自定显示
Inspector
面板
属性
_
unity
多个custo...
1.
Unity
中,我们想自定义组件在
Inspector
面板中的
属性
显示。这时候就需要用到
CustomEditor
属性
了。...
赞
踩
article
Unity
自定义
编辑器
时让
子类
继承
父类
的
Inspector
显示效果_
unity
类面板中
子类
不显示...
官方文档里的 CustomEditor函数_
unity
类面板中
子类
不显示
父类
变量
unity
类面板中
子类
不显示
父类
变量...
赞
踩
article
【
Unity
】
继承
Button
,添加公开变量怎么显示在
Inspector
_
unity
继承
butto...
一、创建一个代码叫做
Button
Base的脚本,
继承
Button
using
Unity
Engine.UI;using D...
赞
踩
article
Unity
编辑器扩展_
unity
customeditor
(
typeof
())...
在
unity
自带的下拉菜单下添加按钮 using
Unity
Editor;using
Unity
Engine;publi...
赞
踩
article
Unity
c#中
Attribute
用法详解_
unity
c#
attribute
...
举两个例子,在变量上使用[SerializeFiled]属性,可以强制让变量进行序列化,可以在
Unity
的Editor上...
赞
踩
article
游戏
开发
小结——我
在
Unity
中制作了
自定义
编辑器
_
unity
自定义
编辑器
...
在
开发
自己的
游戏
时,
在
Unity
中制作
自定义
编辑器
脚本可以改变
游戏
规则。根据您的项目需求量身定制的
自定义
检查器、窗口...
赞
踩
article
Unity3D
引擎
学习
2022
资料整理(二)
_
libcstl
...
Unity3D
引擎
学习
2022
资料整理(二)
_
libcstl
libcstl
...
赞
踩
article
vue
-
unity
-
webgl
的
API
详细...
Vue-
unity
-
webgl
是一个用于在Vue.js项目中使用Unity WebGL的库。它提供了一组
API
,可以让你...
赞
踩
article
vue
-
unity
-
webgl
在
vue
3中怎么使用...
Vue-
unity
-
webgl
是一个用于在Vue.js应用程序中嵌入Unity WebGL内容的库。在Vue 3中使用它...
赞
踩
article
【
Unity
UIToolkit
】
UIBuilder
基础教程-制作简易的
对话
系统
编辑器
3步教你玩转...
随着
Unity
开发的深入,基本的
Unity
编辑器
界面并不能满足大部分玩家高阶开发的要求。为了提高开发的效率,有针对性的定...
赞
踩
article
【
Unity3D
】使用UI
Builder
和
GraphView
创建节点
编辑器
,可用于
状态机
和对话编辑...
在使用Unity过程中,你会发现Unity提供了很多好用的图形编辑窗口,在动画机Animator和ShaderGraph...
赞
踩
article
【
Unity
】
UIElements
渲染细节,比
NGUI
/
UGUI
/
FairyGUI
好在哪?_uni...
为什么要关注
UIElements
? 因为要有运行时版本了。
UIElements
在一开始推出的时候就在文档中提到将来会...
赞
踩
article
【
unity
】UI
Builder
/UI
Element
使用实例_
uibuilder
制作
编辑器
教程...
安装 编辑 _
uibuilder
制作
编辑器
教程 示例
uibuilder
制作
编辑器
教程 示例 ...
赞
踩
article
Unity
基于
GraphView
的
对话
系统设计(一)
对话
数据与节点
编辑器
_
unity
graphv...
使用节点
编辑器
来编辑
对话
,便于策划等非程序岗参与项目开发拓展性强,可自定义节点,方便根据项目需求进行拓展使用逻辑简单、直...
赞
踩
article
Unity3D
:
创建
您的
第一个
运行时
UI
_
unity
中
build
and run时怎么让交互界面...
然后,它会
创建
可视化树的根元素和用于各个列表元素的 UXML 模板的 和 的实例。:重新加载
UI
时,包含该组件的同一...
赞
踩
相关标签
unity
c#
游戏引擎
3d
javascript
开发语言
编辑器
html
unity3d
vue.js
webgl
前端