史上最全的Unity面试题(三). 下载本文

内容发布更新时间 : 2024/5/10 23:16:06星期一 下面是文章的全部内容请认真阅读。

二十一:物理更新一般放在哪个系统函数里?

FixedUpdate ,每固定帧绘制时执行一次,和 Update 不同的是 FixedUpdate 是渲染帧执行, 如果你的渲染效率低下的时候 FixedUpdate 调用次数就会跟着下降。 FixedUpdate 比较适用 于物理引擎的计算,因为是跟每帧渲染有关。 Update 就比较适合做控制。

二十二:在场景中放置多个 Camera 并同时处于活动状态会发生什么? 游戏界面可以看到很多摄像机的混合。

二十三:如何销毁一个 UnityEngine.Object 及其子类? 使用 Destroy(方法 ;

二十四:请描述为什么 Unity3d 中会发生在组件上出现数据丢失的情况 一般是组件上绑定的物体对象被删除了

二十五:LOD 是什么,优缺点是什么?

LOD(Level of detail多层次细节,是最常用的游戏优化技术。它按照模型的位置和重要程度 决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。 缺点是增加了内存。

二十六:MipMap 是什么,作用?

MipMapping :在三维计算机图形的贴图渲染中有常用的技术,为加快渲染进度和减少图像 锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为 MipMap 。

二十七:请描述 Interface 与抽象类之间的不同

抽象类表示该类中可能已经有一些方法的具体定义, 但接口就是公公只能定义各个方法的界 面 ,不能具体的实现代码在成员方法中。类是子类用来继承的,当父类

已经有实际功能的 方法时该方法在子类中可以不必实现, 直接引用父类的方法, 子类也可以重写该父类的方法。 实现接口的时候必须要实现接口中所有的方法,不能遗漏任何一个。

二十八:.Net 与 Mono 的关系?

mono 是 .net 的一个开源跨平台工具,就类似 java 虚拟机, java 本身不是跨平台语言,但运 行在虚拟机上就能够实现了跨平台。 .net 只能在 windows 下运行, mono 可以实现跨平台跑, 可以运行于 linux , Unix , Mac OS等。

二十九:简述 Unity3D 支持的作为脚本的语言的名称

Unity 的脚本语言基于 Mono 的 .Net 平台上运行, 可以使用 .NET 库, 这也为 XML 、 数据库、 正则表达式等问题提供了很好的解决方案。 Unity 里的脚本都会经过编译,他们的运行速度 也很快。这三种语言实际上的功能和运行速度是一样的,区别主要体现在语言特性上。 JavaScript 、 C#、 Boo

三十:U3D 中用于记录节点空间几何信息的组件名称,及其父类名称 Transform 父类是 Component

三十一:向量的点乘、叉乘以及归一化的意义?

1. 点乘描述了两个向量的相似程度,结果越大两向量越相似,还可表示投影 2. 叉乘得到的向量垂直于原来的两个向量 3. 标准化向量:用在只关系方向,不关心大小的时候

三十二:为何大家都在移动设备上寻求 U3D 原生 GUI 的替代方案 不美观, OnGUI 很耗费时间,效率不高,使用不方便

三十三:请简述如何在不同分辨率下保持 UI 的一致性

NGUI 很好的解决了这一点,屏幕分辨率的自适应性,原理就是计算出屏幕的宽高比跟原来 的预设的屏幕分辨率求出一个对比值,然后修改摄像机的 size 。 UGUI 通过锚点和中心点和 分辨率也解决这个问题

三十四:什么是 LightMap ?

LightMap:就是指在三维软件里实现打好光,然后渲染把场景各表面的光照输出到贴图上, 最后又通过引擎贴到场景上,这样就使物体有了光照的感觉。

三十五:Unity 和 cocos2d 的区别

1. Unity3D支持 C#、 javascript 等, cocos2d-x 支持 c++、 Html5、 Lua 等。 2. cocos2d 开源 并且免费

3. Unity3D支持 iOS 、 Android 、 Flash 、 Windows 、 Mac 、 Wii 等平台的游戏开发, cocos2d-x 支持 iOS 、 Android 、 WP 等。

三十六:C#和 C++的区别?

简单的说:C# 与 C++ 比较的话,最重要的特性就是 C# 是一种完全面向对象的语言,而 C++ 不是,另外 C# 是基于 IL 中间语言和 .NET Framework CLR 的,在可移植性,可维护性 和强壮性都比 C++ 有很大的改进。 C# 的设计目标是用来开发快速稳定可扩展的应用程序, 当然也可以通过 Interop 和 Pinvoke 完成一些底层操作。更详细的区别大家可以 参考这里

三十七:结构体和类有何区别?

结构体是一种值类型, 而类是引用类型。 (值类型、 引用类型是根据数据存储的角度来分的 就是值类型用于存储数据的值, 引用类型用于存储对实际数据的引用。 那么结构体就是当成 值来使用的,类则通过引用来对实际数据操作

三十八:ref 参数和 out 参数是什么?有什么区别?

ref 和 out 参数的效果一样,都是通过关键字找到定义在主函数里面的变量的内存地址,并 通过方法体内的语法改变它的大小。不同点就是输出参数必须对参数进行初始化。 ref 必须 初始化, out 参数必须在函数里赋值。 ref 参数是引用, out 参数为输出参数。

三十九:C#的委托是什么?有何用处?

委托类似于一种安全的指针引用, 在使用它时是当做类来看待而不是一个方法, 相当于对一 组方法的列表的引用。 用处:使用委托使程序员可以将方法引用封装在委托对象内。 然后可 以将该委托对象传递给可调用所引用方法的代码, 而不必在编译时知道将调用哪个方法。 与 C 或 C++中的函数指针不同,委托是面向对象,而且是类型安全的。

四十:C#中的排序方式有哪些?

选择排序,冒泡排序,快速排序,插入排序,希尔排序,归并排序