🗒️多种导入格式图片内存占用对比

在Unity手游开发中,为了减少内存使用和提高加载速度,通常会对图片资源进行压缩。主流的压缩格式包括ETC、ETC2、PVRTC和ASTC。目前市面上的游戏主要采用ASTC格式,具有较好的图像质量和压缩比率。不同压缩格式对内存占用的影响明显,ETC在无Alpha通道时内存占用最小,而有Alpha通道的ETC2内存占用翻倍。PVRTC无论有无Alpha通道,内存占用与无Alpha通道的ETC相同。ASTC的内存占用根据压缩比例而变化,与有无Alpha通道无关。
多种导入格式图片内存占用对比

🗒️UI 优化要点

这篇文章介绍了在Unity项目中进行UI优化的几个常用手段,包括使用图集(SpriteAtlas)来管理UI素材、统一使用材质和字体、分离动画和特效、合理划分Canvas、减少Overdraw、避免不必要的Mask、谨慎使用LayoutGroup、禁用不需要的RaycastTarget等。
UI 优化要点

🗒️C#基础:协变与逆变

在C#编程语言中,协变和逆变是高级类型系统的重要概念,提高了代码的灵活性和可重用性。协变允许方法返回更具体的类型或将泛型类型参数指定为更具体的类型,而逆变允许将方法参数类型指定为更一般的类型。在变体泛型、接口和委托中的应用以及使用协变和逆变可以让代码更灵活处理不同类型的方法。尽管需要注意类型安全问题,但正确使用协变和逆变可以编写更清晰、简洁且易于维护的代码。
C#基础:协变与逆变

🗒️C#基础:密封类与密封方法

在C#中,使用关键字"sealed"可以声明一个类或方法是密封的。密封类不允许被继承,而密封方法不允许在派生类中被覆盖。使用密封类和密封方法可以提高程序的安全性和运行时性能。最佳实践是只有在确信类或方法不应该被修改时才使用密封关键字。然而,过度使用密封可能会降低代码的灵活性。
C#基础:密封类与密封方法

🗒️C#基础:抽象类与接口

在C#程序设计中,抽象类和接口是实现多态性和代码抽象化的重要工具。抽象类是不能被实例化的类,用来定义派生类需要遵循的模板,可以包含方法、属性、事件和字段的实现。接口是一种完全抽象的结构,只能包含方法、属性、索引器和事件的声明,可以被任何类或结构实现。抽象类和接口都可以用来实现多态性,但抽象类可以有成员实现、访问修饰符和只能继承一个,而接口不能有成员实现、默认公开和可以实现多个。正确地运用抽象类和接口是实现高效、可扩展程序架构的关键。
C#基础:抽象类与接口

🗒️C#基础:强、弱引用

在C#中,有两种引用方式:强引用和弱引用。强引用保持对象活跃,直到没有任何强引用指向该对象时,对象才会被垃圾回收。弱引用不会阻止对象被回收,可以随时被回收。C#提供了WeakReference和WeakReference<T>两种方式来实现弱引用。弱引用可用于不想阻止对象被回收的情况,以及在实现缓存机制时避免长时间持有对象引用。合理使用弱引用可以提高应用程序的灵活性和效率,但需要注意对象生命周期的不确定性可能导致程序逻辑复杂化。
C#基础:强、弱引用

🗒️C#基础:反射

反射是C#中一个强大的特性,它允许程序在运行时检查和操作自身的结构。反射的基本概念、工作原理和示例代码都在文档中有详细解释。反射的应用场景包括实现插件架构、对象关系映射和读取自定义属性。然而,反射也会带来性能开销,因此需要谨慎使用,并考虑优化策略。
C#基础:反射

🗒️C#基础:装箱与拆箱

在C#编程中,装箱和拆箱是值类型与引用类型之间相互转换的过程。装箱将值类型转换为引用类型,拆箱将引用类型转换回值类型。装箱过程在堆上创建新对象并复制值,拆箱过程将值复制回值类型变量。装箱和拆箱操作会影响性能,应尽量减少使用。使用泛型集合、避免混合使用值类型和引用类型、使用值类型接口或抽象基类定义可以减少装箱和拆箱的操作。
C#基础:装箱与拆箱

🗒️C#基础:值类型与引用类型

在C#编程语言中,数据类型被分为值类型和引用类型。值类型直接存储数据值,而引用类型存储数据的内存地址。值类型包括基本数据类型、枚举类型和结构体,而引用类型包括类、数组、委托和接口。字符串类型是引用类型的特殊情况,具有不可变性和值比较的特点。在实际应用中,选择值类型还是引用类型需要考虑数据大小、生命周期和可变性。性能方面,值类型在栈上存储,分配和回收速度快,但复制数据的开销较大;引用类型在堆上存储,复制内存地址的开销较小,但分配和回收成本较高。正确理解和选择数据类型对于编写高效、可维护的C#代码至关重要。
C#基础:值类型与引用类型
漫谈C# Language Version、.Net Framework、Mono、.Net Standard以及.Net Core

🗒️AssetDependencyHash 详解

在Unity中,AssetDependencyHash是表示资产及其所有直接和间接依赖项内容的哈希值。它主要用于判断资产是否发生变化,以确定是否需要重新导入或编译。影响AssetDependencyHash值的因素包括资源的路径、内容、元数据文件、目标导入平台和导入器版本。通过实验验证,我们得出结论:资源的文件名、内容和对应的META文件的变化会导致AssetDependencyHash的变更,而资源的所在目录、直接依赖和间接依赖的变化不会导致AssetDependencyHash的变更。
AssetDependencyHash 详解

🗒️算法解惑:快速选择

快速选择算法是一种高效查找数组中第k小元素的方法,基于快速排序原理,但不完全排序整个数组。本文详细介绍了算法原理、实现步骤,并提供了C#代码示例,便于理解和应用于实际编程问题中。
算法解惑:快速选择