面试题模拟

C#

  1. 装箱和拆箱是什么?
    装箱是指用堆空间来存放值类型数据
    拆箱是指将存放在堆空间的值类型数据转换到栈空间

  2. 值和引用类型在变量赋值时的区别是什么?
    值类型的数据赋值的时候是指向同一块内存区域,当前一个改变的时候后一个也会跟着改变。
    引用类型的数据在赋值的时候是重新在栈上开辟了一段新的内存区域,所以一个改变的时候对另一个不会有影响。

  3. 委托和事件在使用上的区别是什么?
    事件只能在类内进行

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

  5. 请说明C#中的List是如何扩容的
    重新分配内存空间,并将原来的数据拷贝到新地址上,然后销毁原来的内存区域。

Unity

  1. Unity中点乘和叉乘对于我们来说的作用是什么?
    点乘:判断两个物体之间的方位。计算两个向量之间的角度。

  2. Unity中多线程执行下面哪些代码会报错?

    A. Application.persistentDataPath

    B. File.Exists(“文件名”)

    C. transform.Translate

    D. Object.Destroy(对象)

  3. Application.streamingAssetsPath 和 Application.persistentDataPath

    两个路径有何区别?对于我们的意义是什么?

  4. 请简述Unity中协程的原理
    开辟一个新的线程,且不会卡住主线程,可以用来处理一些异步逻辑。

  5. Unity底层如何处理C#代码?
    通过反射的机制,根据生命周期函数将组件挂载的C#代码用来处理游戏对象的逻辑。

你可能感兴趣的:(游戏,游戏引擎)