- 博客(84)
- 收藏
- 关注
原创 【Unity面试必考100讲之6】C# 反射:开启代码的“上帝视角”与“透视眼”
用官方的话说:反射提供了封装程序集、模块和类型的对象(Type类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。(听完这段话,是不是已经想关网页了?别急,看人话版。平常写代码,我们是**“上帝造人”——你知道你要造个Person类,有鼻子有眼。反射则是“法医验尸”**——给你一个黑盒子对象,你在运行的时候,通过技术手段,分析出它是个男是女,有几个鼻子,甚至可以强行让它开口说话。好了,关于C#反射的“扒皮抽筋”之旅就到这里。
2025-12-30 12:08:24
522
原创 【Unity面试必考100讲之5】C# 委托与事件:从“傻傻分不清楚”到“掌控雷电”
本文深入浅出地讲解了C#中委托(Delegate)和事件(Event)的核心概念与区别。委托作为方法的"代言人",可以实现方法的多播调用,但存在安全性问题;事件则作为委托的"安全外壳",通过封装保护委托不被随意调用或清空。文章通过生动比喻和代码示例,阐述了二者的本质关系:事件之于委托如同属性之于字段。最后介绍了现代C#中的Action和Func简化写法,并提供了面试回答技巧。全文以幽默风格呈现技术内容,帮助读者轻松理解这两个重要概念。
2025-12-30 10:27:49
356
原创 【Unity面试必考100讲之4】深度解析面向对象三大特性:封装、继承与多态的底层原理
本文深入解析面向对象编程(OOP)的三大特性在C#中的实现与应用。首先阐述了封装的核心价值在于降低耦合度,通过C#属性、访问修饰符等实现数据保护和逻辑控制。其次探讨继承的利弊,强调"组合优于继承"原则,并演示抽象类和接口的使用。重点剖析多态机制,包括编译时和运行时多态,揭示其底层通过虚方法表(V-Table)实现动态分派的原理。文章不仅提供代码示例,还从设计哲学角度分析各特性的适用场景,帮助开发者深入理解OOP精髓,写出更健壮、可维护的代码。
2025-12-29 11:02:16
746
原创 【Unity面试必考100讲之3】深度解析值类型与引用类型:从内存原理到性能优化
本文深入探讨C#中值类型与引用类型的核心区别,从内存布局(栈/堆)、赋值行为、装箱拆箱到性能优化等方面进行系统分析。文章指出值类型并不总在栈上,可能随引用类型存储在堆中,并通过代码示例展示两者不同的复制行为。重点解析了装箱拆箱的性能陷阱,推荐使用泛型集合优化性能。最后提供类型选型指南,强调理解这些概念对开发高性能系统的重要性。全文旨在帮助开发者掌握底层机制,提升代码质量与性能。
2025-12-29 10:55:00
661
原创 【Unity面试必考100讲之2】Struct 和 Class 到底有什么区别?别再只背“值类型”和“引用类型”了!
本文深入剖析了C#中结构体(struct)和类(class)的核心区别。结构体是值类型,通常存储在栈上,赋值时进行全量拷贝,GC压力小但不支持继承;类是引用类型,存储在堆上,赋值仅拷贝引用地址,支持继承但GC压力大。文章还揭示了性能陷阱:大结构体拷贝成本高,装箱操作会抵消优势。最佳实践建议:仅当数据小于16字节、表示单一值、不可变且不频繁装箱时才使用结构体。通过对比赋值行为、内存管理、继承能力等五大关键区别,帮助开发者合理选择类型,优化性能。
2025-12-26 10:28:09
949
原创 【Unity 面试必考100讲之1】Array、ArrayList 和 List<T> 到底有什么区别?硬核图解性能陷阱
本文深入对比C#中Array、ArrayList和List<T>三大容器的特性差异。Array作为基础结构,内存连续但长度固定;ArrayList虽支持动态扩容但存在类型不安全、频繁装箱拆箱的性能问题;List<T>结合泛型优势,既保证类型安全又避免了装箱拆箱开销。性能测试显示,List<T>在处理千万级数据时效率远超ArrayList。结论指出ArrayList已过时,List<T>适用于95%的场景,仅特殊性能需求时才使用Array。文章还揭示了List&
2025-12-26 10:17:13
835
原创 【游戏开发】拒绝呆板 AI!Unity C# 深度剖析 Boids 群聚算法
本文介绍了如何利用Boids算法实现群体自然移动效果。通过Craig Reynolds提出的三个核心规则(分离、对齐、凝聚),结合向量操纵理论,可以在Unity中模拟鸟群、鱼群等群体行为。文章提供了完整的C#实现方案,包含Boid类(处理个体移动逻辑)和FlockManager类(管理全局参数),通过简单规则组合产生复杂的"涌现"现象,为RTS游戏和自然模拟提供高效解决方案。
2025-12-25 15:26:13
907
原创 【硬核干货】游戏 AI 的大脑:蒙特卡洛树搜索 (MCTS) 深度解析
蒙特卡洛树搜索(MCTS)是一种不依赖领域知识的博弈决策算法,通过随机模拟评估局面优劣。相比传统极大极小算法,MCTS无需预定义评估函数,而是通过选择、扩展、模拟和回溯四个步骤构建搜索树:1)使用UCB1公式平衡探索与利用;2)扩展未探索节点;3)随机走子至终局;4)反向传播胜负结果更新节点统计。C#实现展示了通用框架,通过迭代模拟最终选择访问次数最多的动作。该算法是AlphaGo等游戏AI的核心技术,特别适合状态空间庞大的博弈问题。
2025-12-25 13:49:50
862
原创 【Unity 进阶】拒绝卡顿!手把手教你写一个高可用的“通用对象池 (Object Pool)”系统
在 Unity 开发中,频繁的 Instantiate 和 Destroy 是导致游戏卡顿(GC 峰值)的头号杀手。本文将带你从零实现一个泛型、易扩展、支持自动回收的通用对象池系统。附完整 C# 源码,拿来即用!
2025-12-23 18:16:36
407
原创 【算法实战】手把手带你用 C# 实现 A* (A-Star) 寻路算法
本文详细介绍了A寻路算法在游戏开发中的应用。A算法结合了Dijkstra算法的最短路径保证和贪婪算法的效率优势,通过F=G+H公式评估节点价值,其中G为实际移动成本,H为启发式预估成本。文章讲解了曼哈顿距离和欧几里得距离两种常用启发函数,并给出算法流程:维护开启列表和关闭列表,循环查找F值最小的节点,直至找到终点。最后提供了C#实现代码,使用PriorityQueue优化性能,包含节点定义、启发函数计算和路径搜索的核心逻辑。该算法是游戏自动寻路系统的关键技术,兼顾路径最优性和计算效率。
2025-12-22 18:29:05
838
原创 【Unity/C# 基础算法】从入门到进阶:线性、插值与斐波那契查找深度解析
算法数据要求平均复杂度适用 Unity 场景线性查找无序OnO(n)On简单的 UI 列表、小型动态数组插值查找有序且分布均匀OloglognOloglogn))大型静态数值配置表(如等级经验表)斐波那契查找有序OlognO(\log n)Ologn底层性能优化、避免除法开销的系统博主寄语我是 [小郎君],我们下期见!
2025-12-18 19:48:18
646
原创 【Unity100个实用小技巧】Git报错:error: some local refs could not be updated;
Git报错,Unity100个实用小技巧
2023-06-04 19:33:56
1136
原创 【Unity100个实用小技巧】保证原图片的情况下,动态扩展图片尺寸
📆 未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------Unity。
2023-05-18 22:49:42
472
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1