CocosCreator面试真题详解

AI摘要

本文列举了Cocos Creator面试真题并给出参考答案。涉及战斗系统设计,包括代码逻辑分层、数据管理等;还解答了项目中spine卡顿、百人同屏drawcall优化、场景切换、内存管理等问题,同时提及编码规范要点,为Cocos Creator开发者提供参考。

最近有位同学面试Cocos Creator,我们把面试时问道的真题列举出来,并配上参考答案。

问题1: 你们公司项目时如何做战斗系统的?

面试官你好,做战斗系统和架构的时候,我们一般把代码逻辑分成3层来设计,同时把数据独立出来,我们的项目设计如下,不同公司可能不一样,我们之前公司是这样做的:

1: 我们会把战斗中的功能,做成组件,比如,动画切换,伤害计算等; 我们叫做功能层;

2: 我们会把战斗单元做一个组件,比如Charactor, 然后让Charactor来has 功能组件,并在Charactor中提供标准的通用的策略,比如,行走,技能释放等; 同时不是的角色,我们会编写Player, Enemy等来继承自Charactor,并绑定对应角色的战斗数据,用战斗数据来驱动统一的逻辑;

3: 操作层:我们会把战斗中的操作独立出来,比如UI操作,网络事件,AI事件等,通过事件模块,来调用到战斗中的具体策略,这样,可以实现不同操作层来驱动战斗,调用战斗策略;

4: 战斗中的数据,我们一般都用excel表格来给策划填写,更具策划的游戏需求来制定好对应的数据格式。如果有必要,还可以做一些可视化工具(技能编辑器),来给策划使用,最后导出战斗数据。

5: 技能编辑器:可视化的制定技能的一些数据,比如buff时间,攻击时间,等具体要根据游戏需求来定;

对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀!

问题2: 项目中出现多个spine卡顿怎么办?

目前cocos creator 提供spine的动画组件,他有几种模式,性能最好的是预先Bake模式,就是把每个骨骼在某一帧的位置预先计算出来然后存起来,这样能提升性能。可以开启spine动画的合批模式,降低Drawcall,但是有限制,需要每个spine只有一种混合模式,一张贴图才能进行Drawcall合并。如果多个spine还是卡顿,那么就把spine换成帧动画,提升一些性能。

问题3: 百人同屏如何优化drawcall?

如果是2D游戏,只要保证角色的动画是同一个图集的帧动画(spine动画好像无法合批,待确认)就能最大限度地合批,同时把角色UI属性地相关内容,和原来的2D角色分开,把UI单独做,然后UI节点和角色节点做位置同步,这样,角色的动画就可以再一个图集合批,不会被自己的昵称,血条等打断合批。

如果是3D游戏,就要将3D动画的每个顶点的位置,Baker到一个纹理里面,然后使用GPU Instancing合批,来优化掉3D动画组件,从而合批,同样,UI等,都要单独独立开发,这样防止打乱合批。

问题4: 你们项目的场景切换是怎样做的?

目前主流的游戏开发中场景切换做法有3个,不同的公司可能不一样:

1:直接把场景做好,然后内容方场景里面,调用cocos API, 来直接加载与运行对应的场景;

2: 直接把场景做成场景资源,打入ab包中,来调用cocos API,从资源加载中加载场景,然后运行;

3: 直接只用一个场景,通过预制体来做相关的内容展示,不存在场景切换。

具体的选择,可以根据框架与项目来决定。比如,3D游戏中需要场景中做静态光照,我们就可以采用方法2,把场景看作是地图。比如简单的游戏就可以直接使用方法1 or方法3。

建议采用方法2, or 方法3。方法1最大的问题,是场景无法分ab包,全部都打入到main包里面,这样做分包的时候会有问题;

问题5: 动画的帧率是多少最为合适?

动画的帧率,要看,都可以,主要根据动画的类型来定,可以是15FPS, 30FPS, 60FPS.一般目前骨骼动画这些帧率都是控制在15~30FPS,有些可以是10FPS。具体要根据,帧率,资源大小等,做一个平衡,比如帧动画,帧过多,就会导致内存占用过大,帧过少,动画又不流畅。

问题6: Gpu Instance 怎么用的?

1: 要满足GPU instancing合批的条件,同一个材质,同一个shader,同一个mesh;

2: 渲染的时候,不能被别的物体打乱;

3: 在材质的地方勾选Gpu instancing选项,就可以实现Instancing 合批;

问题7: 你在游戏开发中是如何做内存管理得;

面试官你好,关于使用Cocos Creator开发做内存管理,可能需要注意得点,我是这样看的:

Cocos Creator开发游戏的内存占用主要是由以下部分组成,

1: 逻辑数据的内存占用,比如,节点,组件实例,字符串对象等;

2: 纹理,模型顶点等显存的内存占用;

3: 就是加载资源,场景切换过程中的一些中间状态的内存占用,比如,解码一个png的图片到内存,可能会要从资源里面把资源数据读到内存中再解码。

对于3的中间状态,最终会被引擎所释放,我们只要关注切换,加载时候的内存峰值,不要让内存峰值引发奔溃就可以了,如果内存峰值很高,这个时候,我们可以考虑

延后加载等。具体还要根据项目来定位。

对于2,我们一般是把不用的资源即时的给他释放掉,这个时候,我们做资源管理的时候,要尽量的把同一个功能场景的资源,打入一个ab包,这样,用的时候整个ab包都用,不用的时候都可以释放。

对于2,我们只要根据内存的峰值情况,再特定的时机,把不用的资源释放掉即可,如果我们的内存可以承受,那么可以不释放。

对于1, TypeScript/JavaScript 一般的都有垃圾回收的机制,我们一般不用考虑释放的问题,直接new 就可以了,但是也要避免大量的反复的new, 比如,在update里面不断地new 一个对象;

这种要尽量地避免。当我们地内存出现峰值地时候,可以主动地启动垃圾回收来进行回收处理。对于大量反复创建地节点,我们可以考虑使用缓存池来处理,这样避免直接像系统反复地new/free。

目前是我对Cocos Creator开发,关于内存要注意地点,可能有遗漏,具体项目还要根据实际情况具体分析。

问题8.你认为怎样的编码才算规范?

编码规范这个不同的项目,不同的公司可能要求不一样,我理解的规范的代码,大概从几个方面讲:

1: 用英文来做好命名,命名要能代表函数or变量or类的功能和作用,命名的习惯可以统一,比如

私有变量用_开头等;

2: 要注意权限,改私有的私有,改公有的公有;

3:命名规范的时候,可以和引擎做适当的一些区分;

4: 把逻辑流程的代码与具体功能代码来分开,流程代码负责流程,功能代码负责具体功能。

5: 写代码要符合项目的真实性,符合大家的习惯性认识,尽量少造概念等。

6:注释的一些要求,如果看具体项目和公司的团队成员的水平与协作来决定注释要写到什么程度

...

具体不同的项目规范不一样,还是可以提前规划好。

相关推荐

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

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

voidinit的专栏 308

2026 AI大模型产业布局分析

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

voidinit的专栏 322

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

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

voidinit的专栏 178

【收藏级】个人开发者如何使用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的专栏 783

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的专栏 1284

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

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

voidinit的专栏 1188

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

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

voidinit的专栏 1449

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的专栏 1273

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

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的专栏 749

关于“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
上一篇: Unity3D DOTS系列之Struct Change核心机制详解
下一篇: Unity Lua方向的面试真题详解
Clank的游戏栈
Clank的游戏栈 企业官方账号 企业官方账号
博客等级 码龄21年 2889粉丝 561原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值