快手游戏客户端一面凉经

直接上内容:

观察者模式:问到为什么要用。(寄)
mvc:详细。(寄)
析构函数为什么要是虚函数。(勉勉强强)
一个gameobject挂载两个相同单例:会调用先addcomponent(寄)
drallcall。底层原理
堆和栈。回答C#给说反了,说成堆系统回收,栈调用gc了。(抽我自己两嘴巴)
智能指针。(八股)
dynamic_cast和static_cast,然后给个例子(八股都背不好,抽自己两下)
unity生命周期(ondestory不知道)
动态合批和静态合批(底层原理,其实我练区别都不知道)



其他的不记得了,面试官很好,应该是个老手。
问抓简历问,奈何项目垃圾。

还有看了101games和unity入门精要,面试官说学的太跳了,应该先看OpenGL底层API之类的看起(games101偏原理)shader后面再学。
太紧张了,太菜了。
已经不抱任何希望了。
悄悄说一句(面试官说我基本达到了初级入门的一个程度)我不知道是好是坏。
面试官说C#和C++那个用的多,问那个。我应该用C#的

😢#面试复盘##Unity Technologies#
全部评论

相关推荐

1. 在网络游戏中,你是如何实现网络对战的?具体使用了哪种网络协议?能否详细说明一下你的实现方式?2. 你是否有在大学课程中学过TCP和HTTP网络连接的知识?能否举例说明这些协议在实际项目中的应用?3. 在你的游戏项目中,你使用的是帧同步还是状态同步?这两种同步方式有什么区别和优缺点?4. 你是如何实现游戏的实时同步的?能否详细说明一下同步的间隔和帧同步的具体实现方法?5. 你对帧同步和状态同步这两种同步方式有什么理解?能否详细解释一下它们的原理和应用场景?6. 你是否有学习过UDP和TCP协议的底层通信逻辑?能否详细说明一下这两种协议的通信机制?7. 在你的游戏项目中,服务端是自己编写的还是选择的现成方案?能否详细说明一下服务端的实现过程?8. 你使用什么语言和架构来实现服务端?能否详细说明一下服务端的设计和实现细节?9. 你使用的是哪个版本的Lua?你对Unity引擎的了解程度如何?能否详细说明一下你的使用经验和心得?10. 你对Unity资源机制和AB包文件结构的了解程度如何?能否详细说明一下Unity的资源管理和优化方法?11. 在你的游戏项目中,你是如何设计和实现网络通信的?能否详细说明一下你的设计思路和实现方法?12. 你是否有学习过计算机网络相关的知识?能否举例说明一下这些知识在游戏开发中的应用?13. 在你的游戏项目中,你是如何实现服务端和客户端之间的数据同步的?能否详细说明一下同步机制和优化方法?14. 你对Unity引擎中的资源加载和优化有什么了解?能否详细说明一下Unity的资源管理机制和优化技巧?15. 在你的游戏项目中,你是如何实现多人在线对战的?能否详细说明一下你的实现方案和遇到的挑战?
查看15道真题和解析
点赞 评论 收藏
分享
1. Unity中`Update`、`FixedUpdate`、`LateUpdate`区别?实际开发中,比如处理角色移动和物理碰撞,你会分别把逻辑放在哪个函数里?能结合实习项目举例说明吗?2. 你提到用值类型减少GC以优化性能,那在“模拟农场”demo中,具体哪些数据被你封装成了值类型?这么做后,性能(如帧率)有哪些具体提升?3. 设计射击游戏网络同步时,你提到同步玩家状态和位置,但子弹运动是实时的,仅同步状态可能导致其他客户端子弹位置“跳变”。除了状态同步,有没有考虑过用“插值”或“预测”技术优化同步效果?4. 你在实习中接触过ET框架,了解它的核心架构(如Actor模型、消息机制)吗?在基于ET框架开发UI模块时,你是如何处理模块间通信的?比如技能面板和背包面板的数据交互。5. 你说对象池用于频繁创建的对象,那在实现对象池时,你是如何处理“对象回收时的状态重置”?比如子弹对象回收后,是否会清除它的碰撞状态、速度等参数,避免下次复用出错?6. 学习图形学渲染流程后,你有没有尝试在Unity中自定义Shader?比如为“模拟农场”的作物添加动态光照效果,具体是怎么实现的?7. 你提到DoTween通过扩展方法实现功能,那你自己有没有封装过Unity组件的扩展方法?比如给`Transform`加一个“平滑移动到目标位置”的扩展方法,核心逻辑是什么?8. 关于公司的Roblox引擎学习期,你之前用的是Unity,两者在开发逻辑(如场景管理、脚本编写)上有差异,你打算通过什么方式快速掌握Roblox Studio的开发技巧?9. 你在实习中主发现问题后,是先和美术确认资源正确性,还是先和策划确认需求?整个沟通和解决流程是怎样的?10. 你提到期末兼顾考试和找实习时会做时间管理,具体是怎么分配时间的?比如每天花多久刷算法、多久学Unity技术、多久复习课程,这种时间管理方法对入职后的工作有帮助吗?
查看10道真题和解析
点赞 评论 收藏
分享
后端开发实习生 - 技术一面(oc已拒)面试问题速览1. 自我介绍一下。2. 大学课程和专业背景是什么?3. 为什么在学习了C++之后,选择Java和Python作为主攻方向?4. 你的学习方法是怎样的?如何保证学习的系统性?5. 具体谈谈你是如何学习Java的?6. 详细介绍一下你的AI Agent项目,它是如何实现的?7. 你使用的Spring AI框架和常见的开源基座有什么区别?8. 你的知识库是如何构建的?为什么选择自定义数据处理流程?9. 如果需要开发一个能扮演特定游戏角色的定制化Agent,你会如何设计?10. 在这个定制化Agent项目中,数据的重要性如何?如何获取和处理这些数据?11. Docker和K8s有什么区别?12. 微服务架构和单体架构的区别与优势是什么?13. 如何设计一个高并发系统的架构?14. 常见的负载均衡算法有哪些?15. Java中遇到死锁该如何分析和解决?16. 如何处理前端的跨域问题?17. MySQL查询性能如何优化?18. 你对前端技术了解多少?我的回答策略与核心亮点针对问题:开场自我介绍,展示个人技术全貌回答策略/框架:我采用了“技术栈 → 项目经验 → 学习理念 → 全栈能力”的结构化叙述方式,旨在快速建立一个技术扎实、有实践、爱钻研的立体形象。核心案例与亮点:项目经验具体化:通过“库存管理系统”引出性能优化能力(ES提升检索、RocketMQ削峰、Redis缓存热点)。突出前沿技术:通过“智慧农业项目”展示AI应用开发能力(Spring AI, RAG问答引擎),并用“大创国家级”奖项来量化成果。展现学习深度:主动提及学习MIT课程并实现Raft算法,强调自己对底层原理的追求和强大的自驱力。针对问题:考察学习能力、技术视野和决策逻辑回答策略/框架:我提出了一个“实践驱动”的学习模型:“先概览框架 → 快速上手实战 → 深入底层查漏补缺”。对于技术选型问题,我从“场景适用性”(如C++底层 vs. Java业务)和“技术趋势”(如Python for AI)两个维度进行阐述,展示了我的决策逻辑。核心案例与亮点:这个回答的亮点不在于某个具体案例,而在于其方法论本身。它向面试官清晰地传递了我的核心优势:拥有高效、系统化的自学能力,能够快速掌握并应用新技术,同时具备清晰的技术判断力。针对问题:深入考察AI应用项目的技术实现细节和原理理解回答策略/框架:我采用了“What-How-Why”的解释框架。What:这是一个基于Spring AI的RAG Agent。How:通过添加外部知识库、使用Redis持久化对话记忆等方式实现。Why:着重解释了为何自定义数据处理流程(PDF转Markdown、语义分块、向量化),而不是直接使用框架自带功能。核心案例与亮点:本环节最大的亮点在于对“PDF按页切分会破坏语义完整性,从而影响检索精度”这一细节的深入分析。这不仅展示了我对RAG原理的深刻理解,更体现了我在工程实践中追求细节、主动优化、解决问题的能力。此外,在回答定制化Agent问题时,我提出了从提示工程 → RAG → 模型微调 (LoRA) 的分层解决方案,展现了全面的技术视野和对成本效益的考量。针对问题:考察后端核心架构与概念(分布式、高并发、数据库等)回答策略/框架:对于架构设计类问题(如高并发),我采用“多维度拆解法”,从多级缓存、熔断机制、高可用架构(主从/集群)等多个角度系统性地展开。对于概念类问题(如死锁),我采用“原理+解决方案”的模式,先清晰阐述其形成的四个必要条件,再讲解如何通过破坏其中条件来解决。核心案例与亮点:回答的系统性和深度是关键。例如,在谈论负载均衡时,不仅能罗列出轮询、哈希等算法,还能进一步分析“最少连接/空闲实例算法”相比于简单轮询的优势,这体现了对技术背后原理的深入思考,而非简单背诵。针对问题:考察技术广度和知识边界(前端/容器)回答策略/框架:对于熟悉的部分(前端跨域),同样采用“原理+解决方案”模式,并提供了前端(反向代理)和后端(CORS配置)两种维度的解法,展示了全栈视野。对于不熟悉的部分(K8s),采取“诚实承认+阐述已知基础”的策略,先表明自己主要使用Docker Compose,然后从理论层面尽力对比二者。核心案例与亮点:对跨域问题的双端解决方案是加分项。同时,坦诚自己对K8s实践经验不足,并尝试进行理论分析,展现了诚实和积极思考的态度。这也提醒大家,面试中遇到知识盲区,诚实是最好的策略,如果能补充一些理论理解会更好。
查看18道真题和解析
点赞 评论 收藏
分享
评论
8
30
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务