unity的c#之旅
文章平均质量分 85
时生丶
不想当画家的程序员不是好厨师
展开
-
Unity错误记录——UIDocument重新激活后,脚本内编写的UI交互失效
如题,本人使用UITookit编写了一个UXML的UI界面后,将其搭载到了一个UIDocument对象上,并将该对象作为UI相机的子对象以实现UI界面与相机绑定。要解决上面两个问题其实很简单,就是要弃用。原创 2023-04-27 16:28:41 · 387 阅读 · 0 评论 -
unity的C#学习——多线程编程(线程的生命周期、创建与管理)与线程相关类
本文介绍了C#当中的多线程编程。除了分析线程类的创建与控制方式,还对线程池、异步编程、同步线程等与线程相关的类做了概念介绍,并列举了一些常用的方法和属性。。原创 2023-04-07 08:00:00 · 2692 阅读 · 0 评论 -
unity的C#学习——不安全代码(声明不安全代码块:实现C/C++指针的创建与相关操作)
不安全代码是在C#中实现C语言/C++中的指针相关操作,主要通过 unsafe 关键字声明一个不安全代码框,在该代码框内执行的指针操作基本上与C/C++中相同。此外C#中还涉及到一个fixed关键字,通过固定托管对象的地址,辅助指针检索数组等托管对象。原创 2023-04-04 21:53:01 · 1653 阅读 · 0 评论 -
unity的C#学习——委托、事件和匿名方法
本文主要介绍了委托在C#中的使用,涉及委托的声明、委托的实例化与调用等。此外还介绍了委托与匿名方法、lambda表达式的结合使用方法,以及事件是如何通过委托实现创建、触发和响应处理。文中将委托、事件、匿名方法分为三部分,分别介绍了它们的概念、声明与使用实例,同时每个部分中也包含对它们各自的特性以及它们之间的关联性的介绍。原创 2023-04-04 15:22:33 · 1333 阅读 · 0 评论 -
unity的C#学习——泛型的创建与继承、泛型集合类、泛型中的约束和反射
本文详细介绍了泛型,包括对泛型名称的理解、如何在代码中创建并调用泛型、如何继承泛型,此外还将泛型集合类与普通集合类做了用法上的对比,并在最后介绍了如何将泛型与约束、反射结合使用。原创 2023-04-01 12:16:47 · 1162 阅读 · 0 评论 -
unity的C#学习——特性(添加元数据)和反射(获取元数据)
本文介绍了C#中两个较难的高级用法:特性和反射。其中特性的主要用来给程序集成员添加额外的元数据,而想要获取这些元数据,就需要依靠反射实现。原创 2023-04-01 04:48:39 · 1343 阅读 · 0 评论 -
unity的C#学习——预处理指令、异常处理和文件的输入输出
文中首先介绍了C# 中的预处理指令,它是用来指示编译器在编译代码之前执行一些预处理操作的特殊指令。预处理指令以井号 # 开始,并且必须出现在代码的最外层,不能包含在方法或类的内部。接着介绍了C# 中什么是异常,以及如何捕获并处理异常、主动抛出异常、自定义异常类。最后介绍了文件相关的操作,包括对一般文件的读写和二进制文件的读写。同时还介绍了如何获取文件本身和文件目录的相关信息(调用属性),并进行各种操作(调用方法)。原创 2023-03-27 04:36:47 · 1829 阅读 · 0 评论 -
unity的C#学习——属性、索引器和this关键字
本文首先介绍了C#属性的概念(与字段的区别,以及属性本身的意义),然后介绍了通过访问器get和set定义属性的语法,并介绍了自动属性、抽象属性、只读属性三者的区别与应用场景,同时在只读属性一节中补充介绍了初始化器。之后概述了this关键字的三种用处。最后介绍了一种特殊的“属性”——索引器,介绍了索引器的定义与使用方法,并拓展了重载索引器与多参数索引器的应用。原创 2023-03-31 00:52:34 · 1006 阅读 · 0 评论 -
unity的C#学习——类的成员函数与继承、接口的定义与实现
本文介绍了C#的类的概念,以及类的定义和继承,以及类的方法的定义、不同类型的方法(成员函数)间区别:构造函数、析构函数、静态函数。此外还详细说明了如何使用派生类继承抽象类与实现接口,以及这二者间的区别。原创 2023-03-26 10:32:45 · 1421 阅读 · 0 评论 -
unity的C#学习——静态多态性(函数重载、运算符重载)与动态多态性(抽象类、虚方法)
多态是同一个行为具有多个不同表现形式或形态的能力。多态性意味着有多重形式,在面向对象编程范式中,多态性往往表现为“一个接口,多个功能”。多态性可以是静态的或动态的:在静态多态性中,函数的响应是在编译时发生的,主要借由重载(overload)实现。在动态多态性中,函数的响应是在运行时发生的,主要借由重写(override)实现。在 C# 中,每个类型都是多态的,因为包括用户定义类型在内的所有类型都继承自Object。多态就是同一个接口,使用不同的实例而执行不同操作。原创 2023-03-26 08:29:10 · 1335 阅读 · 1 评论 -
unity的C#学习——方法的定义、调用、递归与参数传递
要使用一个方法,需要先定义方法,再调用方法。当定义一个方法时,从根本上说是在声明它的结构的元素。对于含有参数的方法,C#中包含三种传参方式:直接传参、引用传参和输出传参。原创 2023-03-25 15:16:55 · 1191 阅读 · 0 评论 -
unity的C#学习——数组、字符串和结构体
介绍了c#中数组的定义与属性、方法;字符串的定义与属性、方法;结构体的定义与特点,同时简单对比了类和结构的区别。原创 2023-03-25 20:28:39 · 2778 阅读 · 0 评论 -
unity的C#学习——可空类型、可空运算符与空值合并运算符
文中简要介绍了一下C#在C语言基础上引入的可空数据类型——nullable类型,以及对该类型的两种运算符:可空运算符与空值合并运算符,后者通常也叫“null合并运算符”。原创 2023-03-23 14:52:50 · 971 阅读 · 1 评论 -
unity的C#学习——foreach循环相关:IEnumerable接口、LINQ语言集成查询、可枚举对象与枚举类型
foreach循环是c#不同于c语言的一种循环方式,但如果你学过python应该对这种循环遍历不陌生。这种通过in语句和可枚举对象实现的循环,内部还涉及到IEnumber接口和LINQ语言集成查询的知识,这里将做出简单介绍。同时为了避免混淆枚举类型和可枚举对象,在本文中也将一并解释两者之间的差异。原创 2023-03-23 02:29:25 · 1713 阅读 · 0 评论 -
unity的C#学习——封装和抽象、访问修饰符与静态修饰符
介绍常见的访问修饰符public、private、protected和internal,用于确定变量和方法的访问级别,即作用域;同时还介绍了静态static,用于实现变量和方法的“去实例对象”化,直接归属于类本身。原创 2023-03-22 20:35:15 · 686 阅读 · 0 评论 -
unity的C#学习——静态常量和动态常量的定义与使用
在C#中,常量是一种不可改变的量,一旦被定义,其值就不能被修改。C#中有两种类型的常量,静态常量和动态常量。原创 2023-03-22 19:05:26 · 1563 阅读 · 0 评论 -
unity的C#学习——浮点常量、字符常量和字符串常量
有效数字(significant digits)是指数值中的数字中不包括前导零和末尾的零的数字,它们是对数值精度的一种度量。:使用e或E来表示10的幂次方(默认为double类型),例如:1.2e-3表示0.0012,2.5E2表示250。:使用小数点来表示浮点数(默认为double类型),例如:3.14、0.5、-1.23等等。:用于标识十进制浮点常量(decimal类型),例如:1.2m、0.5M、-1.23m等等。:用于标识浮点常量(float类型),例如:3.14f、0.5F、-1.23f等等。原创 2023-03-22 17:23:49 · 1022 阅读 · 0 评论 -
unity的C#学习——标识符号、关键字与数据类型及其转换方式
所以对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。将一个 byte 类型的变量赋值给 int 类型的变量,编译器会自动将 byte 类型转换为 int 类型,不需要显示转换。动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。可以存储任何类型的值在动态数据类型变量中,这些变量的类型检查是在运行时发生的。例如,将一个 int 类型的变量赋值给 byte 类型的变量,需要显示转换。原创 2023-03-17 16:50:23 · 2295 阅读 · 0 评论 -
unity的C#学习——Convert.ToInt32() 与 int.Parse() 的区别
需要注意的是,对于无法转换为整型的字符串,Convert.ToInt32() 方法和 int.Parse() 方法都会抛出异常。对于整型变量作为参数:Convert.ToInt32() 可以接受各种类型的参数,包括整型变量。而 int.Parse() 只能接受字符串作为参数。Convert.ToInt32() 和 int.Parse() 都是将字符串转换为整型的方法,但它们之间有一些区别。返回值类型:Convert.ToInt32() 返回的是整型值,而 int.Parse() 返回的是整型变量。原创 2023-03-18 10:21:10 · 354 阅读 · 0 评论 -
unity的C#学习——main方法的定义与使用
需要注意的是,程序的入口点只能有一个,所以只能执行一个Main方法。如果需要在程序中执行多个Main方法,可以将它们封装到一个公共方法中,然后在作为入口点的Main方法中依次调用这些方法。在C#中,程序入口点是一个名为Main的方法,这是C#应用程序的默认入口点。,因为C#是一种面向对象的编程语言,所有代码都必须定义在类中。Main方法是程序的入口点,它告诉编译器程序从哪里开始执行,因此必须定义在一个类中。在C语言中,Main函数必须定义在程序的最后,否则就需要在Main函数前申明后续定义的内容。原创 2023-03-16 19:59:33 · 1545 阅读 · 0 评论 -
unity的C#学习——命名空间的定义与访问、using语句的常见用法
C#中的using语句有两种用法,一种是用于引入命名空间,另一种是用于自动释放资源。这样,在代码中就可以直接使用List类型,而不需要使用完全限定名。还有一种就是可以通过using语句创建一个作用域,在作用域结束时自动释放内部资源。原创 2023-03-16 17:47:17 · 3156 阅读 · 0 评论 -
unity的使用心得——标签Tag的作用及修改方法
除了以上的方式,你也可以在“Edit -> Project Settings -> Tags and Layers”中打开标签编辑器,从而可以管理和修改所有标签,包括默认标签和自定义标签。Unity默认提供了一些常用的标签,例如“Untagged”、“Player”、“MainCamera”等。点击“Tag”属性旁边的下拉菜单,可以看到Unity默认提供的标签列表和“Add Tag”选项。回到“Tag”属性,可以看到新的标签已经添加到标签列表中,选择该标签即可将其应用到游戏对象。原创 2023-03-16 17:39:01 · 4121 阅读 · 0 评论