找回密码
 立即注册
查看: 604|回复: 0

Unity面试常见问题

[复制链接]
发表于 2021-12-20 17:26 | 显示全部楼层 |阅读模式
Update Fixed Update Late Update有什么区别有什么运用?
Update每帧调用,大部分的角色行为都依赖于Update执行。
Fixed Update在固定时间间隔调用,一般用于刚体的运动。
Late Update 在所有物体的Update执行完之后执行,一般用于控制摄像机运动。

Prefab是什么?
Unity中的预制体相当于是一个游戏物体及其组件和属性的集合。也相当于一个新物体的模板。你在编辑器下修改的预制体能反映到每个你实际使用的预制体中。

AssetBundle有什么用?
AseetBundle是一些你选择导出的资源包,这些资源包中的内容已经被妥善压缩,并且允许你在应用中正常使用。这也方便开发者能以流的形式加载模型贴图音效或整个场景。AssetsBundlej就是用于简化下载流程的工具。

Resources和StreamingAssets文件夹有什么区别?
Unity的Resource文件夹中包括我们在游戏中需要用到的一些列资源,会在打包时打入UnityPlayer中,这些资源大多数没有必要在Inspector上直接附着于组件之上,任何一个在Resources的资源都可以通过Resources.Load函数来实时加载到游戏中使用
StreamingAssets文件夹中的东西不会随着Unity打包而压缩,他会正常放到文件系统中,这是为了帮助游戏运行时能通过文件访问形式访问这些资源,比如iOS设备中,就只能通过StreamingAssets来访问你需要在游戏中使用的视频资源。
什么是Batching以及Batching是如何作用的?
当需要绘制一个物体时,引擎会需要调用图形API(DirectX或者OpenGL)的DrawCall命令,而DrawCall命令。而DrawCall命令一般都是需要调用大量资源的。这样子就会对CPU端的运算造成压力,而主要CPU端的压力都是来自于渲染状态变换。Unity使用两种方式减少这些状态变换:
1. Dynamic Batching 对于小的网格,Unity会将他们一次性打包丢到GPU端来一次性绘制。
2. Static Batching 对于静态物体(不移动的物体),Unity会将他们打包成一个大型网格来一次性绘制。
两个网格碰撞体Mesh Collider 在什么情况下会产生互相碰撞?
当至少一个网格是凸多边形时才行,一般而言网格碰撞的计算将极其消耗资源。
一些附加的问题:
如何实现无缝游戏场景?
使用四叉树对所有场景进行切分,将每个四叉树的叶节点的资源打包到AssetBundle内,在打包之后要针对每个打包的资源查询重用资源。将共用同一父节点的重用资源作为子节点的资源依赖项。根据玩家在大场景中的位置,根据四叉树的结构加载周围资源。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-16 09:44 , Processed in 0.094223 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表