自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 收藏
  • 关注

原创 AssetBundle打包

AssetBundle打包

2024-04-08 15:03:18 917

原创 UnityAPI的学习——Matrix4x4类

在脚本中通常用Vector3、Quaternion、Transform等类的属性和方法来对物体进行交换,Matrix4x4类通常用在一些比较特殊的地方,如对摄像机的非标准投影变换。

2024-03-06 17:21:08 549

原创 UnityAPI的学习——Quaternion类

Quaternion又称为四元数,由x、y、z和w这4个分量组成,属于struct类型。在Unity中,用Quaternion来存储和表示对象的旋转角度。

2024-03-06 16:47:27 442

原创 UnityAPI的学习——Random类

Random类是Unity中用于产生随机数的类,不可实例化,只有静态属性和静态方法。

2024-03-06 14:17:42 416

原创 UnityAPI的学习——Rigidbody类

Rigidbody类的功能是用来模拟GameObject对象在现实世界中的物体特性,包括重力、阻力、质量、速度等。

2024-03-05 17:53:35 929

原创 UnityAPI的学习——Vector3类

Vector3类属于结构体类型,用来表示Unity中的三维向量或三维坐标点。

2024-03-05 14:46:18 901

原创 UnityAPI的学习——Vector2类

Vector2类是Unity中用来存储二维向量或二维点坐标的结构体类型。

2024-03-02 18:14:09 466

原创 UnityAPI的学习——Transform类

Transform类继承自Component类,并实现了IEnumberable接口。Transform是GameObject必须拥有得一个组件,用来管理所在GameObject对象的坐标位置、选择角度、和大小缩放。Transform实现了IEnumberable接口,因此可以在程序中使用foreach()方法快速遍历子物体的Transform结构。

2024-03-02 12:26:10 981

原创 UnityAPI的学习——Time类

1、captureFramerate属性:用于设置或返回帧速率的值。当captureFramerate的值比0大时,时间会以每帧(1.0/captureFramerate)秒前进,不考虑真实时间。2、deltaTime属性:用于返回从上一帧到现在所经历的时间,以秒为单位。3、fixedDeltaTime属性:用于返回以固定频率更新时,相邻两帧的时间间隔(只读)。4、frameCount属性:用于返回从游戏启动到现在已经更新的频率总数(只读)。

2024-03-01 17:46:36 456

原创 UnityAPI的学习——Object类

Object类是Unity中所有对象的基类、例如GameObject、Component、Material、Shader、Texture、Mesh、Font等都是Object的子类。

2024-02-29 17:25:53 954

原创 UnityAPI的学习——Mathf类

Mathf类是Unity中的数学类,属于结构体类型,只有静态属性和静态方法,即不可实例化。

2024-02-29 11:58:41 940

原创 UnityAPI的学习——HideFlags类

HideFlags为枚举类,用于控制Object对象的销毁方式及其检视面板中的可视性。

2024-02-28 17:10:00 495

原创 GameObject类API学习

activeInHierarchy属性的功能是返回GameObject实例在程序运行时的激活状态,它只有当GameObject实例的状态被激活时才会返回ture。而且它会受其父类对象激活状态的影响,如果其父类至最顶层的对象中有一个对象未被激活。GameObject和Component是Unity中很常用而且十分重要的两个类,二者的实例属性和实例方法相似,只是在使用方法上稍有区别。2、GameObject类和Component类的属性名称和方法名称基本相同,各个属性和方法的用法也很相近,但它们任有一些差别。

2024-02-28 16:44:11 915

原创 UnityAPI的学习——Camera类

set;功能:此属性的功能是设置摄像机的自定义投影矩阵。此属性常在一些特效场景喜爱用到,在切换变化矩阵时通常需要先用camera.ResetProjectMatrix()重置camera的变化矩阵。

2024-02-28 15:12:33 915

原创 Unity中的GUI

GUI:游戏用户交互界面,一个代码驱动的UI系统GUI的主要作用1、作为程序员的调试工具2、为脚本组件创建自定义监视面板3、创建新的编辑器窗口和工具以拓展Unity本身(一般作为内置游戏工具)GUI工作原理1、OnGUI是每帧执行,相当于专门绘制GUI界面的函数2、一般只在其中执行GUI相关界面绘制和操作逻辑3、该函数在OnDisable之前,在LateUpdate之后4、只要是继承了Mono的脚本,都可以在OnGUI中绘制GUIGUI空间的共同点。

2024-02-03 11:43:56 1277

原创 常见异常类及异常对象属性

程序运行的过程中,会发生各种非正常状况,比如程序运行时磁盘空间不足,网络连接中断,被操作的文件不存在。(异常在程序运行时发生)针对这种情况下,C#程序引入了异常处理机制,通过异常处理机制对程序运行时出现的各种问题进行处理。语法错误(编译错误)——编辑器逻辑错误——程序调试语义错误(运行错误)——异常处理C#提供了大量的异常类,这些类都继承自Exception类。

2024-01-20 17:49:26 1129

原创 C#中的文件操作

FileStream类表示在磁盘或网络路径上指向文件的流,并提供了在文件中读写字节和字节数组的方法(FileStream类提供的方法操作的是字节数据),通过这些方法FileStream对象可以读取诸如图像、声音等文件,也就是说FileStream能够处理各种数据文件。FileStream类有很多重载的构造方法,其中最常用的是带有三个参数的构造方法path:文件路径名mode:表示如何打开或创建文件(有 FileMode.Append、FileMode.Create、FileMode.Open等)

2024-01-18 15:34:05 1032

原创 嵌套类与匿名类

注意:外部类与嵌套类的非静态成员可以重名,在对非静态成员访问时,需要先创建它所在类的对象。在一个类中,通常是使用构造方法来为属性赋值吗,当一个类中属性过多时,不可能为每种情况都创建一个构造方法,此时可以使用对象初始化器为属性赋值,对象初始化器的语法格式。有时候某个类的实例只会用到一次,这时可以使用匿名类的方式创建实例,即无需显式定义一个类,就可以将一组只读属性封装到单个对象中。在C#中,可以将类定义在另一个类的内部,被包含的类称作嵌套类,而包含嵌套类的类就称作外部类。

2024-01-17 11:24:52 371

原创 正则表达式

正则表达式是用来处理字符串的,针对字符串进行较为复杂的处理。正则表达式就是由普通字符以及特殊字符(称为元字符)组成的“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑,也即是说正则表达式用来描述字符串的特征,用于字符串匹配字符串提取字符串替换。类似于通配符,比如*.jpg ,?ab, 这里 *、?是通配符,类似于元字符。又如like ‘张%’。

2024-01-12 16:54:03 894

原创 C#中的垃圾回收(简单理解)

在C#中,当一个对象称为垃圾后任会占用内存空间,时间一长,就会导致内容空间的不足。在这种机制下,程序员不需要过多关心垃圾对象回收的问题,.Net运行环境会启动垃圾回收器将这些垃圾对象从内容中释放,从而使程序获得更多可用的内容空间。注意:垃圾回收操作是在后台完成的,程序结束后,垃圾回收的操作也会终止。为了更好的观察垃圾对象被回收的过程,定义了Student类的析构函数,它的写法与构造方法类似,只不过需要再函数名称前面加上“~”号,析构函数会再对象销毁时,被垃圾回收器调用。析构函数既没有修饰符,也没有参数。

2023-12-29 18:28:11 641

原创 C#中的集合

在程序开发中,如果List< T > 泛型集合和Dictionary<Tkey,TValue>泛型集合都不能满足实际需求,还可以自定义泛型。自定义泛型可以根据用户的不同需求,灵活的设计属性和方法。语法格式如下:[修饰符] class类名<类型占位符>程序代码自定义泛型与普通类的语法格式相似,唯一的区别就是多了一个类型占位符。类型占位符通常用T来表示,可以自行修改,但要遵循变量的命名规范。//创建自定义泛型对象myClass//调用Add()方法添加一个元素。

2023-12-29 16:36:20 1114

原创 C#常用类

如果两个字符串相同,则返回0;与String类不同的是,StringBuilder类创建的字符串的长度是可以改变的,它类似一个字符容器,当在其中添加或删除字符时,并不会产生新的StringBuilder对象,因此可以让字符串的拼接操作变的更加高效。使用的原因:在程序开发中,经常会使用大量的字符串,由于字符串是不可变的,因此在代码中频繁的拼接字符串会创建多余的对象,从而影响程序的性能。第一个构造方法是无参数的,通过它创建的Random实例对象每次使用的种子值是随机的,因此每个对象产生的随机数不同。

2023-12-29 14:52:24 1531

原创 Unity开发过程中的一些小知识点

将生成的游戏物体放在同一的父级对象下,通过该API即可获取这些游戏图在同级层视图上的位置(按Hierarchy窗口中顺序进行排序)。1、LineRenderer是Unity提供的一个用于画线的组件,可以用于在场景中绘制线段。使用SubString()方法还可以用于截取字符串做判断,可以做一些像是敏感词这样的功能。可以直接在Hierarchy面板上,搜索想要找的脚本名。YYYY:表示四位数的年份,比如2024年。MM:表示两位数的月份,比如12月。DD:表示两位数的日期,比如23日。

2023-10-24 18:03:20 187

原创 设计模式之备忘录模式

Memento(备忘录): 负责存储Originator对象的内部状态,并可防止Originator以外的其他对象访问备忘录Memento。备忘录有两个接口,Caretaker只能看到备忘录的窄接口,它只能将备忘录传递给其他对象。Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态。备忘录模式:在不破坏封装性的前提下,捕获一个对象内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。

2023-10-23 12:29:12 108

原创 UnityAPI的学习——Application类

UnityAPI中的Application类

2023-09-26 14:22:43 330

原创 设计模式之观察者(发布订阅)模式

订阅发布模式,发布者的消息发送者不会讲消息直接发送给订阅者,这意味着发布者和订阅者不知道彼此的存在。在发布者和订阅者之间存在第三个组件,称为消息代理或调度中心和中间件,它维持着发布者和订阅者之间的联系,过滤所有发布者传入的消息并相应地发布它们给订阅者。2、发布者与订阅者耦合性降低,发布者只管发布一条消息后,订阅者只监听发布者的事件名,只要发布者的事件名不变,它不管发布者如何改变。的,让耦合的双方都依赖于抽象,而不是依赖于具体,从而使得各自的变化都不会影响另一边的变化。订阅发布是观察者模式的一种变种。

2023-09-23 12:24:38 327

原创 设计模式之组合模式

组合模式,将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。

2023-09-20 16:57:55 424

原创 设计模式之享元模式

也可以讲一些共享组件定义为类的成员,成为内部状态;提供工厂方法产生对应的组件,当产生的是共享组件时,就加入到Flyweight管理容器内。UnsharedConcreteFlyweight(不可以共享的组件)实现Flyweight接口,也可以选择不继承自Flyweight接口。产生的组件时可以共享的,并加入到Flyweight管理器中。内部通常使用容器类来存储共享的Flyweight组件。ConcreteFlyweight(可以共享的组件)可以定义为单独的组件,不包含任何共享资源。

2023-09-20 15:34:17 384

原创 设计模式之抽象工厂

这种类型的设计模式属于。3、需要创建华为和苹果的工厂类,先将工厂类进行抽象,里面有创建两个产品的方法,返回的是产品的接口类。2、提供一个产品类的库,所有的产品以同样的接口出现,从而使得客户端不依赖于具体的实现。产品族:一个工厂类生产出的产品属于一个产品族,视作具体工厂类生产出来的具体产品类。产品等级:不同工厂类的同一个产品等级,产品等级可以视作继承抽象工厂类的工厂类。4、创建华为和苹果的工厂实现类,继承工厂类接口,实现创建各自产品的方法。5、客户端调用时,直接用工厂接口类创建需要的工厂,拿到对应的产品。

2023-09-19 14:43:49 362

原创 设计模式之建造者模式

建造者(Builder)模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。如果使用建造者模式,那么用户就只需要建造的类型就可以得到它们,而具体建造的过程和细节就不需知道了。建造者模式是在当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时适用的模式。

2023-09-18 18:21:05 269

原创 设计模式之原型模式

原型模式其实从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

2023-09-18 17:34:58 258

原创 设计模式之中介者模式

ConcreteMediator是具体中介者对象,实现抽象类的方法,它需要知道所有具体同事类,并从具体同事接收消息,向具体同事发出命令。大量的连接使得一个对象不可能在没有其他对象的支持下工作,系统表现为一个不可分割的整体,所以,对系统的行为进行任何较大的改动就十分困难了。ConcreteColleague是具体抽象类,每个具体同事只知道自己的行为,而不了解其他同事类的情况,但它们却都认识中介者对象。,用一个中介对象来封装一系列的对象交互。Mediator是抽象中介者,定义了同事对象到中介者对象的接口。

2023-09-15 15:01:19 180

原创 设计模式之外观模式

可以为新系统开发一个外观Facade类,来提供设计粗糙或高度复杂的遗留代码的比较清晰的简单的接口,让新系统与Facade对象交互,Facade与遗留代码交互所有复杂的工作。外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。从原本需要操作的多个子系统的情况,改为只需要面对一个整合后的界面。整合所有子系统的接口及功能,并提供高级界面(或接口)供客户端使用。增加外观Facade可以提供一个简单的接口,减少它们之间的依赖。

2023-09-15 12:22:53 555

原创 设计模式之职责链模式

结果是职责链可简化对象的相互连接,它们仅需保持一个指向其后继者的引用,而不需保持它所有的候选接受者的引用。ConcreteHandler类,具体处理类,处理它所负责的请求,可访问它的后继者,如果可处理该请求,就处理,否则就该请求转发给它的后继者。这里发出这个请求的客户端并不知道这当中的哪一个对象最终处理这个请求,这些系统的更改可以在不影响客户端的情况下动态地重新组织和分配责任。IStageHandler:定义可以处理“过关判断”和“关卡开启”的接口,也包含指向下一个关卡对象的引用。

2023-09-14 16:32:30 288

原创 设计模式之桥接模式

ICharacter:角色的抽象接口拥有一个IWeapon对象引用,并且在接口中声明了一个武器攻击目标WeaponAttackTarget()方法让子类可以调用,同时要求继承的子类必须在Attack()中重新实现攻击目标的功能。IPlayer、IEnemy:敌人与玩家角色,实现攻击目标Attack()时,只需要调用父类的WeaponAttackTarget()方法,就可以使用当前装备的武器攻击对手。合成则是一种强的‘拥有’关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。

2023-09-13 18:46:39 367

原创 设计模式之适配器模式

当系统的数据和行为都正确,但接口不符时,我们应该考虑使用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。这里外籍球员与球员就属于两个不同的类,通过Translator来进行适配,可以在不改变两个类的基础上,实现功能复用。如果想使用一个已经存在的类,但如果它的接口,也就是它的方法和你的要求不相同时,就应该考虑使用适配器模式。:适配器模式主要应用于希望复用一些现存的类,但接口又与复用环境要求不一致的情况。两个类所做的事情相同或者相似时,但是具有不同的接口时要使用它。

2023-09-11 19:11:19 133

原创 游戏中的概率实现

一般而已计算机中是没有概率这个概念的,但是很多游戏中却需要用到概率,比如说一些抽卡游戏,不同卡牌抽到的概率不同。这里我写了一个非常初级的获得概率方法,并实现概率的加减。

2023-09-05 11:02:26 525

原创 Unity中人物控制器

在Unity中控制器是很常见的功能,一般的人物控制器有两种方法,一种是通过代码实现,另外一种就是通过Unity中的API实现。这里要注意,你的人物是否需要添加刚体组件,这里我选择不加刚体组件,通过transform来控制人物移动。步骤1:通过方向键控制人物移动。步骤1:通过方向键控制人物移动。首先对控制器步骤进行分析。这里主要介绍第一种方法。步骤2:控制摄像机跟随人物。2、控制摄像机跟随人物。

2023-08-12 22:22:22 720

原创 游戏场景的转换——状态模式

2、与每一个状态有关的对象,都必须在SceneManager类中被保留,当这些对象被多个状态共享时,容易产生混淆。1、只要增加一个状态,则所有的Switch(m_state)的程序代码都需要增加对应的程序代码。1、具有“状态”属性的类,可以指定相关的接口,让外界能够得知状态的改变或通过操作让状态改变。1、指定状态的接口,负责规范Context(状态拥有者)在特定状态下要表现的行为。例如,玩家待机中,该有的玩家动作、玩家模型动画,等不同的行为。例如,玩家战斗中、待机中、交易中,等等不同的状态。

2023-05-31 21:14:30 1705

原创 关于C#中委托的思考与实例

委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用 If-Else(Switch)语句,同时使得程序具有更好的可扩展性。新的委托对象包含指向某个方法的一用,这个方法的签名和返回类型必须跟第一步中定义的委托类型一致。委托的本质:委托的本质就是将可执行的代码从一个方法传递到另一个方法;委托的作用:委托是一种类型安全的函数回调机制,它不仅能够调用实例方法,也能调用静态方法,并且具备执行多个方法的能力。1、声明一个委托类型。

2023-05-03 11:15:53 824 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除