求职日记:面试准备
基础知识大串讲
这里会记录可能问到的基础知识,也是对我所学的一个复习回顾。
C#相关
- 委托和事件是什么?使用事件对比直接使用函数调用有什么优势?
- 委托和事件:
- 委托和事件是存有方法引用的类型,他们的区别在于事件是委托的安全包裹,只能在声明它的类内部执行
Invoke();外部仅可+=、-=函数。
- 委托和事件是存有方法引用的类型,他们的区别在于事件是委托的安全包裹,只能在声明它的类内部执行
- 优势:
- 降低耦合度。使用事件实际上是设计模式中观察者模式的体现,发布者不必关注订阅者的逻辑行为,订阅者在换逻辑时也只需注意加减函数,不必修改大量逻辑。
- 访问更安全。外部不可
Invoke() - 支持一对一广播,触发式全部自动执行。
- 泛型的作用,举例说明。
- 泛型的作用:
- 复用代码逻辑
- 避免装箱拆箱
- 例子:
List<T>
- 接口和抽象类的核心区别?
- 关键字:接口
interface,抽象类abstract class - 成员:接口默认无字段、不能有实例变量;抽象类可以有字段、属性、构造函数
- 继承:一个类只能继承一个抽象类,但是可以实现多个接口
- 设计:接口强调能做什么、抽象类强调是什么
Unity相关
MonoBehaviour的完整生命周期,说说Awake()和Start()的区别,Update()和FixedUpdate()的区别。
- 生命周期:
Awake -> OnEnable -> Start -> FixedUpdate -> Update -> LateUpdate -> OnDisable -> OnDestory Awake()和Start()的区别:Awake():在物体被实例化时执行,即使脚本失活也能执行。用于初始化赋值。所有物体的Awake()执行完后,才会开始执行Start()。Start():在Awake()之后,Update()第一帧开始前执行,必须当脚本被激活时才能执行。常用于需要等待其他数据的逻辑上。
Update()和FixedUpdate()和LateUpdate()的区别:Update():每帧执行,帧间隔不固定。用于处理普通业务逻辑。比如物体移动、摄像机移动FixedUpdate():按照固定时间间隔执行,不受帧率影响。用于处理与物理相关的逻辑。LateUpdate():所有Update()执行完毕后才运行。常用于跟随逻辑(相机跟随角色、挂件跟随主体),避免Update物体移动完相机滞后错位。
- 方向向量和位置向量的区别
- 方向向量:只关心方向,不关心起点终点。可以用两点坐标相减得到。
- 位置向量:是从世界原点指向空间某物体位置的向量,用来记录一个点在哪。是物体的
transform.position
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 MeiMeiBlog!





