C#
文章平均质量分 82
是嘟嘟啊
一个放弃java转投游戏的热血战士!
展开
-
【Unity】Unity C#基础(十六)C#中的? 、?. 、?? 、??=
C# 8.0 及更高版本中可使用空合并赋值运算符?=,该运算符仅在左侧操作数的求值结果为 null 时,才将其右侧操作数的值赋值给左操作数。如果左操作数的计算结果为非 null,则?= 运算符不会计算其右操作数。用于定义引用类型和可空类型的默认值。如果此运算符的左操作符不为Null,则此操作符返回左操作数,否则返回右操作数。为了使值类型也能使用可空类型,就可以使用“?”来表示,表现形式为“T?是System.Nullable的缩写,更便于读取。引用类型能用空引用来表示一个不存在的值,但是值类型不能。原创 2023-04-11 09:59:41 · 1192 阅读 · 1 评论 -
【Unity】Unity C#基础(十五)implicit 隐式类型转换、explicit 显式类型转换
Implicit提高了代码的可读性,但程序员需要自己保证转换不引发异常且不丢失信息。Explicit可阻止编译器静默调用可能产生意外后果的转换操作。前者更易于使用,后者能向阅读代码的每个人清楚地指示您要转换类型。C#中的Explicit和Implicit更多内容请查看总目录【Unity】Unity学习笔记目录整理。转载 2023-04-10 11:11:27 · 976 阅读 · 0 评论 -
【Unity】Unity C#基础(十四)注释
在 C# 智能注释时,常常希望它能在开发时显示为换行,使得提示更加友好!/// 是智能注释也称xml注释,会在被编译,并生成xml文件在可执行文件中。在 View -> Task List ,选择 Comments ,即可以查看项目中所有标记 TODO 的位置。“//TODO:此处还没测试通过”/* 注释内容 */原创 2022-11-11 16:09:59 · 3113 阅读 · 0 评论 -
【Unity】Unity开发进阶(八)Windows解析Excel报错问题、跨平台解析Excel文件
Excel文件的读取问题 ; Unity读取Excel文件报错 ; Windows解析Excel报错 ; Excel.ExcelOpenXmlReader.IsDBNull ; Unity Excel.ExcelOpenXmlReader.IsDBNull ; NullReferenceException: Object reference not set to an instance of an object ; 读取Excel文件时出现null的解决方法 ;原创 2022-10-19 23:16:15 · 1394 阅读 · 1 评论 -
【Unity】U3D TD游戏制作实例(二)配置关卡、加载Excel配置文件
然后再创建一个 LevelManager 脚本来读取配置,这个 LevelManager 后期将会实现关卡的加载、开始、结束,以及生成敌人等功能。前面三个小的是第一轮的,中间两个大的是第二轮的,后面小的是第三轮的。本章主要实现通过 Excel 配置关卡数据, Unity 解析 Excel 生成关卡,实现自动刷新敌人。注意,EnemyGeneratePoint 的位置要放在地图上合理的位置上,不然导航将会报错。用 Excel 写一个配置文件,上面预留两行,左侧预留一列方便后期做填写说明。原创 2022-09-26 16:13:36 · 2239 阅读 · 2 评论 -
【Unity】Inspector中脚本中文乱码问题
打开项目时,EditorConfig 插件会在打开文件的目录和每个父目录中查找 .editorconfig 文件,如果到达根文件路径或EditorConfig 文件root = true,则文件搜索将停止。这种情况,我们可以使用 EditorConfig 插件来统一处理,而且这个插件还可以帮助我们规范代码,更方便团队管理代码格式。配置文件写好后,保存,然后重启 VS,后面再保存的文件就会使用 UTF-8 来处理了。在编辑器扩展商店中搜索 EditorConfig ,点击下载,成功后重启 VS。原创 2022-09-26 00:03:03 · 2207 阅读 · 2 评论 -
【Unity】Unity常用类:向量Vector3、四元数Quaternion
但如果有任意三个向量为标准化向量(大小为1),且彼此正交(互相垂直),他们就可以被认定为轴。Vector3提供了一些静态变量,方便使用常用的方向,例如Vector3.up代表了Vector3(0, 1, 0)。通常使用此方法来做轴旋转(对Transform进行转转),使其一个轴(如 y 轴)跟随世界空间中的目标方向。正交标准化可以用来生成新的坐标系,但与正常坐标系不同的是,其正切向量与副向量是不固定的。例:用脚本创建物体,第三个参数角度可使用,使用后所创建的物体将于世界坐标一致。获取两个四元数之间的角度。原创 2022-09-09 17:57:48 · 6079 阅读 · 0 评论 -
【Unity】Unity 几何知识、弧度、三角函数、向量运算、点乘、叉乘
向量是一个数字列表,表示各个维度上的有向位移。它是一个有大小有方向的物理量。大小就是方向的模长,方向描述了空间中向量的指向。向量可以用来表示物体的位置和方向。原创 2022-09-07 14:02:50 · 4645 阅读 · 5 评论 -
【Unity】Unity开发进阶(七)双刃剑:扩展方法
扩展方法可以说是一把双刃剑,用好了锋利无比,用不好也有可能会自伤,但总得来说还是功大于过,特别适合具有经验的团队使用。原创 2022-07-30 23:06:50 · 2020 阅读 · 0 评论 -
【Unity】Unity开发进阶(六)UnityEvent使用与源码解析
UnityEvent其实就是Unity帮我们提前写好的用于处理事件的功能,其作用是减去了自己写委托的过程,且提高了开发的规范性,方便代码整合。更多内容请查看总目录【Unity】Unity学习笔记目录整理httpshttps。...原创 2022-07-29 16:38:37 · 8989 阅读 · 1 评论 -
【Unity】Unity开发进阶(五)ArrayHelper数组帮助类
如果LINQ展开来讲其实也会有很多内容,类似于Hibernate,我自己之前做Java开发时也开发过类似的功能。其实此类功能开发并不复杂,从功能上来讲大部分就是查询和排序之类的,其实现原理也大多数是利用反射+表达式(LINQ中又利用到了委托),从性能方面考虑的话,反射和委托其实都不适合反复使用(因为经常会造成内存泄漏),所以我个人觉得非必要情况下尽量不使用LINQ,基本的功能自己实现就好了,而且自己实现的代码便于掌控,更便于自己掌控项目性能。...原创 2022-05-28 12:14:58 · 967 阅读 · 2 评论 -
【Unity】Unity开发进阶(四)Unity脚本单例工具(必备工具)
在Unity场景中,经常有很多脚本需要引入,而这些脚本中,有很大一部分都是只需要引用一次,也只需要进行一次实例化,此时我们可以提供一个工具用于自动获取该脚本的实例对象,并保证全场景中只包含这一个实例,还能在脚本未被引入时实现自动引入脚本。这是一个非常实用的工具,几乎每个项目都会用到。该工具的特点:自动获取该脚本的实例对象。保证全场景中只包含这一个实例。在脚本未被引入时实现自动引入脚本。具体代码如下:/// <summary>/// Mono脚本单例工具/// 使用场景:所有在原创 2021-09-06 18:34:27 · 1622 阅读 · 0 评论 -
【Unity】Unity内存管理与优化(三)
文章目录Unity内存管理内存细分分析内存- 分析内存消耗- 分析内存效率内存管理性能增强垃圾回收策略手动JIT编译值类型和引用类型- 传值和传引用- 结构体是值类型- 数组和引用类型- 字符串是不可变的引用类型字符串连接- 字符串池- StringBuilder- 字符串格式化拆装箱数据布局的重要性Unity API中的数组对字典使用InstanceIDforeach循环协程闭包.NET库函数临时工作缓冲区对象池预制池IL2CPP优化WebGL优化Unity、MONO和IL2CPP的未来C# Job Sy原创 2021-09-02 09:55:54 · 546 阅读 · 0 评论 -
【Unity】Unity C#基础(十三)泛型(Generic)
文章目录泛型(Generic)泛型(Generic)的特性泛型类泛型方法泛型委托继承和泛型泛型方法虚拟方法泛型参数隐式强制转换泛型参数显示强制转换泛型参数强制转换到其他任何类型使用is和as运算符泛型约束派生约束构造函数约束值约束引用约束多个泛型参数C#泛型与Java泛型泛型(Generic)泛型(Generic) 允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。C#的泛型,无论是源码,IL语言,还原创 2021-08-31 13:55:08 · 3544 阅读 · 0 评论 -
【Unity】Unity 常用类
Unity核心类图更多内容请查看总目录【Unity】Unity学习笔记目录整理原创 2021-08-28 14:40:56 · 1035 阅读 · 0 评论 -
【Unity】Unity C#基础(十二)特性Attribute、反射Reflection
特性常用特性自定义特性更多内容请查看总目录【Unity】Unity学习笔记目录整理原创 2021-08-28 13:16:39 · 3718 阅读 · 3 评论 -
【Unity】Unity C#基础(十一)预处理指令
预处理指令更多内容请查看总目录【Unity】Unity学习笔记目录整理原创 2021-08-28 13:14:15 · 3067 阅读 · 0 评论 -
【Unity】Unity开发进阶(二)自定义Update
自定义Update更多内容请查看总目录【Unity】Unity学习笔记目录整理原创 2021-08-27 23:49:15 · 1218 阅读 · 0 评论 -
【Unity】Unity 进程、线程、协程
进程线程协程更多内容请查看总目录【Unity】Unity学习笔记目录整理原创 2021-08-27 17:29:05 · 6500 阅读 · 2 评论 -
【Unity】Unity C#基础(十)委托、匿名方法、事件
委托事件原创 2021-08-27 17:12:23 · 1613 阅读 · 4 评论 -
【Unity】Unity C#基础(八)类、构造器、静态构造器、对象初始化器、析构函数、静态成员、常用类
类成员函数和封装构造函数析构函数静态成员更多内容请查看总目录【Unity】Unity学习笔记目录整理原创 2021-08-27 17:11:04 · 2640 阅读 · 0 评论 -
【Unity】Unity C#基础(九)继承、多态、抽象类、接口、抽象方法、虚方法、重写、覆盖
抽象类抽象属性接口委托抽象方法虚方法匿名方法更多内容请查看总目录【Unity】Unity学习笔记目录整理原创 2021-08-27 15:50:03 · 5212 阅读 · 0 评论 -
【Unity】Unity C#基础(七)枚举、索引器、结构体
结构体枚举更多内容请查看总目录【Unity】Unity学习笔记目录整理原创 2021-08-27 13:22:44 · 4065 阅读 · 2 评论 -
【Unity】Unity内存管理与优化(二)方法表、重写、隐藏、静/动态绑定、同步块索引
Unity内存管理分析内存分析内存消耗分析内存效率内存管理性能增强垃圾回收策略手动JIT编译值类型和引用类型传值和传引用结构体是值类型数组和引用类型字符串是不可变的引用类型字符串连接字符串池StringBuilder字符串格式化拆装箱数据布局的重要性Unity API中的数组对字典使用InstanceIDforeach循环协程闭包.NET库函数临时工作缓冲区对象池预制池IL2CPP优化WebGL优化Unity、MONO和IL2CPP的未来C#原创 2021-08-27 12:12:13 · 1252 阅读 · 0 评论 -
【Unity】Unity C#基础(六)运算符、运算符重载
运算符运算符重载更多内容请查看总目录【Unity】Unity学习笔记目录整理原创 2021-08-26 21:26:08 · 2720 阅读 · 0 评论 -
【Unity】Unity C#基础(五)数据类型:值类型、引用类型、指针类型
数据类型在 C# 中,变量分为以下几种类型:值类型(Value types)引用类型(Reference types)指针类型(Pointer types)值类型值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。当您声明一个 int 类型时,系统分配内存来存储值,通常这个值会直接存储与栈中,而不是堆中。值类型不可为空:int x = null(错误写法)。可空原创 2021-08-26 20:39:41 · 4625 阅读 · 2 评论 -
【Unity】Unity C#基础(四)命名空间
命名空间命名空间的本意是为了让代码结构更清晰,也顺便解决了类重名的问题。Java开发中不需要命名空间是因为java类是靠包名来区分的,而JavaScript这类的语言如果要实现区分同名对象就需要使用命名空间的思路设计代码。C#中提供了一套命名空间的规则,具体如下:定义和使用命名空间:using System;using first_space;namespace first_space{ class ClassA { public void func() {原创 2021-08-26 19:44:28 · 2871 阅读 · 0 评论 -
【Unity】Unity C#基础(三)封装、修饰符、方法、参数、扩展方法
当定义一个方法时,从根本上说是在声明它的结构的元素。访问修饰符,这个决定了变量或方法对于另一个类的可见性。返回类型,一个方法可以返回一个值。返回类型是方法返回的值的数据类型。如果方法不返回任何值,则返回类型为void。方法名称,是一个唯一的标识符,且是大小写敏感的。它不能与类中声明的其他标识符相同。参数列表,使用圆括号括起来,该参数是用来传递和接收方法的数据。参数列表是指方法的参数类型、顺序和数量。参数是可选的,也就是说,一个方法可能不包含参数。方法主体,包含了完成任务所需的指令集。...原创 2021-08-26 19:41:46 · 3249 阅读 · 0 评论 -
【Unity】Unity开发进阶(一)减少跨桥(上下文切换)
创建自定义的Update层减少跨桥(上下文切换)什么是桥?Unity中有三大内存域:托管域、本地域、内存域外部库。其中托管域主要存放我们编写的MonoBehaviour和自定义C#类,而本地域用于存放Unity底层功能,主要处理各个子系统(渲染管线、物理系统、用户输入系统等)中资源数据(纹理、音频文件、网格等)和内存空间的分配。最主要的是本地与包含了GameObject和Component等重要游戏对象的部分本地描述,这也是大多数内建Unity类(Transform、Rigidbody等)保存数据的原创 2021-08-26 11:35:34 · 2155 阅读 · 2 评论 -
【Unity】Unity内存管理与优化(一)内存域、堆栈、垃圾回收、内存泄漏、内存碎片
Unity内存管理在游戏开发的世界中,程序的优劣与内存的使用有着密不可分的关系。从很多方面来说Unity对于内存的使用并不是最优解,正因为如此,Unity的内存管理与优化就显得尤为重要。内存域垃圾回收内存碎片运行时垃圾回收多线程垃圾回收分析内存分析内存消耗分析内存效率内存管理性能增强垃圾回收策略手动JIT编译值类型和引用类型传值和传引用结构体是值类型数组和引用类型字符串是不可变的引用类型字符串连接StringBuilder字符串格式化拆装箱数据布局的重要性U原创 2021-08-25 14:46:19 · 9658 阅读 · 3 评论 -
【Unity】Unity开发进阶(三)对象排序工具、减少使用foreach
vs类设计器(类图工具)安装vs2019安装路径:工具 - 获取工具和功能 - 点击VS2019选项卡的修改按钮 - 单个组件标签页 - 搜索类设计器 - 勾选类设计器 - 修改。2017略有不同,不行百度一下。原创 2021-08-10 00:20:39 · 1122 阅读 · 0 评论 -
【Unity】Unity 面向对象原则及类与类的关系
面向对象从面向机器,到面向过程,再到面向对象,面向对象语言的发展史不过多赘述了。OO思想的重要性也不会在本章节中过多赘述。标题原创 2021-08-08 18:07:35 · 2513 阅读 · 0 评论 -
【Unity】Unity C#基础(二)类型转换、拆装箱
预处理指令C#特性自定义特性常用Attribute委托泛型C#索引器C#事件C#匿名方法原创 2021-08-08 17:26:50 · 4912 阅读 · 0 评论 -
【Unity】Unity C#基础(一)C#发展史
Unity的前世今生MONOUnity开发语言Unity编译运行过程跨平台CLSCTSCLRCLIjitaot编译运行过程方法及参数多态垃圾回收拆装箱字符串池枚举运算符脚本生命周期运算符重载命名空间预处理指令C#特性自定义特性常用Attribute进程、线程、协程委托泛型C#索引器C#事件C#指针C#匿名方法...原创 2021-08-08 15:07:33 · 2035 阅读 · 0 评论