MIL22——模拟面试题
MIL22——模拟面试题 C# C# 中在字符串前面加一个 @ 符号或者 $ 符号有什么作用 C# 中提供了序列化和反序列化 2 进制数据的公共类 BinaryFormatter 为什么我们一般还要自己去实现序列化和反序列化 2 进制数据的方法? 异或加密的原理是什么?请简要说明 下面的函数是判断一个整数是不是 2 的 n 次方。请问 if 语句中应该如何书写 123456static bool isPowerOfTwo(uint num){ if (/*...*/) return true; return false;} 有 1000 瓶水其中一瓶是有毒的,喝下后 24 小时后才死,现在用小白鼠来测试哪一瓶有毒。 最少需要用多少只小白鼠才能测出哪一瓶是有毒的水(需要在 24 小时后出结果,不能用几天时间来测试) Unity 有 1000 瓶水其中一瓶是有毒的,喝了马上死,现在用小白鼠来测试哪一瓶有毒。最少需要用多少只小白鼠才能测出哪一瓶是有毒的水 如何为 UGUI...
MIL21——模拟面试题
MIL21——模拟面试题 C# 为什么要为缓存池中的单个池子设置对象上限? 任务系统中,某任务是要采集某一种植物 n 株后才能完成。说一说制作思路 有两个泛型类,他们是父子关系 12public class Father<T> {}public class Son<T> : Father<T> 这个写法是否正确? 1234public Father<Father<int>> Test(){ return new Son<Son<int>>();} 数据结构中的树,一般会在游戏开发中用来处理什么?至少说出3点 游戏开发中逻辑与表现如何分离?非 UI 系统 Unity 什么是纹理映射? IK(逆运动学)可以帮助我们完成什么功能? Unity 中为 Sprite 前后关系排序的常用方式有哪些?(至少说出3种) 请介绍一些在 Unity 中减少内存的方法。(至少说出3种方法) 请介绍一些在 Unity...
CS4L25——插入排序
CS4L25——插入排序 插入排序 插入排序(insertion sort)是一种简单的排序算法,它的工作原理与手动整理一副牌的过程非常相似。 将待排序数组分为两个区域,一个是排序区,另一个是未排序区,用一个索引值做分水岭, 未排序区元素与排序区元素比较,插入到合适位置,直到未排序区清空 插入算法的实现 前提规则: 排序开始前:首先认为第一个元素在排序区中,其他所有元素在未排序区中 排序开始后:每次将未排序区第一个元素取出和,排序区中元素比较从后往前,满足条件(较大或者较小),则排序区中元素往后移动一个位置 注意:所有数字都在一个数组中,所谓的两个区域是一个分水岭索引 123456789101112131415161718192021222324252627282930313233343536static void InsertionSort(int[] nums){ // 第一步,取出未排序区的所有元素进行比较,i = 1的原因:默认第一个元素就在排序区 for (int i = 1; i < nums.Length; i++) ...
MIL20——模拟面试题
MIL20——模拟面试题 C# C# 类中的函数是否占用内存空间? C# 中的函数是何时被加载到内存中的呢? C# 函数中一般会声明一些临时变量,当函数被加载内存中后,所占的内存空间是否包含函数中的这些临时变量? C# 中委托的本质是什么?它是如何存储函数的? C# 中事件的本质是什么? Unity Unity 在发布 Android 平台项目时,在加载 Application.streamingAssetsPath 中文件时我们应该注意什么? Unity 中安卓主流的纹理压缩格式 ETC 和 ETC2 的主要区别是什么? Android 平台常用压缩格式 ETC 不支持透明通道,那我们的半透明纹理应该如何处理? Unity 中针对 IOS 平台我们使用的主流纹理压缩格式是什么? 请问为什么延迟渲染路径能够优化有大量光源的场景渲染 答案 C# C# 类中的函数是否占用内存空间? 占用,但是它不再我们通常说的堆栈中,而是存储在内存中的文本段(Text Segment),它是存储可执行程序的代码的内存段 C#...
MIL19——模拟面试题
MIL19——模拟面试题 C# 请问以下这段代码的打印结果是多少? 123float f = 10.4;int i = f / 2;Console.WriteLine(i); 在 C# 当中,我们想要用一个字典容器存储场景中的所有敌对对象,比如 怪物、Boss、可被攻击的场景物件等等,应该如何存储 在 C# 中,给你一个数字,表示有 n 秒,请问如何在不改变这个数字的前提下,将它转换成格式为 __小时__分__秒 请问执行以下代码后,List 中还存在哪些内容? 123List<int> list = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }for (int i = 0; i < list.Count; i++) list.RemoveAt(i); 假设游戏中有一个怪物管理器管理所有怪物,那么在开发时,为了避免内存泄漏,我们需要注意什么? Unity Unity 生命周期函数中的 OnEnable 和...
MIL18——模拟面试题
MIL18——模拟面试题 C# 父类中定义了一个静态成员属性有两个子类都继承该父类请问打印结果是什么?为什么 泛型父类中定义了一个静态成员属性有两个子类都继承该泛型父类请问打印结果是什么?为什么 使用 C# 制作游戏存档功能,请问有几种做法?(至少说出三种) C# 中是否可以通过反射获取到类内部的私有成员? 在制作游戏存档功能时,C# 中反射主要可以发挥出哪些作用(至少说出三点) Unity 如果在 Unity 当中制作 FPS 游戏,如何模拟枪械开枪时的后坐力 Unity 当中存在多线程时,继承 MonoBehaviour 的脚本是否有必要对其中内容加锁?为什么? 我们在 Unity 中进行一些复杂逻辑处理时,比如网路通讯、寻路算法、往往会开启多线程进行处理。 我们如何保证数据能够和 Unity 主线程进行正常交互?(请至少说出 1 种方式) Shader 当中的 Blend 渲染命令主要用来干什么? Shader 当中的 Blend 渲染命令后面跟的参数是用来干嘛的?比如:Blend SrcAlpha...
MIL17——模拟面试题
MIL17——模拟面试题 C# 递归函数是什么?请用一句话总结 在编写递归函数时,最需要关注的两点是什么?请说出你自己的理解 C# 中如何在函数中返回多个返回值?(至少说出3种方法) 二分查找(折半查找)的原理是什么? 在游戏开发中,我们可以利用数据结构中的树参与哪些功能的制作?(至少说出 3 点) Unity 你之前做过一些项目,那么一般美术同学提供给我们的美术资源,一般分为哪几类? 美术同学提供给我们的模型数据中,包含哪些关键数据?(至少说出 3 点) 游戏项目中,运行时主要占内存的内容有哪些?(至少说出 5 点) 游戏项目中,主要消耗性能的内容有哪些?(至少说出 3 点) 网络游戏中,有一个数据统计界面,这些数据是由最近 1000 场战斗计算出来的平均数据, 你认为以下处理方式合理吗?如果不合理,应该如何改进? 我们通过向后端请求这 1000...
MIL16——模拟面试题
MIL16——模拟面试题 C# 我们可以使用 C# 中的迭代器来做什么?至少说出两点 面向对象的七大原则分别是什么?并选择其中一个原则说明它的意思 为什么单例模式在游戏开发中很常用?至少说出 3 个优点 工厂模式在游戏开发中一般用来做什么? 观察者设计模式在游戏开发中有什么作用? Unity Unity工程文件中,meta 后缀的文件中主要存了什么信息?(最少说出2点) 不同后缀的各种文件的本质是什么? UnityWebRequest 可以用来做什么? 如何在 Unity 中进行多线程编程以提高性能?(至少说出3点可以使用多线程提高性能的内容) 游戏开发完成后:1、游戏运行卡顿、设备发热一般往哪个大方向进行排查?2、游戏运行一段时间后闪退,一般往哪个大方向进行排查? 答案 C# 我们可以使用 C# 中的迭代器来做什么?至少说出两点 foreach 协同程序 面向对象的七大原则分别是什么?并选择其中一个原则说明它的意思 单一职责原则: 一个类只处理自己应该处理的内容,不应该啥都写在一起 开闭原则:...
MIL15——模拟面试题
MIL15——模拟面试题 C# 抽象类中的虚函数和抽象函数,是否必须在子类中重写? 当我们使用里式替换原则,用父类容器装载子类对象时,我们通过该父类容器调用其中的一个虚函数,执行的逻辑是父类中的还是子类中的逻辑呢? 我们在游戏开发时,想要获取系统时间,应该如何获取? C# 使用 var 声明临时变量相比用指定变量类型声明临时变量,在最终执行时是否会增加性能消耗? 我们知道,下面的代码 b 改为 20 后,a 还是 10。(值类型的特点) 我们是否可以简单修改以上代码,让 b 变成 20 后,a 跟着一起变。请说出修改方案 123int a = 10;int b = a;b = 20; Unity Unity 中摄像机组件中的投影(Projection)参数 其中的两个选项:透视投影(Perspective)和 正交投影(Orthographic)有什么区别? FSM 和 BT 指什么?他们是用来处理什么的? 10000 个 Monobehaviour,每个各自执行 Update,和放到一个 Update...
MIL14——模拟面试题
MIL14——模拟面试题 C# C# 中属性(Property)和字段(Field)的区别是什么? 属性一般可以用来封装字段,属性相对字段来说,属性具有封装性,允许对字段进行封装,提供更多的控制和逻辑。 相比直接访问字段来说,属性允许我们在字段访问的过程汇总添加验证、计算等逻辑, 属性还可以在其中对 set 和 get 设置不同的访问级别,使得字段的读取和写入可以收到更精细的控制 请解释一下 C# 中的异步编程模型(async / await),它是用来做什么的? C# 中的异步编程模型是一种用于处理并发任务的技术 允许在执行异步操作时,让程序继续执行其他任务,而不会阻塞主线程。 这对于处理诸如网络请求、文件读写、长时间计算等耗时操作非常有用 请问七大排序算法一般指哪七种排序算法?你一般常用的排序算法是哪种?请简单描述它的排序原理 冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序 请简单描述斐波那契数列的基本规则是什么 假设数列从索引 0...
