Unity客户端开发面试题记录

Unity客户端开发面试题记录

1.如何理解面向对象思想
A:面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节。面向对象的特征是:封装,继承,多态。多态就是接口的多种不同的实现方式。

2.默认构造方法可以重写吗
A:不能。

3.Sealed在声明类和函数方法时代表什么
A:在类声明中使用sealed可防止其它类继承此类;在方法声明中使用sealed修饰符可防止扩充类重写此方法。

4.什么是装箱和拆箱
A:
在这里插入图片描述

5.ref参数和out参数是什么,有什么区别
A:ref
在这里插入图片描述
在这里插入图片描述
out
在这里插入图片描述
在这里插入图片描述
ref和out都是通过关键字找到定义在主函数里面的变量的内存地址,并通过方法体内的语法改变它的大小。
ref将参数的参数值和引用都传入方法中,所以ref的参数的初始化必须在方法外部,否则程序报错,ref参数是引用。
out不会将参数的参数值传入方法中,只会将参数的引用传入方法中,所以out的参数的初始化必须在方法中进行,否则报错,out参数为输出参数。

6.请简述private,public,protected,internal的区别
A:
public:对任何类和成员都公开,无限制访问
private:仅对该类公开
protected:对该类和其派生类公开
internal:只能在包含该类的程序集中访问该类

7.物理更新一般放在哪个系统函数里
A:FixedUpdate,每固定帧绘制时执行一次,和Update不同的是FixedUpdate是渲染帧执行,FixedUpdate比较适用于物理引擎的计算。

8.结构体和类有何区别
A:结构体是一种值类型,而类是引用类型。

9.移动相机动作在哪个函数里,为什么在这个函数里
A:在LateUpdate,是在所有的update结束后才调用,比较适合用于命令脚本的执行。

10.如下函数方法最后输出结果是什么
在这里插入图片描述
A:运行顺序为1,3,4,5,6,无论try或者catch是否return,finally必然执行,输出为3。

11.override和overload的区别
A:
override表示重写,用于继承类对基类中虚成员的实现
overload表示重载,用于同一个类中同名方法不同参数(包括类型不同或个数不同)的实现

12.如何优化内存
A:
1.压缩自带类库
2.将暂时不用的以后还需要使用的物体隐藏起来而不是直接Destroy掉
3.释放AssetBundle占用的资源
4.降低模型的片面数,降低模型的骨骼数量,降低贴图的大小
5.使用光照贴图,使用多层次细节(LOD),使用着色器(Shader),使用预设(Prefab)
6。代码中少产生临时变量

13.简述prefab的用处
A:在游戏运行实例化,perfab相当于一个模板,对你已经有的素材,脚本,参数做一个默认的配置,以便于以后的修改,同时prefab打包的内容简化了导出的操作,便于团队的交流。

14.如何降低包的体积
A:
1.替换jpg,使用psd,减少重复资源
2.剔除不必要的资源
3.打包时查看log记录,由此判断需要减少的文件类型
4.压缩图片,减少图片大小
5.压缩网格和动画,减少文件大小
6.剔除system.dll和system.xml.dll

15.不使用第三方变量交换a和b
A:
在这里插入图片描述

16.编程求两个数的最小公倍数和最大公约数
A:
在这里插入图片描述

17.用递归和非递归求斐波那契数列第30项的值
A:递归算法:
在这里插入图片描述
一般算法:
在这里插入图片描述
18.i++和++i命令的区别
A:赋值顺序不同,++i是先加后赋值;i++是先赋值后加。

19.列举熟悉的数据结构
A:数组,栈,队列,链表,树,图,堆。

20.简述值类型和引用类型有什么区别
A:
1.值类型存储在内存栈中,引用类型存储在内

  • 8
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值