【春秋招必看】Unity相关笔试面试题(内有完整答案)第一期

欢迎来到光光的奇妙冒险,我是你们的煎饼光子老师。

今天是我们的第一期笔试面试题总结。


C#部分:

1、装箱和拆箱是指什么?

答案:
装箱——把栈中内容迁移到堆中去(值转引用)
拆箱——把堆中内容迁移到栈中去(引用转值)

2、委托和事件在使用上的区别是什么?

答案:
事件相对委托来说,事件在外部使用时只能 +=、-=

3、有两个接口IA和IB,他们都有一个叫Test()的方法,一个类同时继承这两个接口,应该如何处理他们的同名方法?

答案:显示实现接口
IA.Test()
IB.Test()

4、请说明C#中的List是如何扩容的

答案:List的本质是数组,举数组扩容的例子即可


Unity部分:

1、Unity中点乘和叉乘对于我们来说的作用是什么?

答案:
点乘作用
1.判断对象的方位
2.计算两向量之间的夹角
叉乘作用
1.获取一个平面的法向量
2.得到两向量之间的左右位置关系

2、Unity中多线程执行下面哪些代码会报错?
A. Application.persistentDataPath
B. File.Exists("文件名")
C. transform.Translate
D. Object.Destroy(对象)

答案:
A、C、D
UnityEngine命名空间中相关类基本都不能被Unity中多线程使用

3、Application.streamingAssetsPath 和 Application.persistentDataPath两个路径有何区别?对于我们的意义是什么?

答案:
Application.streamingAssetsPath 只读
Application.persistentDataPath 可读可写

Application.streamingAssetsPath 适合放置一些默认2进制配置文件
Application.persistentDataPath  用于处理数据持久化,或作为热更新下载内容的存放目录,因为它可读可写

4、请简述Unity中协程的原理

答案:
Unity中的协同程序分为两部分
1.协程函数本体(迭代器函数)
2.协程调度器(协程管理器)
协程利用迭代器函数的分步执行的特点
加上
协程调度器对迭代器函数们进行统一管理
根据迭代器函数的返回值来决定下一次执行函数逻辑的时间点
从而实现逻辑分时分步执行的目的

5、Unity底层如何处理C#代码?

答案:
两种方案
Mono和IL2CPP

猜你喜欢

转载自blog.csdn.net/Blueberry124/article/details/142386713