一眨眼假期就过了,但是 Cocos Creator 2.4.3 来啦!

今天是返工第一天,告诉大家一个噩耗,你已经过完了 2020 年所有法定节假日!此时萦绕在心里的只有一个念头:为什么正义都能迟到,上班却不能呢?

好消息是 Cocos Creator 2.4.3 正式版终于来啦!我们带来了很棒的新特性以及性能提升,例如支持 Prefab 的嵌套使用和 Android x86_64 的支持等,希望能一定程度抚慰大家返工沉重的心情和体重。

此外,本次更新修复了 2.4 版本以来的所有问题,提升了编辑器稳定性,希望大家使用起来更加得心应手、事半功倍。建议所有开发者做好相关备份工作升级喔!

What’s new

  • 支持 Prefab 嵌套

支持在 Prefab 中嵌套使用其他 Prefab,减少重复资源数量,更加利于维护与更新。

  • 新增对 Android x86_64 支持

Android 平台可选择 x86_64 进行构建,构建之后可在更多设备与模拟器上运行。

  • 模拟器增加是否清空缓存的选项

Improvements

  • 优化构建后 JSON 文件大小,配合合并所有 JSON,最多能减少 30% JSON 体积

  • 升级物理引擎 Cannon 版本到 1.1.1

  • 原生平台支持下载远程资源失败后使用断点续传[#345]

  • 优化编辑器导入 Plist 资源速度

  • 优化编辑器下执行 cc.resources.load 性能

  • 支持加载存储空间中的 Asset Bundle [#153]

Engine

  • [CORE] 修复 SpriteFrame 的 clone 方法中共享属性的问题 [#7030],感谢大城小胖

  • [CORE] 修复 editorOnly 作用于资源属性时,资源无法从构建中剔除的问题 [#7048]

  • [CORE] 修复 cc.Quat.rotateX, cc.Quat.rotateY, cc.Quat.rotateZ 计算结果可能不正确的问题 [#7036]

  • [CORE] 修复 setPosition 与 setScale 不传入 z 值,z 值重置为 0 的问题 [#7104],感谢大城小胖

  • [AUDIO] 修复 AudioSource 无法获取 duration 的问题 [#7035]

  • [AUDIO] 修复 AudioSource 组件勾选 loop 和 mute 无效的问题 [#6935]

  • [AUDIO] 修复切换场景时,音频没有停止播放的问题 [#7317]

  • [PARTICLE] 修复粒子系统 InputAssembler 没有清空的问题 [#7060],感谢 caogtaa

  • [PARTICLE] 修复粒子系统组件无法切换图集中其他 SpriteFrame 的问题 [#7000]

  • [LABEL] 修复 Label 渲染出现一些突刺的问题 [#7132]

  • [LABEL] 修复 LabelOutline、LabelShadow、MotionStreak 组件的 color 属性共享的问题 [#7027]

  • [LABEL] 修复在 start 里修改 Label 颜色无效的问题 [#7018]

  • [LABEL] 修复 BITMAP 模式下的文本隐藏时修改 string 属性无效的问题 [#7003]

  • [PHYSICS] 修复刚体一旦进入休眠,使用其他刚体撞击,无法产生碰撞效果的问题 [#7119]

  • [CAMERA] 修复在没有摄像机时渲染 EditBox, VideoPlayer, WebView 崩溃的问题 [#332]

  • [CAMERA] 修复 onLoad 函数中,获取不到摄像机正确尺寸的问题 [#7073]

  • [WIDGET] 修复 widget 设置为 ON_WINDOW_RESIZE 时, 当使用 setContentSize 时,没有更新的问题 [#7275]

  • [ASSET] 修复多次加载同一 Asset Bundle,加载失败的问题 [#7424]

  • [ASSET]修复连续调用 loadRemote 加载同一张图片,加载失败的问题 [#6941]

  • [ASSET] 修复加载资源失败后,progress 回调还在执行的问题 [#7121]

  • [ASSET] 修复 Bundle.load 传入数组时,返回值不是数组的问题 [#6923]

  • [ASSET] 修复脚本加载顺序可能不正确的问题 [#7065]

  • [ASSET] 修复延迟加载时,无法切换 Sprite.spriteFrame 的问题 [#7233]

  • [ASSET] 修复项目脚本中过早调用 cc.resources , 提示不存在的问题

Native

  • 修复 Android 平台 SafeArea 组件宽高不对的问题 [#2562]

  • 修复 Android 旋转后没有重新计算 SafeArea 的问题 [#337]

  • 修复 iOS 设备屏幕翻转后,重力感应不对的问题 [#2791]

  • 修复 iOS 设备方向设置为 upside down,显示错误的问题 [#2787]

  • 修复 iOS 平台在 LaunchScreen 画面的时候,立即旋转,可能出现触摸坐标异常的问题 [#309]

  • 修复 Android 4.4 以下崩溃的问题 [#2532],感谢 deyongzhong

  • 修复潜在的内存泄漏和空指针问题 [#2512],感谢 quink-black

  • 修复弹出和收回 EditBox 导致屏幕宽度改变的问题 [#2630]

  • 修复 iOS 端 EditBox 编辑文字,光标自动跳转到末端的问题 [#2669]

  • 修复 iOS 下 EditBox 韩文联想被打断的问题 [#2669]

  • 修复下载资源失败后临时文件没有被删除的问题 [#2629]

  • 修复 iOS 上缓存资源路径拼接错误的问题 [#311]

  • 修复加载远程服务器上的 spine 和 dragonbone 无法显示的问题 [#322]

  • 修复 Dragonbone 崩溃的问题 [#351]

  • 新增 ENABLE_NATIVE_TTF_RENDERER 宏用于控制是否使用原生渲染器进行 ttf 字体的渲染 [#7053]

  • 修复原生平台无法开启 mipmap 的问题 [#2689]

  • 修复原生平台聚光灯渲染错误的问题 [#2695]

  • 修复 async 函数中的异常不会打印的问题 [#328]

  • 修复 iOS VideoPlayer 跳转不准确的问题[#2531],感谢 goesByhc

  • 修复 VideoPlayer.play 在视频未加载完成时调用,不会播放的问题 [#329]

  • 修复调用 CallStaticObjectMethod 出现异常闪退的问题 [#2706]

  • 修复原生平台 cc.game.restart 报错的问题 [#347]

  • 修复原生平台 ttf 资源放远程服务器上加载失败的问题 [#7380]

Editor

  • 修复在编辑器中给对象添加 DontSave 私有标记时 undo 会报错的问题

  • 修复编辑器下 cc.resources.loadDir 返回值与运行时不一致的问题

  • 修复预览时加载 Asset Bundle 中所有资源报错的问题

  • 修复设置 Bundle 为合并所有 JSON 文件后,无法完全合并 JSON 文件的问题

  • 修复罕见的情况下场景或预制中的 RichText 数据如有问题时会导致编辑器崩溃的问题

  • 修复 timeline 面板弹出的时候,加载不到动画的问题

  • 修复在编辑器中修改 SphereCollider3D 的 center 值,gizmo 没有更新的问题。

  • 完善编辑器 UI

  • 修复预览构建后的项目,可能会出现加载失败的问题

  • 修复导出资源时没有导出依赖资源的问题

  • 修复插件中的 auto-atlas 无法构建的问题

  • 修复动画编辑器添加的帧事件参数为 boolean 类型数值为 false 的时候出现无效的问题

  • 修复没有勾选物理模块时,预览报错的问题 [#7075]

Mini Game

  • 修复小游戏在软键盘拉起状态下,切换输入框,导致输入状态混乱的问题 [#136]

  • 修复 loadRemote 无法加载临时目录中的图片的问题 [#155]

  • 修复微信上,XHR 无法设置 timeout 属性的问题 [#164]

  • 修复部分小游戏平台,音频播放失败的问题 [#7341]

Web

  • 修复火狐浏览器点击视频无法暂停播放的问题 [#7372]

  • 修复 iOS14 设备上帧率过低的问题 [#7415]

升级提示

Cocos Creator 对项目的升级操作是不可逆的,请在升级前提交或备份旧版项目。

绝大多数项目通常都能自动升级,但因为项目难免存在特殊性,开发者应该根据项目自身需求,提前对新版本引擎进行试用和评估。

此外,出于稳定性考虑,建议即将上线或已上线的项目谨慎升级。

以下是升级说明,如果开发者们在升级中遇到困难,欢迎向我们反馈,我们会尽力协助。

从 < 2.4.0 版本升级

  • cc.loader 已不建议使用,请使用最新的 cc.assetManager 来代替,请参考 [资源管理模块升级指南]

  • 子包功能已升级为 Asset Bundle,请参考 [资源分包升级指南]

  • 调整了项目构建后的目录结构,调整了 BuildResults 的 API,如果你使用了编辑器插件获取编辑器构建结果,请参考 [定制项目构建流程升级指南]

  • 从 1.10 开始废弃的 cc.RawAsset 已被正式移除,请使用 cc.Asset 代替。由于 2.4 不再兼容原有 1.x 项目中对 RawAsset 类型的历史遗留用法,建议所有要升级到 2.4 的项目特别是从 1.9 版本一路升级上来的项目,先在任意的 1.10 ~ 2.3 版本中对编辑器编译代码时输出的所有警告或报错都正确处理完毕,再升级到 2.4。

  • cc.Color.fromHex 已被废弃,请使用 cc.Color.fromHEX 接口

从 < 2.3.3 版本升级

  • Effect 中的 CCTexture2D,CCTexture2DRGB 方法已被废弃,请改用 CCTexture,CCTextureRGB

  • Vec3.FRONT 已被废弃,请改用 Vec3.FORWARD

从 < 2.3.0 版本升级

从 2.3.0 开始,定制安卓原生工程时,需注意 Android 与 Android Instant 使用了同一个构建模板。

  • 如果是 Android 平台单独使用的代码请放入 app/src 目录,  单独使用的第三方库请放入 app/libs 目录。

  • 如果是 Android Instant 单独使用的代码和第三方库请分别放入 game/src, game/libs 目录。

  • 如果是 Android 和 Android Instant 共用的代码和第三方库,请分别放入 proj.android-studio 根目录底下的  src 目录和 libs 目录。

  • proj.android-studio 根目录底下 jni/CocosAndroid.mk , jni/ CocosApplication.mk,主要用于配置引擎相关的配置,开发者的配置,建议 Android 放到 app/jni/Android.mk 和 app/jni/Application.mk中,Android Instant 请放入 game/jni/Android.mk 和 game/jni/Application.mk 中。

此外,在 Cocos Creator 编译 Android 时会默认执行  assembleRelease/Debug,编译 Android Instant 时会执行 instant:assembleRelease/Debug。

如自定义了音频前后台切换时的暂停逻辑,升级到 2.3.0 后请移除。

目前 Creator 游戏在所有平台上前后台互相切换时,都会在内部自动暂停和恢复音频。如果开发者之前有对这一块进行过定制,监听并执行了 cc.audioEngine.pause()/resume() 之类的音频操作,可能会和引擎默认行为冲突。如果有遇到相关的音频问题,只需移除相应的定制代码即可。

从 2.0 - 2.3.0 版本升级

从 2.3.0 开始,Canvas 组件不再负责将 Canvas 节点尺寸设为屏幕大小,此行为将结合 Widget 组件实现。为保证兼容性,2.0 项目升级后,Canvas 所在节点会自动添加 Widget 组件。(从 1.x 项目升级无此问题)

从 < 2.2.0 版本升级

从 2.2.0 开始,我们强化了内存管理机制,现在要求用户通过代码动态创建且独立于场景节点树的 cc.Node 必须通过 destroy() 释放,否则引擎无法知道何时回收这类节点的内存,会导致内存泄露。

  • 如原先手动从场景中移除的节点,在不需要用到的时候也需要统一 destroy():
// 假设 testNode 是场景中的某个节点,若之前被手动移出场景了,如
  • 如原先通过 cc.removeSelf 这个 action 销毁节点,请改为使用 cc.destroySelf。

  • 如原先通过 cc.NodePool 管理节点,则不受影响。

从 2.2.0 开始,我们不再建议你使用节点的 Skew 功能。

Skew 通常用作在 2D 引擎中模拟 3D 效果,随着 Cocos Creator 对 3D 节点的深入支持,Skew 效果已经完全可以由 3D 节点来实现。所以为了统一使用体验,进一步优化引擎底层实现,我们废弃了 Skew 属性。不过我们依旧会保留一段时间内的向下兼容,开发者可在旧项目中延续原有做法。后续我们将进一步完善兼容方式和升级案例,择机正式移除 Skew 功能。

从 < 2.0 版本升级

打开 1.x 项目的话,场景等所有资源将会自动升级,代码中的废弃接口从 2.3.3 开始将会在保持兼容的基础上同步输出报错。升级方式可参考 [1.10 资源升级指南] 和 **[2.0 升级文档] **进行调整。

以上就是本次更新的内容,欢迎大家戳“阅读原文”查看完整链接并下载更新,有任何意见或者建议,可以通过论坛等渠道向我们反馈哦!虽然大家心里可能只有一个念头:

👇

相关推荐

【实操篇】做爆款超休闲游戏的一些经验与教训!

表里有一个难度等级,我们指定一个难度等级的评判标准,比如,不用看广告过关的就是0星难度,看1次广告能过关的就是1星,最高我们是3星,然后内部我们把这些关卡体验进行难度评价。有了这些难度等级后,我们把表格数据,丢个AI,再给它设定一个难度曲线模型,比如螺旋上升曲线方程,这样,AI就可以给你生成一个关卡映射脚本,把映射好的,写回表格。经验4:当自己没有办法去买量验证的时候,应尽快的联系发行+合作,让他们先买起来,不要等时间,时间才是最宝贵的,有发行对接与搭配,能学习到外部的很多技巧。

voidinit的专栏 308

2026 AI大模型产业布局分析

一说到垂直领域的大模型,大家立刻会想到参数少,没有那么智能,但是能满足行业的需求的模型+机密的行业数据。目前AI主要是替代工具,并没有产生新的商业模式与生产力,除非免费使用AI的用户,能通过另外的商业模式变现回来,目前还没有看到。To B卖云服务给企业,相当于企业有一块"私有的机房+私有模型+私有数据",行业数据不会泄露的同时能获得专属大模型提供的服务,这里未来就是阿里云,腾讯云,百度云,华为云的阵地,他们获得各种推理大模型,然后部署,企业向他们购买服务,使用专属大模型的同时,构建自己的知识库等。

voidinit的专栏 322

【启发级】拆解与分类小游戏畅玩榜前100名的玩法模板,看下你手里有几个致富模板

今天(2026年5月8日)闲着无聊,我来把微信小游戏《畅玩榜》的所有游戏的玩法模板统计归纳一下,看看超休闲小游戏目前是哪些模板玩法在影响着我们的玩家。有两个或两个以上的同类游戏,我就把它称为"模板",只有一个游戏的类型,我称为"个例"。大家可以都玩一下,看看别人的创意与变种,看看这么多人做的题材为什么它火了,有哪些创新。羊了个羊+抓大鹅+救救我鸭+麻将消除模板。打螺丝 + 毛线 + 3D打螺丝毛线模板。拼图找茬+狙击找茬类游戏模板。躺平发育类塔防游戏模板。压力消除+三消类模板。消水果+物理阻挡模板。

voidinit的专栏 177

【收藏级】个人开发者如何使用AI解决美术问题实操经验分享(一)

我们与专业的美工,除了审美,美术设计以外,还缺的就是对各种基本美术工具的操作,比如ps等。让我们去学习PhotoShop的操作,显然也不现实,我的路径如下,把一些要切图的等一些美工的操作,都做成代码工具,用脚本来执行处理,代码工具的代码,用AI来完成。比如我专门有个文件夹是用Node.js来写的工具(建议大家用Node.js与Python,后期转MCP会更容易),这些工具完成特定的美术功能,比如,去掉周围多余的透明度,Gif转帧动画,图片缩放等,每个工具,我都做成了命令行,都能批量处理。

voidinit的专栏 436

【收藏级】小游戏如何安排工作计划能最快上线运营微信+抖音双平台

游戏名字一定不能有违规敏感字,避免做完软著后,微信通过了,抖音却过不了(在抖音里名字可能能创建小游戏后台,但未必审核通过,《废土摸金小队》在抖音创建小游戏的时候能通过,但是基础信息审核的时候无法通过,后来重新换名字做软著,浪费了时间还有两个品牌)。(6)微信的游戏名字创建的时候能过,表示就能通过,抖音的游戏名字要到基础信息审核通过后才能正式确定,所以会出现微信通过,抖音初步创建成功,可是当软著下来,到抖音提交基础信息审核时,抖音审核不过,所以游戏名字尽量不要有违规敏感字。

voidinit的专栏 462

AI实战:如何更好的使用AI开发游戏项目

这个过程AI就不是那么的擅长,所以需要你一步步的先搭建框架,再来指导AI主要的流程,分割出一个个的模块,一步步的把整个架子搭起来,最后再用AI将一个个功能区填充。比如你GameMgr里面有两种模式的玩法,AI分析出来以后,就会得到两种模式玩法的概念,这样你用这些"概念"去下提示词,就能更精准的操控AI,生成你要的代码。AI擅长开发工具脚本代码,有了AI,我们能出很多提升我们工作流效率的代码工具,以前为了节约工具开发时间的功能,而被迫手动处理的,现在都可以无限的交给AI写工具脚本来完成。

voidinit的专栏 570

个人开发者如何拉升产品运营数据

2: 皮肤,这个是最常用的通用手段,"奖励"是"每日登录"等模块的灵魂,玩家为什么会来挑战,因为有他想要的奖励,而奖励最常见的就是皮肤。拉升运营数据一般的指标有:人均用户时长,人均看广告的次数与看广告的动力,游戏的留存数据,社交裂变,产品矩阵。1:搭建产品矩阵,不再以单个的产品来看用户留存来看运营数据,而是通过多款产品来拉升用户的整体的运营数据。游戏上线后需要一波波的加一些内容上去,拉升爬坡产品数据,获得更好的运营结果,从而有机会获得更多的流量。这里列举的是通用的游戏模块,每个游戏都可以从,同时可重用。

voidinit的专栏 271

总结篇:新游戏如何调试买量模型与运营数据

一个个变量的调整,我们的调整顺序为:用户时长,用户次留,核心用户的时长,用户的pv,最后上“流氓广告”手段。例如游戏定位12~18岁的目标用户,就找对应的周边用户体验,拿反馈。加入,你一天买10W的量,可能5W是目标用户,5W为非目标用户,会导致整体的运营数据无法分析,波动很大。我们买到目标用户的判断为平均用户时长,所以我们只有在假定"产品匹配目标用户后用户平均时长>= 5+分钟"前提下去调整买量,当我们买回一批批量时,我们看用户平均时长是否达标,不达标继续调买量区间,价格,素材,广告计划,投放版位等。

voidinit的专栏 452

Unity转微信小游戏的版本迭代时的资源缓存过期的方案处理

老用户的"新代码+旧资源"加载的时候,会读取到旧资源的版本号,与服务器固定地址的最新版本号(干脆直接带到代码里的资源版本号,这样就不用部署服务器了)进行比对,如果不一样,就比较"最新的"与"老的"资源列表文件,删除掉md5不一致的资源文件,再进入游戏,这样老用户就能使用到 "新代码+新资源"。Unity+YooAssets关于新版本功能更新后,新用户使用的是"新代码+新资源",而老用户使用的却是"新代码+老资源",老用户使用的还是本地缓存的老资源,导致程序报错,无法正常启动。

voidinit的专栏 558

《废土摸金小队》2月8日~2月11日的运营总结与技巧分享

刚开始,我也是百思不得其解,我猜是买不到好的用户的量,然后打算错峰去买,同时我感觉系统会带你去那些没有人买的流量区去探索,所以我就排除掉一些不用的渠道,专注于朋友圈,视频号,小程序广告等,2月11日凌晨,我设置好日预算200,排除掉其它"垃圾渠道",把单价直接拉升到2块,高于大盘"射击类目"的平均值。我的操作手段有:提高出价,降低ROI,提高ROI,再次提高出价,限定年龄,排除49岁以上的,排除掉渠道"优量汇",换账号投放,使用AI智能投放等。到2月10日,我的问题仍然没有解决。其实目前的比例还挺好。

voidinit的专栏 729

Unity转3D微信小游戏从研发到上线发布踩坑记录与经验分享

对于H5来说,跑在微信上的小游戏没有这个问题,我们降帧到60FPS后,之前有问题的 1+ ace3也能流畅的运行,考虑到小游戏,而且小游戏的60FPS与120FPS没有差别,所以最后我们降帧到60FPS上线,手机apk的120FPS要比小游戏120FPS效果要强很多。裁剪的时候,一个个裁剪级别提升。某些情况下只能用同步加载的(比如UI界面的ICON,当你打开一个界面,要显示ICON,这就不适合异步加载,因为界面关闭后,还有icon没有加载完成,加载完成后会报错)我们被迫会要使用预加载+缓存Get的模式。

voidinit的专栏 782

Unity自动化美术资源校验工具(模型/材质规范检测)技术详解

csharp[CreateAssetMenu(fileName = "ValidationRule", menuName = "Tools/校验规则")]// 条件判断// 适用于的资源类型Model,Material,Texture,Animation,Prefab,AnyFileSize,Dimension,CountEqual,NotEqual,LessThan,Contains,EndsWith质量保障。

voidinit的专栏 1138

Unity基于GraphView的可视化关卡编辑器开发指南

csharp// 添加交互控制器// 缩放控制// 背景样式// 获取兼容的端口用于连接// 防止自连接// 防止同一节点连接// 输入只能连接输出// 类型必须匹配});// 创建房间节点// 创建敌人节点css/* 基础样式 */#关卡图 {/* 节点通用样式 */.node {/* 房间节点样式 *//* 敌人节点样式 */

voidinit的专栏 1283

分享一个好玩的:一次提示词让AI同时开发双引擎框架

既然是两个引擎的代码要同时生成,我就要把这两个引擎的框架代码做好规划,统一的放到一个文件夹下,让Cursor的工程关联到这个文件夹。在你的设计下,使用AI 写框架,具体代码不用自己写,能节约大家的时间,提升工作效率。对框架来说目录结构很重要,当用AI把大部分的框架的核心接口都生成出来后,我们进一步对目录结构做好规范,并同步设计思路给到AI,让它接下来的工作更"懂你",符合你的要求。AI 要用的好,需要人来给他指明一些方向,所以我们在使用AI写框架的时候,先给他指明一些基本的方向,目录结构就是很重要的一环。

voidinit的专栏 1188

试玩小游戏运营投放全流程详解

试玩基础库与小游戏基础库一样,API 会挂载在全局的 wx 对象上,但试玩里面能用的 wx 接口是不一样的,有些接口名虽然和小游戏的接口名一样,但定义上有细微差别,请仔细查看试玩的 API 文档。管理试玩内容在微信服务商平台完成,服务商管理员或服务商运营人员登录微信服务商平台后,点击【小游戏】->【试玩广告】->【去制作】即可进入试玩内容管理界面,管理该账号下的已有的试玩内容和创建新的试玩内容。当某个小游戏想要做试玩小游戏投放时,首先要开通小游戏的试玩能力,登录"MP后台",开通"试玩能力"。

voidinit的专栏 1394

AI游戏开发全自动编程课程体系(Cursor版,支持Unity/Cocos, Laya后续支持)

1: 基于AI工具+阅读《C#服务器+双客户端(Unity/Cocos)TurnKey》方案的架构与设计;基于《C#服务器+(Unity/Cocos)客户端Turnkey方案》全栈自动开发《好友对战五子棋》基于《C#服务器+(Unity/Cocos)客户端Turnkey方案》全栈自动开发《对战射击类游戏》基于《C#服务器+(Unity/Cocos)客户端Turnkey方案》全栈自动开发《捕鱼达人3D》基于《C#服务器+(Unity/Cocos)客户端Turnkey方案》全栈自动开发《割草类》

voidinit的专栏 1272

技术分享:游戏战场中如何处理角色死亡时各种姿势的“尸体“

Step2: 要模拟角色"死亡"后不同的骨骼摆放的位置,姿势各有不同,那么我们要给人形动画的每个关节带上一些物理刚体RigidBody+物理形状。(3)全部把"物理人形骨骼"开启以后,在脚下给"物理人形骨骼"一个"物理爆炸"的力。Step5: "物理爆炸"结束2秒后,再禁用"物理人形骨骼",这样角色就会躺在地面上,骨骼摆放为不同的姿势。运行的时候,正常情况下,"物理人形骨骼"都被禁用,不会对角色正常控制产生任何的影响。单独的针对"人形骨骼"的节点做一个独立的物理分组,不与其它的物理分组产生任何碰撞。

voidinit的专栏 831

搜打撤类技术分享:基于人形动画的上下半身分层状态控制

Move(下半身)+Idle(上半身)做为普通的Move状态,Move(下半身)+瞄准射击(上半身)做为带攻击的Move状态。支持Unity/Cocos双客户端,以“第三人称射击类”游戏为玩法主体,基于目前比较火的”搜“,”打“,”撤“的游戏结构,玩家通过战斗,收集装备,升级装备,获取宝物等可以战斗,可以撤退。ShootLayer: 播放角色的idle 或者 瞄准射击动画,把ShootLayer的人形动画,带一个动画Mask, 只作用上半身。(2):完整的第三人成射击类的”地图编辑器“的工具开发;

voidinit的专栏 638

给出一套方案:角色如何自由搭配枪械与武器

支持Unity/Cocos双客户端,以“第三人称射击类”游戏为玩法主体,基于目前比较火的”搜“,”打“,”撤“的游戏结构,玩家通过战斗,收集装备,升级装备,获取宝物等可以战斗,可以撤退。如果每种武器对于不同的模型,手臂的挂载点的位置不一样,我们可以在骨骼里面添加特殊的挂载点,来做到更好的匹配。分为"单手"模式与"双手模式",单手又分为"左手"与"右手",左手就绑定到左手的"锚点",右手就绑定到右手的"锚点"。step4: LateUpdate里面武器把自己的"锚点"与角色的"骨骼点"同步;

voidinit的专栏 748

关于“SUD全资收购Cocos“对开发者影响的一些看法

每次版本重大的升级,都会有很多的调侃,"这很Cocos",“这很王哲”。对于开发者而言,其实也没有必要过于的担心,如果下一阶段Cocos的引擎还可以满足企业的需求,那继续用就可以了,如果不能满足需求,换别的引擎即可,从一个引擎换到另外一个引擎,对于开发者的技术成本没有那么高,代码能力,设计思想,处理经验等,不会随着引擎的切换而改变。不同的工具,不同的生态,不同的做法,也会带来很多思路上的不同和思维上的碰撞,其实对开发者更多是好事。"变化"能给"一潭死水"的生活带来"意想不到"的变化。

voidinit的专栏 577

新课发布:《逃离鸭科夫》搜打撤类商业化方案

考虑射击游戏的题材,本游戏为3D游戏,不考虑2D模板。游戏的商业化渠道主要面向微信抖音小游戏,来做关卡和策划案,如果是手游或Steam,再做更复杂的场景+关卡。《肉鸽类》同一套数值,同时支持2D/3D类游戏,商业化方案已经完成,很多学员关心接下来是哪个方案。我们在找全免素材的过程中发现一套素材还不错,角色也是百搭,正好结合最近很火的《逃离鸭科夫》我们决定下一个课程方案为:第三人人称射击类游戏,核心玩法为鸭科夫的核心玩法”搜,打,撤“。(1):完整的第三人称射击类的"搜打撤"玩法的策划案,数值与成长体系;

voidinit的专栏 586

如何基于全免费素材,0美术成本开发游戏

最近我们肉鸽游戏原型方案开发完毕,接下来做商业化。遇到的第一个问题就是美术成本太贵。找了一些美术外包公司评估,报价都在15万以上。和之前的游戏美术成本评估有比较大的差距。IAA纯小游戏在没有验证的时候就投入"高成本"(相对于小游戏来说)无疑风险比较大。我们内部商议决定:"游戏商业化可以分为"数值商业化+美术精品化“。先快速试水与迭代,做好数值精品化。如果数据可以,再做美术精品化"。对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀观点1:免费素材3D比2D好,精品化2D比3D成本低

voidinit的专栏 1525

战斗系统核心设计:如何提供机制解决游戏项目中的成百上千的Buff

每一类Buff我们称为一个BuffModel, BuffModel实现了Buff的计算逻辑与策略,Buff框架根据BuffId的类型,找到匹配的BuffModel,再根据相关"属性"找到对应的处理函数,而BuffModel的编写留给具体的项目逻辑,我们只提供BuffModel的机制。比如复活以后,5秒的无敌状态,我们的实现逻辑为,计算伤害的时候,如果目标有"无敌Buff",那么我们就不计算伤害直接返回。-1,表示的是大类默认的,如果有特殊的小类,我们就可以注册这个属性的特殊的小类。有限状态机,行为决策树?

voidinit的专栏 1379

战斗系统架构:为什么游戏战斗适合ECS架构?

以此来代替传统复杂的继承体系。2: 游戏世界中的角色:玩家(主角,其它玩家角色,小兵队友等),敌人(近战小怪,远战小怪,精英怪,Boss怪等),道具(戒子,宝石,加速鞋等), 传送门,NPC(任务NPC, 商城兑换NPC等),游戏子弹等。8: 面对5种英雄,8种军团兵种,25种敌人怪物,37种道具,49种技能,32种局内升级,15级的局外天赋升级,我们是如何做好技能与Buff的架构?优势4: 组织结构更加的清晰规范,基于不同的迭代,分开代码文件,避免一个代码文件中,N个不相关的代码逻辑,也方便重构与替换。

voidinit的专栏 954

《商业化陪跑肉鸽项目》正式结束!

2: 本教程的详细目录如下:(注:框架使用我们商用框架,课程没有包含在内)(8): 战斗逻辑采用ECS架构,扁平独立的逻辑处理,替代继承体系;(5)适合微小,抖小的创业者,快速基于我们的工具构建自己的产品项目;(2): 8种暗影军团角色,包含远战与近战,局外天赋与局内升级;(1)熟练掌握商业化项目的框架设计,策划案,项目开发;第048节战斗范围的调试区域绘制与被攻击时的决策规则。第080节局外战斗Buff与局内升级Buff的初始化。(4): 16种技能,17种道具,59种Buff;

voidinit的专栏 501

游戏开发中的暂停的设计

如此一来,当游戏战斗世界要暂停的时候,只要针对"游戏管理"来暂停不迭代,从而导致游戏管理的update不再迭代其它的战斗单元的"Logic Update",这样导致整个的游戏世界+游戏战斗单元全部暂停。思考2: 游戏暂停,我们是针对战斗逻辑暂停,其它的部分可以不用暂停,这样开宝箱等动画需求时,都不会受到影响,我们只是暂停游戏的逻辑迭代+游戏角色的动画暂停,游戏世界中的粒子暂停。(一)针对游戏战斗世界暂停,游戏逻辑管理负责做好游戏战斗单元的暂停与恢复即可:暂停战斗单元迭代,暂停战斗单元动画,特效。

voidinit的专栏 933

团体战斗核心技术:如何防止团体进攻中角色堆叠在一起

比如A, B两个角色同向向右移动,当A,B发现彼此"堆叠"后,A迭代完移动,然后堆叠处理模块再把A往回迭代,这样A就不动,B正常移动,这样多次处理后,A与B保持安全距离了,则A继续移动。如:角色与怪物走进了自己的攻击区域,则发起攻击,不会继续前进,自然就通过攻击来将"异类"的堆叠避免,如果有必要,也可以把同类堆叠处理改成全类防堆叠处理。"堆叠模块"在每次迭代的最后的逻辑处理。如下图的代码接口,战斗迭代的时候,堆叠发生在寻路导航,AI处理,技能释放等迭代的最后,最后再调用堆叠模块"来"修正堆叠"现象。

voidinit的专栏 721

经典面试题:“你们的项目中是如何做红点系统的“?

面试官你好,红点是复杂游戏必备的提醒玩家与推进玩家游戏进程的工具与手段,在项目中非常常用。每个公司的项目的需求不同,设计的方式和结构可能不一样,我们公司之前的某个项目是这样做的。

voidinit的专栏 608

面试经典问题:如何设计红点系统?

游戏开发中,随着功能越来越复杂,我们会有一些重点的提示,需要让玩家每天都了解与清楚,比如新触发的任务,未领取的奖励,商城中的特惠活动,有未读的系统消息,有新的装备可以穿戴上,达成可以升级条件,升级相关的角色与装备等需求。而二级界面下面可能又有不同,比如任务,二级分类为"系统任务",“好友任务”,下面就有新的任务需要显示红点,一级分类"任务"有红点,同时二级分类"系统任务",“好友任务”也要有红点提示。红点数据,不同的界面层级,有不同的红点数据,比如,一级界面的红点可能显示的是,任务,邮件,商城,奖励等。

voidinit的专栏 1061

Unity面试技巧每日分享

某个类型的某个新上架的商品。1: 方便有红点需求的地方,调用一个接口就可以把红点展示出来,所以我们会提供一个显示红点的接口,只要调用,就能在特定的位置显示红点;而二级界面下面可能又有不同,比如奖励,下面就有未领取的奖励需要显示红点,而正式因为有未领取的奖励,所以一级界面"奖励"那里才有红点。3: 红点的显示有对应的层级,我们会把红点单独的放一个层级,这样避免红点来打乱界面的合批,同时能让红点在一起渲染。红点数据,不同的界面层级,有不同的红点数据,比如,一级界面的红点可能显示的是,任务,邮件,商城,奖励等。

voidinit的专栏 293
上一篇: Shader实现灰飞烟灭效果
下一篇: 大厂面试难,进不去?你要找的Unity的答案都在这儿了!
Clank的游戏栈
Clank的游戏栈 企业官方账号 企业官方账号
博客等级 码龄21年 2889粉丝 561原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值