最全中级Unity面试题(引擎,渲染,Lua等)

这篇具有很好参考价值的文章主要介绍了最全中级Unity面试题(引擎,渲染,Lua等)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

打算年底找工作,所以趁着年前整理波面试题。下面是部分内容,更多内容可以通过底部关注我的公众号获取。

最全中级Unity面试题(引擎,渲染,Lua等)

1.UI的优化方案

记录最全面的ugui优化策略_bommy游戏的博客-CSDN博客

2.图集的压缩格式

最全中级Unity面试题(引擎,渲染,Lua等)

3.减少GC的方式

Unity优化之GC——合理优化Unity的GC - zblade - 博客园

Unity GC垃圾回收机制_小程小程,永不消沉-CSDN博客

4.动态批处理与静态批处理相关

关于静态批处理/动态批处理/GPU Instancing /SRP Batcher的详细剖析 - 知乎

Unity的静态批处理和动态批处理_Hello Mingo-CSDN博客_unity 批处理

最近面试遇到的静态合批合静态合批?简单整理一下; - 代王是我 - 博客园

5.内存泄漏原因,危害,解决方案

深入浅出再谈Unity内存泄漏 - 简书

6.资源加载优化分析,解决

Unity加载模块深度解析(纹理篇) - UWA Blog

关于Unity加载优化,你可能遇到这些问题 - UWA Blog

7.unity中的深浅拷贝

Unity对象的所有组件深拷贝与粘贴_cartzhang的专栏-CSDN博客

8.unity中碰撞检测机制

深入理解Unity的碰撞检测机制 - 简书

9.unity中常见性能问题,解决分析

Unity问答-性能调优_王利威的博客-CSDN博客

10.GC回收算法,原理

C#技术漫谈之垃圾回收机制(GC)(转) - nele - 博客园

11.一条射线,一个面,如何检测相交的点(射线检测原理)

12动态合批的条件是什么?会造成开销么?如果会,开销有哪些?

  • Dynamic Batching 是在物件小于300的条件下(不论物件是否为静态或动态),在使用相同材质球下,unity就会自动帮你合并成一个Batch送往GPU来处理。
  • unity在运行的时可以将一些物体进行合并,从而用一个绘制调用来渲染他们。这一操作我们称之为“批处理”。一般来说,unity批处理的物体越多,你就会得到越好的渲染性能。
  • 动态批处理操作是自动完成的,并不需要你进行额外的操作。
  • 批处理动态物体需要在每个顶点上进行一定的开销,所以动态批处理仅支持小于900顶点的网格物体。
  • 预设体的实例会自动地使用相同的网络模型和材质。

13.静态合批的原理是什么?会造成开销么?如果会,开销有哪些?

  • 静态批处理:游戏导出时,在player setting中勾选static batching,导出包的时候就进行批处理,导出来的包就会比较大。 在游戏场景中勾选场景的static选项,在加载场景时,会进行一次静态批处理合并,导出来的包不大,但加载时会使内存变大。
  • 场景中有4个物体,如果都勾选静态选项,在进行静态批处理的时候,引擎会判断这4个物体是否共用同一渲染材质。如果共用同一渲染材质,则会将这4个物体视为可批处理的对象,引擎会基于单个渲染对象的大小拷贝出3个,共变为4个人Mesh,这时4个Mesh会存在一个indexbuffer中,会让资源占用内存变大4倍,在渲染的时候,是将这个更大的mesh传递给GPU进行渲染操作的。
  • 如果CPU的运行速度较慢,则GPU会出现等待CPU的情况,此时哟咻主要受CPU的限制。 CPU在游戏中的主要作用是设置渲染状态和调用DC,如果每个物体的材质和贴图都不一样,CPU主要工作就是设置物体的渲染状态,调用DC也会更多,此时渲染状态的改变更消耗性能,游戏运行会变慢。所以,对于大量的不需要改变位置的物体,都会采用静态批处理的方式解决渲染状态的瓶颈。

14.Unity 协程和线程,进程的区别

  • 其实很简单,首先需要理解进程和线程是怎么一回事:进程是Windows系统中的一个基本概念,他包含着运行一个程序所需要的基本资源。一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程。
  • 进程和线程的区别通过以上,一目了然。
  • 再谈谈线程和协程的区别。一般应用一个应用程序只使用线程这一“资源”。
  • 需要明确,Unity只使用了一个线程,但是,我们需要”同时做很多事“,那Unity作为单线程,该如何去做,协程,就来了,协程是一种”伪线程“。 协同程序(coroutine).,即协作式程序,一系列互相依赖的协程间依次使用CPU,每次只有一个协程工作,而其他协成处于休眠状态。协程实际上是在一个线程中,只不过每个协程对CPU进行分时,协程可以访问和使用unity的所有方法和component。
  • 同一时间只能执行某个协程,协程适合对某个任务进行分时处理。
  • 控制代码在特定的时间执行。
  • 协程不是线程,也不是异步执行,跟Update一样,在主线程中执行。
  • 不用考虑同步和锁的问题。
  • 协程是一个分部组件,遇到条件(yield return)会挂起,直到条件满足才会被唤起执行后面的语句。

15.第一次执行GameObject.Instantiate的时候有明显卡顿,该怎么解决?

Instantiate的卡顿与三部分开销相关:相关资源加载、脚本组件的序列化和构造函数的执行,并且绝大部分原因均是相关资源加载导致。所以,我们的建议如下:
1、通过 Profiler 查看 Instantiate 具体的CPU分配情况;
2、如果是资源加载导致的性能瓶颈,则一方面通过简化资源来缓解CPU耗时压力,另一方面通过 AssetBundle 依赖关系打包将资源预先加载,即将此处 Instantiate 的总体耗时拆分,平摊到之前帧进行执行(比如切换场景处等),从而让 Instantiate 实例化操作的局部耗时更加平滑;
3、如果是脚本组件序列化导致的性能瓶颈,则可尝试减少脚本中的序列化信息;
4、如果是构造函数的执行导致的性能瓶颈,一般只能在策略上进行规避,比如降低 Instantiate 的调用频率等。

更多面试内容可以关注我的公众号,回复"面试"即可领取

另外公众号内还有很多关于独立游戏相关的内容~~~

 文章来源地址https://www.toymoban.com/news/detail-428433.html

到了这里,关于最全中级Unity面试题(引擎,渲染,Lua等)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java初中级面试题(SSM+Mysql+微服务(SpringCloud+Dubbo)+消息队列(RocketMQ)+缓存(Redis+MongoDB)+设计模式+搜索引擎(ES)+JVM

    目录 基础篇 一、Get 和 Post 的区别 二、Java 多态的具体体现 三、StringBuffer StringBuilder String 区别 四、==和 equals 区别 五、重写 equals 需要重写 hashCode 吗 六、java 的基本数据类型 七、List, Set, Collection, Collections   八、ArrayList 和 LinedList 区别 九、HashMap 和 Hashtable 区别 十、Forward

    2023年04月20日
    浏览(121)
  • 前端面试:【浏览器与渲染引擎】Web APIs - DOM、XHR、Fetch、Canvas

    嗨,亲爱的读者!当我们在浏览器中浏览网页时,我们常常会与各种Web API打交道。这些API允许我们与网页内容、服务器资源和图形进行交互。本文将深入探讨一些常见的Web API,包括DOM、XHR、Fetch和Canvas,以帮助你了解它们的用途和如何使用它们。 1. DOM(文档对象模型): 用

    2024年02月11日
    浏览(44)
  • 网络安全中级进阶试题

    中级选择题 什么是DDoS攻击的主要目标? A. 窃取敏感数据 B. 禁止用户访问目标系统 C. 恶意软件传播 D. 伪装身份进行欺诈 在网络安全中,\\\"端口扫描\\\"通常用于什么目的? A. 查找系统漏洞 B. 提高网络速度 C. 加密通信 D. 防火墙配置 什么是VPN的作用? A. 防止病毒传播 B. 提供匿名

    2024年01月24日
    浏览(33)
  • 哈希常见面试题(最全版本)

    面试官在关于哈希值的计算面试题中可能会问到以下问题: 什么是哈希值?哈希值有什么作用? 如何计算一个Java对象的哈希值?默认的hashCode()方法是如何实现的? 为什么在计算哈希值时,乘数通常选择31或37等质数?是否存在其他可用的乘数? 如果两个不同的对象的哈希值

    2023年04月24日
    浏览(71)
  • Flutter最全面试题大全

    在理解这些问题之前,建议看一下Flutter架构原理,如下链接: https://blog.csdn.net/wang_yong_hui_1234/article/details/130427887?spm=1001.2014.3001.5501 1.使用overflow属性 2.使用maxLines属性 3.使用Expanded或Flexible 4.使用ListView或SingleChildScrollView Widget是UI的声明式描述,它们通常是层次结构的顶部。

    2024年02月08日
    浏览(46)
  • SpringCloud最新最全面试题

    目录 一、简单说一说什么是微服务? 二、微服务有哪些优缺点? 三、微服务、分布式、集群的区别? 四、什么是Eureka? 五、Eureka有那两大组件? 六、actuator是什么? 七、Discovery是什么? 八、什么是Eureka的自我保护机制? 九、微服务有很多注册中心组件,说说你知道的有

    2024年02月12日
    浏览(49)
  • 史上最全网络安全面试题汇总

    最近有不少小伙伴跑来咨询: 想找网络安全工作,应该要怎么进行技术面试准备? 工作不到 2 年,想跳槽看下机会,有没有相关的面试题呢? 为了更好地帮助大家高薪就业,今天就给大家分享一份网络安全工程师面试题,希望它们能够帮助大家在面试中,少走一些弯路、更

    2024年02月07日
    浏览(52)
  • 史上最全网络安全面试题+答案

    1、什么是SQL注入攻击 前端代码未被解析被代入到数据库导致数据库报错 2、什么是XSS攻击 跨站脚本攻击 在网页中嵌入客户端恶意脚本,常用s语言,也会用其他脚本语言 属于客户端攻击,受害者是用户,网站管理员也属于用户,攻击者一般也是靠管理员身份作为跳板 3、什么

    2024年02月13日
    浏览(51)
  • 软件测试期末试题及答案(史上最全)

    软件缺陷是由很多方面造成的,以下哪个方面是造成软件缺陷的最多 的地方( A ) A. 规格说明书 B. 系统设计结果 C. 编写代码 D. 其他 覆盖准则最强的是( D ) A. 语句覆盖 B. 判定覆盖 C. 条件覆盖 D. 路径覆盖 实际的逻辑覆盖测试中,一般以(C )为主设计测试用例。 A. 条件

    2024年02月02日
    浏览(47)
  • 中级Python面试问题

    ✍ 作者简介: i阿极 ,CSDN 数据分析领域优质创作者, 专注于分享python数据分析领域知识。 ✍ 本文录入于《数据分析之道》 ,本专栏针对大学生、初级数据分析工程师精心打造,对python基础知识点逐一击破,不断学习,提升自我。 ✍ 订阅后,可以阅读《数据分析之道》中

    2024年01月15日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包