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

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.lryc.cn/news/506533.html

相关文章:

  • 快速解决oracle 11g中exp无法导出空表的问题
  • selenium 报错 invalid argument: invalid locator
  • Flink2.0未来趋势中需要注意的一些问题
  • 机械鹦鹉与真正的智能:大语言模型推理能力的迷思
  • 本地电脑使用命令行上传文件至远程服务器
  • 【系统】Windows11更新解决办法,一键暂停
  • 34. Three.js案例-创建球体与模糊阴影
  • Qt同步读取串口
  • 如何用上AI视频工具Sora,基于ChatGPT升级Plus使用指南
  • 对象的状态变化处理与工厂模式实现
  • 关于IP代理API,我应该了解哪些功能特性?以及如何安全有效地使用它来隐藏我的网络位置?
  • 在Linux上将 `.sh` 脚本、`.jar` 包或其他脚本文件添加到开机自启动
  • [Maven]构建项目与高级特性
  • 【系统架构设计师】真题论文: 论数据分片技术及其应用(包括解题思路和素材)
  • 【bWAPP】XSS跨站脚本攻击实战
  • Ubuntu 22.04,Rime / luna_pinyin.schema 输入法:外挂词库,自定义词库 (****) OK
  • 多协议视频监控汇聚/视频安防系统Liveweb搭建智慧园区视频管理平台
  • 如何高效获取Twitter数据:Apify平台上的推特数据采集解决方案
  • 第二部分:进阶主题 15 . 安全管理 --[MySQL轻松入门教程]
  • 力扣hot100——双指针
  • 【代码随想录day58】【C++复健】 117. 软件构建(拓扑排序);47. 参加科学大会(dijkstra(朴素版)精讲)
  • 【NLP 16、实践 ③ 找出特定字符在字符串中的位置】
  • 费解的开关(bfs + 哈希表 or 递推)
  • C语言——实现求出最大值
  • 基于微信小程序的短视频系统(SpringBoot)+文档
  • Flutter 中 Sliver 的各种装饰器介绍与使用
  • 电感的基本概念
  • linux基于systemd自启守护进程 systemctl自定义服务傻瓜式教程
  • HTTP协议和接口测试详解
  • vue3【实战】定义全局方法(两种方案)