自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(126)
  • 资源 (7)
  • 收藏
  • 关注

原创 【IMGUI】 Unity MenuItem快捷键

Unity MenuItem快捷键

2022-02-13 10:11:15 1156

原创 【IMGUI】 各种辅助类 EditorGUIUtility、EditorUtility、GUIUtility、GUILayoutUtility

Unity Editor 编辑器拓展 各种辅助类 EditorGUIUtility、EditorUtility、GUIUtility、GUILayoutUtility。

2022-01-22 10:31:01 2320

原创 【IMGUI】 GUIStyle、GUISkin、EditorStyles

【IMGUI】 GUIStyle、GUISkin、EditorStyles

2022-01-15 15:14:40 3718

原创 【IMGUI】 GUI、GUILayout、EditorGUI、EditorGUILayout

GUI、GUILayout、EditorGUI、EditorGUILayout区别与常用控件的基本使用。

2022-01-15 10:48:45 3622

原创 C#常用集合的实现原理(SortedList)

SortedList集合类是有序线性表,本质上是一颗二叉查找树。

2022-01-08 14:16:02 745

原创 Unity Editor扩展 GraphView

GraphView是Unity推出的一个基于UIElement的节点编辑器UI模块,功能很完全,有多选,拖动,缩放,Group等功能。

2022-01-03 18:13:02 5758

原创 二分搜索树

二分搜索树(Binary Search Tree),也称为 二叉查找树 、二叉搜索树 、有序二叉树或排序二叉树。

2022-01-02 17:40:58 1596

原创 C#常用集合的实现原理(HashSet)

C# HashSet实现原理概述

2021-12-25 16:16:44 1096

原创 UIElement 自定义VisualElement

UIElement 自定义VisualElement

2021-12-25 09:28:16 558

原创 Unity编辑器扩展——在Editor下动态添加监听事件

Unity编辑器扩展,在Editor下动态添加监听事件。

2021-12-19 10:32:40 3802 2

原创 UIElement USS属性

UIElement USS属性

2021-12-19 10:23:18 2530 1

原创 NET探秘:MSIL权威指南 简单示例

MSIL权威指南 简单示例

2021-12-18 16:40:08 946

原创 UI Element UXML特性及USS样式

UIElement的UXMl和USS

2021-12-18 10:11:47 2457

原创 UI Element的简单介绍和基本使用

UI Element的简单使用。

2021-12-11 10:22:04 10878

原创 Unity Timeline自定义轨道 DefaultPlayables源码剖析

Unity Timeline自定义轨道 DefaultPlayables源码剖析

2021-12-11 09:48:42 1245

原创 Unity Timeline自定义轨道

Unity Timeline的自定义轨道的基本使用方法

2021-12-04 10:42:19 3287

转载 Unity Playable API 定制化动画系统的简单使用

Unity Playable API 定制化动画系统的简单使用

2021-12-04 10:41:01 1709

原创 Unity动画系统知识体系概览

Unity动画系统知识体系概览

2021-11-28 16:21:49 203

原创 Unity Playable API 基本介绍

Playable API 介绍

2021-11-27 18:14:22 5624 1

原创 Playable Graph Visualizer源码剖析

Unity Playable Graph Visualizer源码剖析

2021-11-23 15:46:30 770

转载 Unity Playable API 定制化动画系统

Unity Playable API 自定义动画系统 - 知乎 (zhihu.com)Playable API:定制你的动画系统传统动画系统传统(Legacy)动画缺陷(Animation)(Animation组件就是用于Legacy动画)下图是Unity为Legacy动画系统自动生成Animation:Legacy动画没办法使用Mecanim动画系统(Animator)的以下这些高级功能:动画重定向 (重定向技术是一种在将动画数据从一个骨架拷贝到另外一个骨架的

2021-11-21 10:53:47 3788

原创 C#常用集合的实现原理(List)

List 集合类是顺序线性表,Add操作是O(1)或是O(n)的,由于List的容量是动态扩容的,在未扩容之前,其Add操作是O(1),而在需要扩容的时候,会拷贝已存在的那些元素同时添加新的元素,此时的Add操作是O(n)的。而对于Contains方法,其是按照线性检索的,其复杂度是O(n)。而BinarySearch方法,其是按二分查找的,其复杂度是O(lg n)。SortedList集合类是有序线性表,Add操作是O(n), 其Contains方法是通过二分查找检索元素的,因此复杂度是O(lg n)

2021-10-13 21:30:02 2385

原创 DNS、NAT、DHCP、HTTP

DNS是域名系统(DomainNameSystem)的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务,可以简单地理解为将URL转换为IP地址。域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的IP地址,在Internet上域名与IP地址之间是一一对应的,DNS就是进行域名解析的服务器。DNS命名用于Internet等TCP/IP网络中,通过用户友好的名称查找计算机和服务。...

2021-10-13 07:29:30 570

原创 TCP/IP、UDP协议

TCP/IP协议是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确

2021-10-12 21:19:58 2531

原创 C#循环遍历同时执行删除操作

使用foreach List<int> arr = new List<int>() {1, 2, 4, 5}; foreach (var num in arr) { if (num == 2) { arr.Remove(num); } }这种做法会抛出异常:InvalidOperationExcepti

2021-10-10 13:43:15 4594 2

原创 数据结构——堆

一、概念及其介绍堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。堆满足下列性质:堆中某个节点的值总是不大于或不小于其父节点的值。 堆总是一棵完全二叉树。二、适用说明堆是利用完全二叉树的结构来维护一组数据,然后进行相关操作,一般的操作进行一次的时间复杂度在O(1)~O(logn)之间,堆通常用于动态分配和释放程序所使用的对象。若为优先队列的使用场景,普通数组或者顺序数组,最差情况为O(n^2),堆这种数据结构也可以提高入队...

2021-10-10 10:04:06 5388

原创 设计模式六大原则

1、开闭原则(Open Close Principle)开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。2、里氏代换原则(Liskov Substitution Principle)里氏代换原则是面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石

2021-10-10 08:56:55 91

原创 设计模式之解释器模式

解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。主要解决:对于一些固定文法构建一个解释句子的解释器。何时使用:如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该

2021-10-09 19:56:22 94

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

中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。意图:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。主要解决:对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相应的处理。何时使用:

2021-10-08 09:18:26 101

原创 网络层ARP/RARP协议

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP

2021-10-07 09:55:20 913

原创 设计模式之访问者模式

在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。意图:主要将数据结构与数据操作分离。主要解决:稳定的数据结构和易变的操作耦合问题。何时使用:需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,使用访问者模式将这些封装到类中。如

2021-10-07 09:26:06 66

原创 计算机图形学 学习笔记 二维观察

二维观察流水线二维场景中要显示的部分称为裁剪窗口,所有在此区域之外的场景均要裁去。只有在裁剪窗口内部的场景才能显示在屏幕上。裁剪窗口有时暗指世界窗口或观察窗口。使用术语裁剪窗口来表示可能转换为监视器上某显示窗口的点阵的场景部分。图形系统还用称为视口的另一“窗口”来控制在显示窗口的定位。对象在裁剪窗口内的部分映射到显示窗口中指定位置的视口中。窗口选择要看什么,而视口指定在输出设备的什么位置进行观察。通过改变视口的位置,可以在输出设备显示区域的不同位置观察物体。场景的描述从二维世界坐标系到设备坐标系

2021-10-05 17:55:15 2965

原创 设计模式之状态模式

在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。意图:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。何时使用:代码中包含大量与对象状态有关的条件语句。如何解决:将各种具体的状态类抽象出来。关键代码:通常命令模式的接

2021-10-05 09:16:24 54

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

备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。主要解决:所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。何时使用:很多时候我们总是需要记录一个对象的内部状态,这样做的目的就是为了允许用户取消不确定或者错误的操作,能够恢复到他原先的状态,使得他有"后悔药"

2021-10-04 09:21:39 57

原创 设计模式之命令模式

命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。介绍意图:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。主要解决:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适。何时使用:在某些场合,比如

2021-10-03 10:12:10 73

原创 计算机图形学 学习笔记 二维几何变换

应用于对象几何描述并改变它的位置、方向或大小的操作称为几何变换。几何变换有时也称为建模变换。建模变换一般用于构造场景或给出由多个部分组合而成的复杂对象的层次式描述等。

2021-10-02 11:11:25 4597

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

顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。意图:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。主要解决:职责

2021-10-02 09:19:06 102

原创 计算机网络原理——网络层次划分

为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立计算机网络,国际标准化组织(ISO)在1978年提出了"开放系统互联参考模型",即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它将计算机网络体系结构的通信协议划分为七层,自下而上依次为:物理层(Physics Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session

2021-10-01 09:41:08 2101

原创 设计模式之迭代器模式

迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于行为型模式。意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。主要解决:不同的方式来遍历整个整合对象。何时使用:遍历一个聚合对象。如何解决:把在元素之间游走的责任交给迭代器,而不是聚合对象。关键代码:定义接口:hasNext, next。应用场景:JAVA 中的

2021-10-01 09:19:37 72

原创 UGUI 源码剖析 总结篇

UGUI 源码剖析 总结篇

2021-09-30 16:37:41 325

UnityPlayableAPI定制化动画系统基本使用Demo-PlayableProject.rar

用Playables API来定制自定义动画系统。没有专门的工具,就是靠纯代码实现自定义动画系统。 简单的说,Playable可以通过一组API来创建一个Graph,而每个Graph可以由多个树形结构组成,每个树状结构都由一个Output节点作为根节点,叶子结点则由各种Playable组成。 它提供了一种创建工具,动画系统或其它游戏机制的方式。Playable Graph允许我们混合和修改多个数据源,并通过单个输出来播放它们。 目前Playable API 支持播放动画、音效以及自定义的行为。我们把它设计为了一种通用的接口,它并不是仅仅针对动画的。以后还会支持视频等其它系统。

2021-11-23

AStarProject.rar

基于Unity的A*算法源码工程,可单步查看每一步A*算法Open表和Close表的节点状态,也可直接一步查看结果,支持地图的可编辑性,自定义宽高和障碍物及起点终点位置的生成

2021-03-27

Unity3D人工智能编程精粹 实现AI角色的自主移动——操控行为源码工程.rar

Unity3D人工智能编程精粹 实现AI角色的自主移动——操控行为源码工程 操控行为”是指操作控制角色,让它们能以模拟真实的方式在游戏世界中移动。它的工作方式是通过产生一定大小和方向的操控力,使角色以某种方式运动。它属于AI模型中的运动层。 (1)操控行为包括一组基本“行为”。对于单独的AI角色,基本操控行为包括: 使角色靠近或离开目标的“Seek”,“Flee”行为; 当角色接近目标时使他减速的“Arrival”行为; 使捕猎者追逐猎物的“Pursuit”行为; 使猎物逃离捕猎者的“Evade”行为; 使角色在游戏世界中随机徘徊的“Wander”行为; 使角色沿着某条预定路径移动的“PathFollowing”行为; 使角色避开障碍物的“ObstacleAvoidance”行为等 基本行为中的每一个行为,都产生相应的操控力,使这些操控力以一定的方式组合起来(实际上就相当于将这些基本“行为”进行了不同的组合),就能够得到更复杂的“行为”,从而实现更为高级的目标。 (2)对于组成小队或群体的多个AI角色,包括基本的组行为如下。 与其他相邻角色保持一定距离的“Separation”行为; 与其他相邻角色保持一致朝向的“Alignment”行为; 靠近其他相邻角色的“Cohesion”行为;

2021-03-02

基于StrangeIoC的点击方块加分的Demo

基于StrangeIoC的点击方块加分的Demo,Unity的版本号为5.6

2018-11-10

StrangeIOC游戏编程框架案例

基于Unity3D的StrangeIOC游戏编程框架案例,使用的Unity版本号为5.6

2018-11-05

Unity3D手游——橡皮怪勇闯地下室

Unity3D实现的一款跑酷类2D手游,包含已经发布完成的apk文件,可直接安装在Android手机上运行。

2018-06-22

Cocos2d-x实现潜艇大战——简单工厂模式,对象池

Cocos2d-x实现潜艇大战——简单工厂模式,对象池,源代码及分析类图

2018-06-21

空空如也

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

TA关注的人

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