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

26 篇文章 0 订阅
11 篇文章 0 订阅

        如果使用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就不会包在发布的内容里面了。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值