自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 协程控制插值运算

【代码】协程控制插值运算。

2023-09-14 16:45:06 196

原创 =>符号含义

在上面的代码中,+=是在委托链上增加一个委托,(s,e) =>是一个lambda表达式,这个表达式创建一个委托,委托处理的主体就是=> 后面的部分。这里=>的用法相当于 { get;} = 即:将Sex字段设置为了只读属性,同时进行了赋值。=>主要有两方面的作用,一个限制属性状态,另一个简化匿名委托和Lambda。实际上, Lambda 表达式只是简化了匿名方法的语法而已。public string Sex => "男";用法二:Lambda表达式,匿名委托。用法一:定义只读属性。可以省去方法的定义。

2023-09-05 13:56:47 790

原创 Resources.Load

应写成HDRP Time Of Day/Prefeb/GameObject/TODController。

2023-09-04 17:14:30 349

原创 天气系统开发

天气系统开发。

2023-09-01 11:06:31 147

转载 Unity标签

在一个类中声明一些变量,想要对这些变量进行验证的时候可以使用。该标签声明在类上面,与某个类关联使用,如下所示,挂在MyTest.cs时也需要挂载Image组件。下面代码中的level字段是私有的。声明在静态函数上,在Unity菜单中出现选项栏,执行对应功能。声明在类上面,加上此属性后,不运行程序,也能执行脚本。该标签声明在方法上面,将函数添加到组件的上下文菜单中。在代码中:规定的nums集合的长度和hp的赋值范围。该标签声明在变量上面,给此变量添加右键菜单。该标签声明在类上面,把类添加到菜单路径中。

2023-08-22 15:24:49 104

原创 加载AB包程序集,反射获取并实例化类调用方法

加载AB包文件,加载bytes程序集资源,通过反射获取类,实例化添加组件,调用方法。

2023-08-15 11:01:13 188

原创 程序框架——UI管理模块

BasePanel负责帮助我们通过代码快速的找到所有的子控件,方便我们在子类中处理逻辑,节约找控件的工作量。

2023-08-08 10:43:58 564

原创 程序框架-输入控制模块

输入控制模块:用到之前的事件中心模块和公共Mono模块,核心利用观察者设计模式进行事件的分发与注册。

2023-08-07 09:28:59 413 1

原创 程序框架——场景切换模块

场景切换模块:提供场景切换的公共接口。提供同步切换场景,异步切换场景并使用事件中心模块。

2023-08-04 16:38:09 165

原创 程序框架-资源加载模块

提供异步加载与同步加载资源的方法,通过泛型创建对象,异步加载使用协程与。委托为加载后提供方法。

2023-08-04 16:36:48 160

原创 程序框架-公共MONO模块

作用:让没有继承MONO的类可以开启协程,可以update更新,可以统一管理update。

2023-08-04 14:55:46 189

原创 Unity-数据持久化-PlayerPrefs

数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。简单来说:就是将游戏数据存储到硬盘,将硬盘中数据读取到游戏中,也就是传统意义上的存盘。是Unity提供的可以用于存储读取玩家数据的公共类。

2023-08-02 16:16:48 424

原创 程序框架-事件中心模块-观察者模式

定义对象间的一种的依赖关系,当一个对象的状态发生改变是,所有依赖于它的对象都能得到通知并自动更新。

2023-08-02 16:11:15 595

原创 Unity-缓存池

Unity缓存池实现

2023-08-01 13:45:27 1156

原创 Unity XML3——XML序列化

数据对象/// 文件名// 1.得到存储路径// 2.存储文件// 3.序列化/// 从xml文件中读取内容/// 对象类型/// 文件名

2023-07-28 09:46:39 1096

原创 Unity XML2——C#读写XML

​ 放在 Resouces 或者 StreamingAssets 文件夹下,详见。​ 放在 Application.persistentDataPath 路径下。

2023-07-28 09:23:36 653

原创 Unity XML1——XML基本语法

​ 全称:可拓展标记语言(EXtensible Markup Language)​ XML 是国际通用的,它是被设计来用于传输和存储数据的一种文本特殊格式,文件后缀一般为 .xml​ 我们在游戏中可以把游戏数据按照 XML 的格式标准存储在 XML 文档中,再将 XML 文档存储在硬盘上或者传输给远端,达到数据持久化的目的。

2023-07-28 09:15:17 1139

转载 URP-LensFlare组件-点光源

喜大普奔,Unity意识到了这个问题,并且在2021.2之后进行了完善,更新了URP专属的Lens Flare,需要在光照上添加Lens Flare(SRP),如果不是光照有的就不显示。网上查了很多,说是在Camera上加Flare Layer,我加了也不好用,后面发现Camera没有打开Post Precessing,因为它底层本质上是后处理,所以需要勾选。(新版本细化了对于每个面片的设置,但是对于图集的处理找不到了,如果采用图集,需要自己分割,一个一个放)Occusion 主要是涉及物体遮挡的设置。

2023-07-25 16:55:15 179

原创 使用AssetBundle打包动画片段

1.下载压缩包2.压缩文件夹复制进项目Packages文件夹3.unity报错,直接删除AssetBundle文件夹里的Tests文件夹4. window中打开AssetBundle Browser5.将需要打包的物体预制件或者动画拖入Configure面板6.Build面板中点击build。

2023-07-22 13:59:02 177

原创 Unity-AssetBundle

​ AB 包是特定于平台的资源压缩包,类似于压缩文件。其中资源可包括:模型、贴图、预设体、音效、材质球等等。​ 相较于 Resources 文件夹下的资源文件,AB 包能够更好管理资源:Resources 文件夹:打包时资源固定,只读,无法修改。AB 包:存储位置可自定义,压缩方式可自定义,后期可动态更新。​ 用途:减小包体大小压缩资源减少初始包的大小热更新资源热更新脚本热更新第一步:获取资源服务器地址第二步:通过资源对比文件检测和更新AB包客户端。

2023-07-22 13:49:03 201

原创 Unity动画数据的导出和导入

1.定义动画数据类2. 将动画数据序列化为JSON字符串。可以使用方法实现。3. 将JSON字符串保存到文件中,例如使用写入。4. 读取时,从文件中读取JSON字符串,使用反序列化回动画数据类。5. 根据反序列化后的动画数据类,获取相应的AnimationClip进行播放等操作。

2023-07-22 13:44:41 1071

原创 Unity-数据持久化-JSON

File 存读字符串的方法 ReadAllText 和 WriteAllTextJsonUtlity 提供的序列化反序列化方法 ToJson 和 FromJson自定义类需要加上序列化特性 [System.Serializable]私有保护成员需要加上 [SerializeField]JsonUtlity 不支持字典JsonUtlity 不能直接将数据反序列化为数据集合Json 文档编码格式必须是 UTF-8。

2023-07-22 13:32:19 302

原创 SVN使用

SVN全名Subversion,即代码版本管理工具,可以查看存储恢复修改代码修改记录。右键文件夹->Tortoise SVN -> Import ->输入URL、备注。SVN Checkout->输入URL、下载路径。2.创建组、添加用户。

2023-07-22 13:26:54 38

转载 Unity内文件夹详解

这些扩展可以添加新的菜单项、工具栏按钮、面板等等,这些脚本会在Unity编辑器中运行而不会出现在游戏中。Unity中的包是用于扩展Unity功能的可重用模块,它们可以包含脚本、预制件、材料等。注意:如果使用版本控制系统(如Git),应该忽略Temp和Logs文件夹,因为它们包含的文件是临时的,并且会在每次构建或运行时生成。Temp:此文件夹包含临时文件和数据,例如构建过程中的临时文件、导入的临时文件等。ProjectSettings:该文件夹包含Unity项目的设置,如输入管理器、标签、物理设置等。

2023-07-19 10:12:01 1217

原创 设计模式-单例模式

单例模式(Singleton)是一种常用的设计模式,它保证一个类只有一个实例,并提供一个全局访问点。

2023-07-12 16:23:15 605

原创 七大设计原则

单一职责原则(SRP:Single Responsibility Principle)当设计封装一个类时,该类应该只负责一件事。开闭原则(OCP: Open-Closed Principle)对扩展开放、对修改关闭。对于已经完成测试上线运行的功能,应该不能再修改这个累的任何接口和实现内容。新增需求就要朝向“功能接口化”设计,将功能操作抽象为接口,功能实现下移到子类。里氏替换原则(LSP: Liskov Substitution Principle)子类必须能够替换父类。客户端使用时,应该不

2023-07-12 13:45:07 190

原创 Unity接入SDK

C#是托管语言,C++是非托管语言。托管代码和非托管代码的区别1、托管代码是一种中间语言,运行在CLR上;非托管代码被编译为机器码,运行在机器上。2、托管代码独立于平台和语言,能更好的实现不同语言平台之间的兼容;非托管代码依赖于平台和语言。3、托管代码可享受CLR提供的服务(如安全检测、垃圾回收等),不需要自己完成这些操作;非托管代码需要自己提供安全检测、垃圾回收等操作。C#调用C++Dll库时需要使用特性[DllImport]

2023-07-12 13:37:23 553

原创 C#-迭代器

​ 设计人员无需关心容器对象的内存分配的实现细节,可以用 foreach 遍历的类,都是实现了迭代器的。​ 迭代器就是可以让我们在外部直接通过 foreach 遍历对象中元素而不需要了解其结构。​ 迭代器(iterator)有时又称光标(cursor),是程序设计的软件设计模式。​ 迭代器模式提供一个方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的标识。​ 在表现效果上看,是可以在容器对象(例如链表或数组)上遍历访问的接口。​ 主要作用就是将复杂逻辑简单化,可以增加程序的可读性。

2023-06-29 16:34:41 1378

原创 C#-特殊语法

​ 申明对象时,可以通过直接写大括号的形式初始化公共成员变量和属性。​ var 是一种特殊的变量类型,它可以用来表示任意类型的变量。

2023-06-29 16:34:32 785

原创 C#-反射

​ 主要用来加载其它程序集,加载后才能用 Type 来使用其它程序集中的信息。在程序运行时,通过反射可以得到其它程序集或者自己程序集代码的各种信息。一个运行的程序查看本身或者其它程序的元数据的行为就叫做反射。类,函数,变量,对象等等,实例化它们,执行它们,操作它们。有关程序以及类型的数据被称为元数据,它们保存在程序集中。程序集就是我们写的一个代码集合,我们现在写的所有代码。程序中的类,类中的函数、变量等等信息就是程序的元数据。程序正在运行时,可以查看其它程序集或者自身的元数据。它是访问元数据的主要方式。

2023-06-29 16:30:54 548 1

原创 C#-特性

​ 特性提供功能强大的方法以将声明信息与 C# 代码(类型、方法、属性等)相关联。​ 比如一个类、成员变量、成员方法等等为他们添加更多的额外信息。​ 特性的目的是告诉编译器把程序结构的某组元数据嵌入程序集中。​ 特性与程序实体关联后,即可在运行时使用反射查询特性信息。​ 它可以放置在几乎所有的声明中(类、变量、函数等等申明)特性是一种允许我们向程序的程序集添加元数据的语言结构。​ 它是用于保存程序结构信息的某种特殊类型的类。​ 我们可以利用特性类为元数据添加额外信息。

2023-06-29 16:30:21 615

原创 C#-多线程

当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。

2023-06-29 16:25:34 482

原创 C#-协变逆变

​ 因为里氏替换原则 父类可以装子类 但是子类不能装父类,所以父类变子类。​ 用于在泛型中修饰泛型字母的,只有泛型接口和泛型委托能使用。​ 比如 object 变成 string,感受是不和谐的。​ 因为里氏替换原则,父类可以装子类,所以子类变父类。​ 用来修饰泛型替代符,只能修饰接口和委托中的泛型。​ 协变:父类泛型委托装子类泛型委托。​ 逆变:子类泛型委托装父类泛型委托。​ 逆常规的变化,不正常的变化。​ 协变和逆变是用来修饰泛型的。​ 和谐的变化,自然的变化。

2023-06-29 16:24:22 515

原创 C#-List 排序

系统自带的变量 (int,float,double,…) 一般都可以直接 Sort。​ 自定义类 Sort 有两种方式。

2023-06-29 16:23:28 1091

原创 Unity 延迟执行的5种方式

方法1适合需要同步显示时间的场合方法2适合简单的延迟场合方法3适合较为复杂的延迟场合方法4适合UI动画场合(配合其他功能一起使用)方法5可以自行尝试,不觉得能平替所有方法。

2023-06-20 18:35:27 6018

原创 Unity核心10——导航寻路系统

Unity 中的导航寻路系统是能够让我们在游戏世界当中,让角色能够从一个起点准确的到达另一个终点,并且能够自动避开两个点之间的障碍物选择最近最合理的路径进行前往​中的导航寻路系统的本质,就是在 A 星寻路算法的基础上进行了拓展和优化导航网格(NavMesh)的生成——要想角色能够在场景中自动寻路产生行进路径,那么必须得先有场景地形数据,导航网格生成就是生成用于寻路的地形数据导航网格寻路组件(NavMesh Agent)——寻路组件就是帮助我们根据地形数据计算路径让角色动起来的关键。

2023-06-20 15:55:04 4667

原创 Unity核心9——3D动画

Has Exit Time:是否有退出时间,如果勾选,当切换动画时,动画一定是播放到下方的 Exit Time(百分比)的时间时才过渡到下一个动画。​ 我们是否可以这样做,比如开枪动画只影响上半身,下半身根据实际情况播放站立,跑动,蹲下动作,通过上下半身播放不同的动画就可以达到动画的组合播放。不同的是有一个上层的图标(Up Base Layer),通过连接该状态来转移到上层状态机的某个状态。主要用于直接从另一个层复制状态过来,在该层中进行修改,另一个层的设置信息都将保留,我们只需要替换状态对应的动画即可。

2023-06-20 15:53:08 6337

原创 Unity核心8——模型导入

​支持很多模型格式。比如 .fbx /.dae /.3ds /.dxf /.obj 等等。​ 99%的模型都不是在 Unity 中制作的,都是美术人员在建模软件中制作,如 3DMax、Maya 等等。​ 当他们制作完模型后,虽然 Unity 支持很多模型格式但是官方建议是将模型在建模软件中导出为 FBX 格式后再使用​ 在 Project 窗口选中导入的模型,在 Inspector 窗口进行相关设置,4 个页签分别是Model 模型页签Rig 操纵(骨骼)页签动画页签Materials 材质。

2023-06-20 15:50:11 5496

原创 Unity核心7——2D动画

​ 我们最常见的序列帧动画就是我们看的日本动画片,以固定时间间隔按序列切换图片,就是序列帧动画的本质​ 当固定时间间隔足够短时,我们肉眼就会认为图片是连续动态的,进而形成动画(会动的画面)​ 它的本质和游戏的。

2023-06-20 15:47:53 8920

原创 Unity核心6——Animation

​ 通过 Window Animation Animation 打开 Animation 窗口​ Animation窗口主要用于在 Unity 内部创建和修改动画,所有在场景中的对象都可以通过 Animation 窗口为其制作动画​ 原理:​ 制作动画时:记录在固定时间点对象挂载的脚本的变量变化​ 播放动画时:将制作动画时记录的数据在固定时间点进行改变,产生动画效果​ 动画时间轴:​ 每一个动画文件都有自己的一个生命周期,从动画开始到结束​ 我们可以在动画时间轴上编辑每一个动画生命周期中变化​ 动画中的

2023-06-20 14:53:59 4977

空空如也

空空如也

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

TA关注的人

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