找回密码
 立即注册
查看: 736|回复: 17

U3D 技术面试题【长期维护】【答案在末尾】

[复制链接]
发表于 2021-11-18 22:07 | 显示全部楼层 |阅读模式
前言:面试前的复习很重要很重要,尤其是对应届生和工作经验1~3年左右的程序员来说,笔试题在正规的大公司都是跑不掉的,而对于3年以上的程序复习一下,也可以在面试过程中加分。本套面试题来于我自己的总结,如果你有更好更经典的面试题,欢迎点赞关注,并在评论区留言,我看到后会整理到这篇文章里面。长期保持更新。如果有兴趣尝试自己做一下面试题,并写下答案,最后在文章末尾的答案进行对比,来检查自己是否能得满分。 U3D技术面试一般分为C#语法基础和Unity3D引擎知识。
A: C#语法基础
1.一个初始化语句,enum monthes{January,February = 3,March = 5,April = 7,May,June},则此时May的值为( )
A.4    B.5   C.8    D.9

2.( )关键字可以用来访问当前对象的基类对象
A.object B.this  C.as  D.base

3.一下数据结构属于线程安全的是( )
A.List B.ConcurrentQueue  C.Dictionary   D.Stack

4. void Test(ref int A, int[] B) { A++; B[0]++; }
   void OutPut(){
        int A = 100;
        int[] B = new int[]{100};
        Test(ref A,B);
        Debug.Log(A +"," + B[0]);
    }
    输出的结果是( )
A.100,100   B.100,101  C.101,100  D.101,101

5.定义:List<int> list = new List<int>() { 1, 5, 6, 7, 8, 9 };下列lambda表达式写法错误的是( )
A.list.FindAll(a => a > 5);
B.list.FindAll(int a => a > 5);
C.list.FindAll((int a) => a > 5);
D.list.FindAll((int a) => { return a > 5; });

6.下列工具中不能进行C#动态库反编译的是( )
A.Visual Studio 2017  B. .Net Reflector C. ILSpy  D.dnSpy

7.下列不属于C#关键字的是( )
A.dynamic  B.await  C.yield  D.delete

8.下面关于匿名函数说法错误的是 ( )
A.Lambda表达式其实就是匿名函数的方式
B.匿名函数是一种语法糖,由编译器在编译的时候生成函数名
C.匿名函数其实是一个静态函数
D.匿名函数里面可以访问函数外的局部变量

9.下面关于 Attribute 说法在错误的是( )
A.Attribute中的信息,可以通过反射方式去取到
B.Attribute是跟随对象的,每一个类对象都会存储一份Attribute信息
C.Attribute是一种语法糖,可以方便的对类,成员函数,成员变量进行修饰,和描述
D.Attribute在编译的过程中会被打包到程序集里

10.下面有关反射描述错误的是( )
A.反射只能反射类的信息,而不能反射拿到结构体的信息
B.通过反射可以拿到对象的类型名,方法名,变量名等信息
C.反射经常用于对象序列化,反序列化,框架中的映射分发
D.可以用反射的方式加载动态库,并调用动态库里面的方法B:Unity引擎知识(选择题)
1.UI摄像机的Clear Flags 选择为( )
A.SkyBox B.Solid Color C.Depth Only D.Don`t Clear

2.下列说法对Unity中协程描述正确的是
A.协程就是开启了一个线程,来进行异步操作
B.协程一直在主线程运行,并未开启多线程
C.协程是一种底层中断技术,通过中断代码来暂停代码运行,等待时间达到后再恢复运行的一种技术
D.协程可以做到跟Update一样每帧执行,所以协程启动不会有gc开销

3.下列技术中不能用于寻路的是( )
A.NavMesh  B.Simple Path  C.A星  D.ROV

4.一个Unity三维模型里面不包含的数据( )
A.顶点  B.法线  C.UV  D.Shader

5.下面有关图集描述错误的是( )
A.图集是将多张图片放进一张大图
B.图集利用得好能够提高加载效率
C.图集应该尽可能包含最多的图片
D.图集可能会导致内存存在浪费

6.粒子特效在UI上显示,下列说法不正确的是( )
A.当特效与UI渲染层级相同的时候,可以通过修改UI的Z 来调整特效的显示层级
B.特效与UI可以使用同一个相机进行渲染
C.特效可以修改SortingLayer和Order in Layer来改变和UI的相对渲染层级
D.特效放在UI下时可以接受Mask裁剪

7.下面关于动画系统描述错误的是( )
A.Unity支持骨骼动画和IK动画
B.Animator是管理动画播放的状态机
C.在Animator中可以设定两个动画切换时如何融合
D.AnimationClip只能通过FBX类的动画文件转化生成

8.下面有关Dotween描述错误的是( )
A.Dotween是一个程序动画插件,可以在用来播放简单的旋转,位移,缩放动画。
B.Dotween和Animation都可以实现动画,所以是可以相互替代的。
C.DoTween大多函数都以Do开头,比如DoScale,DoMoveX,DoFade之类的
D.DoTween使用了大量的静态扩展类,使用Unity很多已有对像关可以像调用成员函数一样调Dotween的方法

9.下面哪种光源不是Unity的光源类型( )
A.Environment Light B.Directional Light  C.Point Light  D.Area Light

10.下列函数中不是用于平滑计算的是( )
A.Vector3.Lerp B.Vector3.SlerpUnclamped  C.Vector3.SmoothDamp D.Vector3.Normalize

11.已知两个向量A,B.求两个向量夹角的过程中,不太可能使用到的函数是( )
A.Mathf.Acos  B.Mathf.Atan2  C.Vector3.Angle  D.Mathf.Sin

12.下面协议中不属于通信协议的是( )
A.TCP   B.UDP   C.RPC  D.HTTP

13.下面组件中能用于打包后画线的是( )
A.LineRenderer  B.Gizmos.DrawLine  C.Debug.DrawLine  D.Handles.DrawLine

14.下面有关事件的描述错误的是( )
A.事件其实就是一个委托
B.事件支持变长参数
C.事件调用的时候,如果内部有一个回调异常,后面得回调将无法继续
D.事件支持模板参数

15.下列技术属于文本序列化的是( )
A.MsgPack B.Json  C.Protobuffer D.Bson

16.下面有关Update描述错误的是( )
A.Update在每帧被调用,每次调用事件间隔受多方面因数影响
B.FixUpdate固定帧率,通常应用于物理计算
C.LateUpdate晚于Update执行
D.FixUpdate中每次取到的Time.delaTime都是一样的

17.下面有关编辑器脚本描述错误的是( )
A.编辑器脚本不允许调用非编辑器脚本的函数功能
B.编辑器脚本如果存放在非Editor目录下,需要通过UNITY_EDITOR宏来区分编译
C.编辑器脚本可以扩张Unity的功能,菜单,甚至编译流程
D.通常编辑器脚本都存放在Editor目录下

18.Unity不支持的图形API( )
A.Direct3D 12  B.OpenGLES1  C.Metal  D.Vukan

19.下列技术不属于热更相关的是( )
A.ILRuntime B.ToLua  C.XLua  D.IL2cpp

20.下面路径API中不属于Unity的特有路径的是( )
A.Application.projectPath  B.Application.dataPath
C.Application.streamingAssetsPath D.persistentDataPath

21.下列图片压缩算法中,Unity不支持的是( )
A.PVRTC   B.DXT3  B.RGBA  D.ETC

22.一下图片格式中,Unity不支持得到是( )
A.PNG  B.JPG  C.GIF  D.TGA

23.下面类型中,Shader不支持的是( )
A.float  B.half  C. fixed  D.long

24.下列函数中不属于Unity Shader默认定义的函数是( )
A.vert  B.frag  C.surf  D.main

25.下面有关烘焙的描述错误的是( )
A.烘焙的本质其实是用内存换CPU
B.烘焙更多应用于静态的物体或者对象。对于不会变更的事物的处理
C.场景烘焙后的阴影依然可以随着平行光光源的角度变化而变化
D.遮挡剔除的烘焙可以让相机对于不需要渲区域进行剔除渲染,来提高渲染性能C: Unity引擎知识(问答题)
1.如何优化内存,CPU,GPU开销

2.MonoBehavior生命周期函数,这些函数是是否属于MonoBehavior的父类虚函数?

3.Crash异常崩溃后如何快速定位

4.热更新技术ToLua,XLua,ILRuntime的区别与技术选型

5.协同程序实现原理

6.各类烘焙(光照贴图烘焙,遮挡剔除烘焙,NavMesh烘焙)的原理与用法

7.堆栈在内存中的存放顺序,说明堆栈的区别

8.Xml,Json,Protobuffer等序列化的区别。如何选型

9.解释ECS的概念和思想,如何应用,又用在何处

10.帧同步与状态同步的区别与优缺点,什么类型的游戏应该选项什么样的同步方式?答案
A: 1.C   2.D  3.B  4.D  5.B  6.A  7.D  8.C  9.B  10.A
B:1.C   2.B  3.D  4.D  5.C  6.D  7.D  8.B  9.A  10.D
   11.D  12.C 13.A 14.B 15.B 16.D 17.A 18.B 19.D  20.A
   21.B  22.C 23.D 24.D 25.C

C:答案较长,静待下次更新补充。
发表于 2021-11-18 22:16 | 显示全部楼层
c#只答对八道,不敢去面试了。
发表于 2021-11-18 22:17 | 显示全部楼层
8道题已经及格啦[捂脸][捂脸]
发表于 2021-11-18 22:25 | 显示全部楼层
天天用uniry,看到这些题我也懵[思考]
发表于 2021-11-18 22:26 | 显示全部楼层
只需理解一次,基本上很久都不会忘记~面试多了,就变得熟练了
发表于 2021-11-18 22:31 | 显示全部楼层
unity第6题的题面有一点问题,因这这几个都不是使粒子特效在ui上显示的方法,可能改成这样好一点:当粒子特效在ui上显示时,下面的说法不正确的是()?
发表于 2021-11-18 22:37 | 显示全部楼层
问答题里,gameobject的生命周期函数那个.....实在是有点让人容易觉得是在问monobehaviour的生命周期函数[捂脸]
发表于 2021-11-18 22:41 | 显示全部楼层
你看得真仔细,[思考]马上就改
发表于 2021-11-18 22:41 | 显示全部楼层
正好昨天去面试,就随便找了一圈面试题做一做,在查漏补缺方面面试题还是很有用的。
发表于 2021-11-18 22:44 | 显示全部楼层
第一个认真看面试题的大佬[捂嘴][捂嘴]
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-25 12:33 , Processed in 0.070721 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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