C-Unity-唐老狮-No.7-模拟面试题
C# &Unity 唐老狮 No.7 模拟面试题
本文章不作任何商业用途 仅作学习与交流 安利唐老狮与其他老师合作的网站,内有大量免费资源和优质付费资源,我入门就是看唐老师的课程 打好坚实的基础非常非常重要:
[全部 - 游习堂 - 唐老狮创立的游戏开发在线学习平台 - Powered By EduSoho]( “全部 - 游习堂 - 唐老狮创立的游戏开发在线学习平台
- Powered By EduSoho”)
如果你发现了文章内特殊的字体格式,那是AI补充的知识,我发现原网站下面有答案,我将会把答案以不同样式穿插在回答之中
C#
1 C#中如何让一个类不能再被其他类所继承?
密封类seald
2 C#中使用泛型的好处是什么?
避免了拆装箱, 而且不确定类型可以让方法或者类更加灵活
3 C#中元组对于我们的作用是什么?
不知道元组,所以我问了dp但要是学习的话这个视频可以帮到你[C# 元组(Tuple) .NET程序设计进阶_哔哩哔哩_bilibili]( card.all.click&vd_source=85dbb2fd9fc2a60e6532f595cd1b39db “C# 元组(Tuple) .NET程序设计进阶_哔哩哔哩_bilibili”)
元组(Tuple)的核心作用是提供一种轻量级、无需定义新类型即可临时组合多个数据值的机制
- 多返回值方法
public (double avg, double stdDev) ComputeStats(List data) { // 计算逻辑 return (avg, stdDev);}
- 临时数据组合
var userInfo = (Name: “Alice”, Age: 30, IsVerified: true);Console.WriteLine(userInfo.Name);
- LINQ 查询结果增强
var query = products.Select(p => (p.Name, Price: p.Cost * 1.2));
- 模式匹配(C# 8+)
if (input is (int x, int y) && x > 0) { … }
4 请说明Thread、ThreadPool、Task分别是什么?并简单说明彼此的区别
Thread:线程关键词 可以创建新线程 ThreadPool:线程对象池,管理线程的 Task:线程任务,用作异步操作的 三者是层层递进的关系:
特性 | Thread | ThreadPool | Task |
---|---|---|---|
资源管理 | 手动创建/销毁,成本高 | 自动复用线程,成本低 | 基于线程池,支持异步调度 |
控制粒度 | 精细控制(优先级、名称等) | 无控制权 | 通过 TaskScheduler 配置 |
适用任务类型 | 长期运行的任务 | 短期高频任务 | 通用异步/并行任务 |
异常处理 | 需手动捕获异常 | 异常会终止进程 | 支持聚合异常(AggregateException ) |
现代性 | 原始 API,已过时 | 底层机制 | 推荐使用(配合 async/await ) |
![]() |
5 请简述GC(垃圾回收)产生的原因,并至少说出避免GC发生的三种方式?
出现无用的内存(不被引用的对象等)就会触发GC 其背后是一套自动化的代码工具 避免: 1.使用对象池 2.使用struct做数据结构 3.使用官方提供的一些优化APi,比如stringBuilder,using,TryChache
补充:为什么要避免多次GC?
回收过程会暂停应用程序线程(Stop-the-World),频繁 GC 会导致性能波动,尤其是对实时性要求高的场景(如游戏、高频交易)
Unity
1 Unity中动态加载资源的方式有哪些?
Resource的同步异步
[Unity数据持久化 万物之源Resources动态资源加载_unity动态加载资源-
CSDN博客](
task-blog-2blogfirst_rank_ecpm_v1rank_v31_ecpm-1-140407834-null-
null.nonecase&utm_term=resources&spm=1018.2226.3001.4450 “Unity数据持久化
万物之源Resources动态资源加载_unity动态加载资源-CSDN博客”)
assetBundle的同步异步
[Unity 热更新 之 一篇文章完全入门AssetBundle_unity assetbundle-
CSDN博客](
task-blog-2blogfirst_rank_ecpm_v1rank_v31_ecpm-1-143663583-null-
null.nonecase&utm_term=Asset&spm=1018.2226.3001.4450 “Unity 热更新 之
一篇文章完全入门AssetBundle_unity assetbundle-CSDN博客”)
Addressable的同步异步[Unity热更新 之 Addressables(2) 本地/远端打包 流程测试_addressables
远程更新-
CSDN博客](
task-blog-2blogfirst_rank_ecpm_v1rank_v31_ecpm-2-145062995-null-
null.nonecase&utm_term=%E7%83%AD%E6%9B%B4&spm=1018.2226.3001.4450 “Unity热更新 之
Addressables(2) 本地/远端打包 流程测试_addressables 远程更新-CSDN博客”)
加载文件的几种方式
****[Unity 读取文本文档 方法总结_unity textasset-
CSDN博客](
task-blog-2blogfirst_rank_ecpm_v1rank_v31_ecpm-10-143650086-null-
null.nonecase&utm_term=%E6%80%BB%E7%BB%93&spm=1018.2226.3001.4450 “Unity
读取文本文档 方法总结_unity textasset-CSDN博客”)
2 Unity中的光照贴图的作用是什么?
布吉岛
我想到的是模拟光照效果
3 Unity场景中有两个点连成了一条线,想要旋转这条线,应该怎么做?
欧拉角 Transform.eulerAngles
四元数 Quaternion.Euler 或者直接乘四元数
4 LOD(多细节层次)和 MipMap(纹理图)的作用是什么?
LOD技术就是让一个模型有多种样式的 从低模到高模 可以在摄像机远的时候加载低模 优化性能,近则反之 通常玩家不可选
mimmap让我想起了我的世界,其不同程度等级可以控制纹理细节,玩家可选来优化游戏体验
****
5 游戏开发中,客户端和服务端交互数据,程序中常用方式是什么?
布吉岛,网络还在入门 我一看答案 是TCP/IP的协议