您现在所在的位置:首页 >学员就业 > 就业宝典 > Unity3D工程师高频面试题,向着高薪进发

Unity3D工程师高频面试题,向着高薪进发

来源:奇酷教育 发表于:

  想要应聘一个高薪职位,第一关就是面试。那对于游戏开发的小伙伴来说,Unity3D游戏开发面试时要注意哪些问题呢?下面奇酷教育就总结了

  想要应聘一个高薪职位,第一关就是面试。那对于游戏开发的小伙伴来说,Unity3D游戏开发面试时要注意哪些问题呢?下面奇酷教育就总结了一些面试高频题目,相信可以为大家带来一些帮助。
请简述值类型与引用类型的区别
  答:区别:
  值类型存储在内存栈中,引用类型数据存储在内存堆中,而内存单元中存放的是堆中存放的地址。
  值类型存取快,引用类型存取慢。
  值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针和引用。
  栈的内存是自动释放的,堆内存是.NET中会由GC来自动释放。
  值类型继承自System.ValueType,引用类型继承自System.Object。
  C#中所有引用类型的基类是什么
  答:引用类型的基类是System.Object 值类型的基类是System.ValueType,同时,值类型也隐式继承自
请简述ArrayList和List的主要区别
  答:ArrayList存在不安全类型,(ArrayList会把所有插入其中的数据都当做Object来处理)装箱拆箱的操作(费时),List是接口,ArrayList是一个实现了该接口的类,可以被实例化。
请简述GC(垃圾回收)产生的原因,并描述如何避免?
  答:GC回收堆上的内存,避免:
  )减少new产生对象的次数
  )使用公用的对象(静态成员)
  )将String换为
请描述Interface与抽象类之间的不同
  答:抽象类表示该类中可能已经有一些方法的具体定义,但接口就是只能定义各个方法的界面 ,不能具体的实现代码在成员方法中。
  类是子类用来继承的,当父类已经有实际功能的方法时该方法在子类中可以不必实现,直接引用父类的方法,子类也可以重写该父类的方法。
  实现接口的时候必须要实现接口中所有的方法,不能遗漏任何一个。
下列代码在运行中会产生几个临时对象?
  答:其实在C#中第一行是会出错的(Java中倒是可行)。应该这样初始化:
下列代码在运行中会发生什么问题?如何避免?
  答:会产生运行时错误,因为foreach是只读的。不能一边遍历一边修改。
请简述关键字Sealed用在类声明和函数声明时的作用
  答:类声明时可防止其他类继承此类,在方法中声明则可防止派生类重写此方法。
请简述private,public,protected,internal的区别
  答:
  对任何类和成员都公开,无限制访问
  仅对该类公开
  对该类和其派生类公开
  只能在包含该类的程序集中访问该类
简述unity3d支持的作为脚本的语言的名称
  答:Unity的脚本语言基于Mono的.Net平台上运行,可以使用.NET库,这也为XML、数据库、正则表达式等问题提供了很好的解决方案。
  里的脚本都会经过编译,他们的运行速度也很快。这三种语言实际上的功能和运行速度是一样的,区别主要体现在语言特性上。
  和网页中常用的JavaScript不一样,它编译后的运行速度很快,语法方面也会有不少区别。
  类似于Java编程语言的变异型语言;
  可以看做是Python语言的变种,又糅合了Ruby和C#的特性,它是静态类型语言
Unity3D是否支持写成多线程程序?如果支持的话需要注意什么?
  答:
  仅能从主线程中访问Unity3D的组件,对象和Unity3D系统调用支持;如果同时你要处理很多事情或者与Unity的对象互动小可以用thread,否则使用coroutine。
  注意:C#中有lock这个关键字,以确保只有一个线程可以在特定时间内访问特定的对象
U3D中用于记录节点空间几何信息的组件名称,及其父类名称
  答:Transform 父类是
矩阵相乘的意义及注意点
  答:用于表示线性变换:旋转、缩放、投影、平移、仿射注意矩阵的蠕变:误差的积累
为何大家都在移动设备上寻求U3D原生GUI的替代方案
  答:不美观,OnGUI很耗费时间,使用不方便
为什么Unity3D中会发生在组件上出现数据丢失的情况?
  答:组件上绑定的对象被删除了