当前位置: 首页 > article >正文

Cocos Creator 试玩广告开发

        之前主要是使用Unity,这次刚好项目是试玩游戏的开发,所以临时学了Cocos来开发。所以这篇文章,更加关注从Unity转到Cocos开发的经历以及试玩的基本开发。

        首先,我是没有使用过Cocos的,也没有接触过Ts语言,对于Ts的开发开始也很难习惯,不过语言之间都大差不差,遇到不清楚的查一下文档即可。

        如果你之前也是使用Unity开发的,基本上可以直接上手Cocos,两者从界面上来说,没太大区别,不过对于Cocos-2dx来说,游戏不一样。具体的区别和使用体验我就不说了,这不是重点。

cocos creator 3.8界面

unity 2022界面

不过,Cocos在运行时好像不能看编辑界面,这一点很难受。至于其他部分的用法和unity几乎一样。如果你也是从unity转来暂时需要用Cocos,请不用担心,

下面记录一些开发中所遇到的问题。

问题集合:

1.Cocos版本

        Cocos版本迭代好像很快,哪怕是小版本之间的区别也蛮大的,项目创建需要注意

2.射线检测失效

        在开发中,突然发现射线检测没有用了,有时候能检测到射线开始,却检测不到结束。之类的情况,这个问题是Cocos自己的Bug,退出重启即可。

3.脚本中的定义怎么才能在面板中显示出来。

        虽然ts支持的数据容器也有好些,但是我确实不知道在Cocos中怎么用,可能我用的不多。在存储大量类型方面我一直用的数组。

    //面板中显示必须加,并且需要赋初值
    @property(Node)//括号中也需要指定类型
    public curNum: num = null;
    @property([SpriteFrame])
    public nums: SpriteFrame[] = Array<SpriteFrame>();

4.更改屏幕分辨率

        之前好像是能之间在Canvas组件上面改,不过后面移到项目设置中去了

5.移动端设计了横竖屏的切换,但是运行后无法转换,或者转换后马上转回去了

        这个是由于在打包构建时,设备方向勾选了横或者竖,改为自动即可。

6.打包运行

        其他打包我没有试过,目前主要时Web移动和桌面端,这两种打包方式打包出来是无法直接运行的。

运行方式:

        1.在包体构建完成之后,Cocos构建界面可以之间点击运行。

         2.如果你代码是用VsCode写的,可以加上Live Server的扩展,然后打开构建完成的文件夹,运行Index.html即可。

        3.服务器部署

        将项目部署在服务器上,这就比较复杂了。不过试玩广告主要也就一个html文件,用一个文件服务器就可以了。

        可以用下面的这个简单的做一些部署,就可以通过手机访问到你的打包文件了。

        HFS ~ HTTP File Server

7.编辑预览 

        在开发过程中,想要实时看在手机上的运行情况,官方推荐的是之间扫二维码预览。但我试了一下,好像不行,这个位置先空着,之后有办法在补充。

        后面我有看来一下,需要手机与电脑处于同一个局域网内,但是实际在做项目的时候,公司这边的Wifi好像不行。如果需要实时的预览手机运行情况,出了打包之外,在电脑上安装手机模拟器也可以直接扫描二维码运行。

8.横竖屏切换

        这一点有些坑,横竖版的两个素材,在运行中切换横竖屏的表现状态和运行前直接改分辨率的表现是不一样的,所以需要做一些单独的适配,在项目中我采用了横竖屏两套状态的切换方式。

        而且在网上找的很多实列拿过来之后就不能用了,主要是Cocos迭代把一些API去掉了

        不过对于横竖屏的判断,大多都是判断屏幕的长和宽的大小,我这里随便占了一个,指不定啥时候这Api又被扔掉了

let winSize = new Size(screen.windowSize.width / view['_scaleX'], screen.windowSize.height / view['_scaleY']);
        if (winSize.width > winSize.height) {
            this.curState = true;
            this.backGround.spriteFrame=this.spBg[1];
        }
        else {
            this.curState = false;
            this.backGround.spriteFrame=this.spBg[0];
        }

9.包体大小

        由于平台限制,试玩基本上不能超过5MB,在我打包完之后,发现不管是那个平台的html似乎都很大,这让我很苦恼,我找了很多方法,包括资源文件夹的使用等等,好像都不太管用,后面我又换版本,发现越换越大,我突然想到会不会是文件残留。试了之后,果然如此。下面我罗列一些包体优化的方法。

        1.优化图片文件体积

        2.优化声音文件

        3.优化字体字库大小

        4.优化引擎代码体积

其他几个我还没用过,毕竟试玩的资源也不会太多。优化引擎代码体积,主要是剔除一些不必要的模块

        5.重建大法

        这个方法不确定有没有用,反正我是可以用的,在项目根目录下删掉不需要的文件,重新构建,比如Library这些文件

10. 特效不显示

        在Cocos商店下载了一份3d特效,但是放在2D项目中,在运行之前能够看到特效,但是运行之后却不显示的问题。

        解决方法:1.更改摄像机的参数,Visibilty中将GIZMOS勾选上

                          2.给特效添加UIMeshRenderer组件,如果是多个特效的预制体,则每一个特效都需要添加这个组件

试玩开发

        打包出来的文件很多,但是试玩只需要一个html文件,这需要我们手动写插件压缩,如果公司有大佬写了还好,如果没有只能向我一样到处找了,下面这个项目能构建的平台非常多,而且使用也很方便。链接放这里了。

https://github.com/ppgee/cocos-pnp

打包之后的文件 

打包之后的单html就是我们需要的试玩文件了。这个时候就可以上传相关的平台了。

下载跳转

        那么试玩之后的下载跳转怎么做呢。

根据要求,我们只需要调用mraid.open()这个API就可以了,并且打包文件的AppLovin中是自带的,可是我找了半天根本没有啊。后面也是看到一位老哥的帖子才知道怎么做。

解决方案:

        1.在代码的对应位置之间调用mraid.open(),这个时候会爆红,不用管他。打包

        2.打包完成,打开AppLovin.html,将这个删掉

这个时候上传测试就可以发现点击之后出现跳转提示了。

这就是目前遇到的一些问题和总结,后面有的话会继续更新。


http://www.kler.cn/a/444058.html

相关文章:

  • 【NLP 16、实践 ③ 找出特定字符在字符串中的位置】
  • webview和H5来实现的android短视频(短剧)音视频播放依赖控件
  • Spring Boot 2.1.7 数据源自动加载过程详解
  • RadiAnt DICOM - 基本主题 :从 PACS 服务器打开研究
  • 智能座舱进阶-应用框架层-Handler分析
  • 全志H618 Android12修改doucmentsui选中图片资源详情信息
  • Vue 2 中 v-html 指令的使用详解
  • 面试小札:Java后端闪电五连鞭_9
  • 告别机器人味:如何让ChatGPT写出有灵魂的内容
  • JVM 垃圾回收之垃圾回收算法
  • Android Vendor Overlay机制
  • 【机器学习】【集成学习——决策树、随机森林】从零起步:掌握决策树、随机森林与GBDT的机器学习之旅
  • Qt之样式表使用(十一)
  • STM32中ADC模数转换器
  • 动手学深度学习11.1. 优化和深度学习-笔记练习(PyTorch)
  • 嵌入式驱动开发详解17(CAN驱动开发)
  • 在 Linux 下,将 tar 包打包成二进制程序
  • 【系统方案资料集】工业互联网数字中台解决方案,产业互联网数据中台解决方案,数据中台整体建设方案(Word,PPT)
  • Centos创建共享文件夹拉取文件
  • 使用Element-UI transfer穿梭框在屏幕下鼠标悬浮显示完整信息
  • 如何在 Ubuntu 22.04 上安装 MySQL
  • 《Posterior Collapse and Latent Variable Non-identifiability》
  • 【数据结构】平衡二叉树
  • 【Canvas与仪表盘】铝圈蓝底汽车速度仪表盘(可用键盘按键调节速度值)
  • 初学stm32 --- 外部中断
  • C语言与C++与Python与Java的差别