![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity读书系列之《Unity高级编程:主程手记》
文章平均质量分 89
adogai
这个作者很懒,什么都没留下…
展开
-
Unity算法(一)——快速排序算法
算法是程序员的基础能力之一,资质越老的程序员在这方面理解会越深,很多时候项目在某个需要优化、提升的节点时,往往一些算法的使用就可以大大提升程序性能。当然,对于不同项目需求,要用适合的算法,在效率与业务之间寻找平衡。此为第一章,快排算法。原创 2024-05-21 23:56:53 · 563 阅读 · 0 评论 -
Unity Dictionary底层源码剖析
Dictionary字典型数据结构本质是关键字Key值和Value值一一映射的关系。Key可以是不同的类型,int、string等等,怎么挥事呢?答案是哈希表,是利用哈希函数将键映射到特定位置,以实现快速的键值检索。砖家建议:先看List源码解析,再看本章。Dictionary 是一种常见的数据结构,由数组构成,使用哈希函数将键映射到数组的特定位置。它通过哈希表实现键值对的存储和检索,具有快速的查找、插入和删除操作。原创 2024-04-29 08:30:00 · 1013 阅读 · 0 评论 -
Unity 浮点数的精度问题
说到浮点数精度,大家想到的就是double比float的精度高,想要高精度就用double类型。两者最明显的区别就是所占位数的不同,也就是字节不同,float是32位占8字节,double则是64位占8字节。因此,运算效率也不同。浮点数精度问题是计算机中普遍存在的挑战。由于计算机存储和计算的限制,浮点数在进行运算时往往会产生舍入误差,导致结果不够准确。为了解决这个问题,我们可以采取一些策略,如控制精度、使用定点数等。在程序开发中,需要特别注意处理浮点数的精度,以确保程序的正确性和稳定性。原创 2024-05-08 19:31:18 · 1308 阅读 · 0 评论 -
Unity读书系列《Unity高级编程:主程手记》——C#技术要点
本文旨在总结某一概念的性质,并引出相关的技术要点。如果读者希望深入了解相关技术,可以通过点击链接获取更多信息。友情提示,建议将本文内容分成多个阶段学习,一次性阅读可能会让新手感到困惑。初次接触某些概念时容易产生误解,因此需要谨慎理解。本文旨在总结业务逻辑优化技巧,并引出相关的技术要点。在实际项目中,业务逻辑编写的代码往往是最重要的,而优秀的程序员会注重以恰当的方式实现功能,提升性能和效率。不必担心自己的代码不够好,或者优化的方向不够准确。通过实践并不断修正错误,我们才能不断成长。原创 2024-05-09 08:45:00 · 954 阅读 · 0 评论 -
Unity 状态机
提到Unity状态机,接触不久的开发者会想到Unity的动画状态机,而对于老油条来说,可能会回忆起自己实现的动画状态机。当然,常见的框架设计中都会出现属于自己的状态机接口,之前一篇文章也提到了一种FSM的写法。状态机是分为有限状态机和无限状态机,而Unity开发的基本上都是有限状态机(FSM),无限状态机主要是在编译原理中可能用到,基本上属于概念向的东西,所以本篇主要介绍有限状态机(FSM)的使用。原创 2024-05-08 08:45:00 · 1646 阅读 · 0 评论 -
Unity 委托与事件、装箱和拆箱
不知道大家在学习C#之前有没有学习过C/C++,在中后期会接触到指针。她不仅能指向变量的地址,还能指向函数的地址。本质上,指向的都是内存的地址。而在C#中,万物皆是类,指针被封装到内部函数中,因此并不常见。所有函数指针的功能都以委托的方式完成。委托可以被视为更高级的函数指针,它不仅能将地址指向另一个函数,而且还能传递参数、获取返回值等多种信息。委托具有以下属性:委托类似于 C++ 函数指针,但委托完全面向对象,不像 C++ 指针会记住函数,委托会同时封装对象实例和方法。原创 2024-05-08 08:45:00 · 1938 阅读 · 1 评论 -
Unity C#的底层原理概述
看到底层二字,会感到很高深,好似下一秒就要踏入深渊。实际上,对于C#底层的理解非常简单,比冒泡排序这种基础算法还要简单。底层的两种机制:Mono和IL2CPP。IL2CPP其中的"2"我们念做兔,念做 “to”,含义就是"转为"。xx2yy也就是把xx转为yy。一句话总结,IL2CPP的引入主要是为了解决Mono维护成本高、版本受限以及性能优化等问题。IL2CPP通过将C#代码转换为C++代码,再编译成机器码的方式,实现了跨平台的支持,并且能够更好地适配新的C#特性。原创 2024-04-29 22:49:39 · 1869 阅读 · 2 评论 -
Unity List底层源码剖析
没有扎实的基础,很多编写的程序会随着软件规模的扩大或扩展而产生诸多问题,然后这些程序很可能会被无情的抛弃并重写。而其中的问题可能只是因为一点点的小问题堆积起来,基础可见其重要。本章我们将深入了解经常使用的List。我曾经在学校学习过链表、列表等数据结构,但实际上当时并没有真正理解,只是简单地复制粘贴代码。我觉得自己的基础很差。后来在工作中遇到一些基础问题或者想要了解某些内部原理时,总是依赖查找资料。如果你也想深入了解C#,我推荐购买《C#图解教程》当作查阅资料。原创 2024-04-27 08:45:00 · 1137 阅读 · 0 评论 -
Unity读书系列《Unity高级编程:主程手记》——架构
这篇文章是《Unity高级编程:主程手记》的第一章。从标题就可以看出,该书不涉及通常意义上的基础知识,而是针对进阶内容。适合那些开发经验至少超过2年的老手。希望大家能喜欢!接下来就让我们进入正文。软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件体系结构是构建计算机软件实践的基础。这是网上搜到的定义,说实话有点高深,如果非得我解释清楚,我只能说,懂得都懂。哈哈,开个玩笑,接下来我会用通俗易懂的语言来解释。原创 2024-04-27 08:00:00 · 1946 阅读 · 0 评论