Unity发布WebGL测试界面处理方式参考

        如果使用Unity发布WebGL经常会和网页进行交互,为了能够做到界面统一,往往所有UI都是在页面上开发的,Unity本身不做任何UI或者只做三维UI,但是在开发过程中,为了测试接口,难免要在Unity中做一些UI来方便测试功能,但这些UI在发布成WebGL之后必须消失。

        一开始的时候使用的是这样的方法,就是先检查是否是WebGLPlayer平台,如果是的话,就删除特定UI,代码类似:

if(Application.platform == RuntimePlatform.WebGLPlayer)
{
    Destroy(testUI.gameObject);
}

        这样做有个问题,就是测试的UI实际上是打包到了发布的内容里面了,如果测试UI内容比较复杂的话,还是会占用一定空间。

        后来想到一个办法,就是直接把测试UI做成prefab,放到Resources文件夹里面,然后在运行阶段加载进来,类似这样:

#if UNITY_EDITOR_WIN
void Start()
{
    Canvas canvas = Resources.Load<Canvas>("UIPrefabs/TestUI");
    canvas = Instantiate(canvas);
    canvas.transform.SetParent(uiRoot);
}
#endif

        由于加载的代码被包在了#if UNITY_EDITOR_WIN和#endif之间,所有只有在编辑器里面才会从Reources文件夹中加载UI的Prefab,在发布成WebGL的时候并不会编译这段代码,所以也就不会加载测试UI,同时场景中也没有直接引用这个Prefab,所以这个UI的Prefab就不会包在发布的内容里面了。

相关推荐

  1. Unity发布WebGL测试界面处理方式参考

    2023-12-13 16:30:03       64 阅读
  2. Unity发布webgl之后打开streamingAssets中的html文件

    2023-12-13 16:30:03       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-13 16:30:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-13 16:30:03       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-13 16:30:03       87 阅读
  4. Python语言-面向对象

    2023-12-13 16:30:03       96 阅读

热门阅读

  1. git切换分支

    2023-12-13 16:30:03       63 阅读
  2. Oracle创建定时任务——-job

    2023-12-13 16:30:03       63 阅读
  3. 在循环内错误使用函数定义(js的问题)

    2023-12-13 16:30:03       61 阅读
  4. 【Docker】Docker的安装部署及优化详解

    2023-12-13 16:30:03       52 阅读
  5. 验证回文串算法(leetcode第125题)

    2023-12-13 16:30:03       60 阅读
  6. (第56天)分区表转换之复合分区

    2023-12-13 16:30:03       61 阅读
  7. WPF的WebBrowser控件

    2023-12-13 16:30:03       49 阅读
  8. 卷积的计算 - numpy的实现 2

    2023-12-13 16:30:03       49 阅读