C# &Unity 唐老狮 No.7 模拟面试题

本文章不作任何商业用途 仅作学习与交流 安利唐老狮与其他老师合作的网站,内有大量免费资源和优质付费资源,我入门就是看唐老师的课程 打好坚实的基础非常非常重要:

全部 - 游习堂 - 唐老狮创立的游戏开发在线学习平台 - Powered By EduSoho

如果你发现了文章内特殊的字体格式,那是AI补充的知识,我发现原网站下面有答案,我将会把答案以不同样式穿插在回答之中

目录

C#

1. C#中如何让一个类不能再被其他类所继承?

2. C#中使用泛型的好处是什么?

3. C#中元组对于我们的作用是什么?

[4. 请说明Thread、ThreadPool、Task分别是什么?并简单说明彼此的区别](#4. 请说明Thread、ThreadPool、Task分别是什么?并简单说明彼此的区别)

[5. 请简述GC(垃圾回收)产生的原因,并至少说出避免GC发生的三种方式?](#5. 请简述GC(垃圾回收)产生的原因,并至少说出避免GC发生的三种方式?)

Unity

[1. Unity中动态加载资源的方式有哪些?](#1. Unity中动态加载资源的方式有哪些?)

[2. Unity中的光照贴图的作用是什么?](#2. Unity中的光照贴图的作用是什么?)

[3. Unity场景中有两个点连成了一条线,想要旋转这条线,应该怎么做?](#3. Unity场景中有两个点连成了一条线,想要旋转这条线,应该怎么做?)

[4. LOD(多细节层次)和 MipMap(纹理图)的作用是什么?](#4. LOD(多细节层次)和 MipMap(纹理图)的作用是什么?)

[5. 游戏开发中,客户端和服务端交互数据,程序中常用方式是什么?](#5. 游戏开发中,客户端和服务端交互数据,程序中常用方式是什么?)


C#

1. C#中如何让一个类不能再被其他类所继承?

密封类seald

2. C#中使用泛型的好处是什么?

避免了拆装箱, 而且不确定类型可以让方法或者类更加灵活

3. C#中元组对于我们的作用是什么?

不知道元组,所以我问了dp但要是学习的话这个视频可以帮到你 C# 元组(Tuple) .NET程序设计进阶_哔哩哔哩_bilibili

元组(Tuple)的核心作用是提供一种轻量级、无需定义新类型即可临时组合多个数据值的机制

  1. 多返回值方法

    复制代码
    public (double avg, double stdDev) ComputeStats(List<double> data) {    // 计算逻辑    return (avg, stdDev);}
  2. 临时数据组合

    复制代码
    var userInfo = (Name: "Alice", Age: 30, IsVerified: true);Console.WriteLine(userInfo.Name);
  3. LINQ 查询结果增强

    复制代码
    var query = products.Select(p => (p.Name, Price: p.Cost * 1.2));
  4. 模式匹配(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博客

assetBundle的同步异步

Unity 热更新 之 一篇文章完全入门AssetBundle_unity assetbundle-CSDN博客

Addressable的同步异步 Unity热更新 之 Addressables(2) 本地/远端打包 流程测试_addressables 远程更新-CSDN博客

加载文件的几种方式

Unity 读取文本文档 方法总结_unity textasset-CSDN博客

2. Unity中的光照贴图的作用是什么?

布吉岛 我想到的是模拟光照效果

3. Unity场景中有两个点连成了一条线,想要旋转这条线,应该怎么做?

欧拉角Transform.eulerAngles

四元数Quaternion.Euler 或者直接乘四元数

4. LOD(多细节层次)和 MipMap(纹理图)的作用是什么?

LOD技术就是让一个模型有多种样式的 从低模到高模 可以在摄像机远的时候加载低模 优化性能,近则反之 通常玩家不可选

mimmap让我想起了我的世界,其不同程度等级可以控制纹理细节,玩家可选来优化游戏体验

5. 游戏开发中,客户端和服务端交互数据,程序中常用方式是什么?

布吉岛,网络还在入门 我一看答案 是TCP/IP的协议

相关推荐
HH‘HH10 小时前
Unity通过OPC UA工业协议连接工业设备实战指南
unity·游戏引擎
程序喵大人12 小时前
【C++进阶】STL容器与迭代器 - 01 STL 容器先解决元素放在哪里
开发语言·c++·stl
cui_ruicheng12 小时前
Python从入门到实战(十六):多进程编程
开发语言·python
wdfk_prog14 小时前
嵌入式面试真题第 15 题:不可恢复异常后的通用崩溃快照、调用栈保存与离线分析架构
linux·开发语言·面试·架构
晴空了无痕14 小时前
从 Go 基础到 K8s:一条可落地的 Go 服务端成长路线
开发语言·后端·golang·kubernetes
神明不懂浪漫14 小时前
【第五章】Java中的继承与多态
java·开发语言
神州世通15 小时前
解密企业通信安全防线:Avaya Aura 三层安全架构深度解析
开发语言·php
AC赳赳老秦16 小时前
企业工商公开信息采集分析:OpenClaw 批量查询企业工商信息,生成企业画像报告
大数据·开发语言·python·自动化·php·deepseek·openclaw
qq_25183645716 小时前
基于java Web 动漫视频网站毕业论文
java·开发语言·前端