- 博客(126)
- 资源 (7)
- 收藏
- 关注
原创 【IMGUI】 各种辅助类 EditorGUIUtility、EditorUtility、GUIUtility、GUILayoutUtility
Unity Editor 编辑器拓展 各种辅助类 EditorGUIUtility、EditorUtility、GUIUtility、GUILayoutUtility。
2022-01-22 10:31:01
2734
原创 【IMGUI】 GUIStyle、GUISkin、EditorStyles
【IMGUI】 GUIStyle、GUISkin、EditorStyles
2022-01-15 15:14:40
4136
原创 【IMGUI】 GUI、GUILayout、EditorGUI、EditorGUILayout
GUI、GUILayout、EditorGUI、EditorGUILayout区别与常用控件的基本使用。
2022-01-15 10:48:45
4204
原创 Unity Editor扩展 GraphView
GraphView是Unity推出的一个基于UIElement的节点编辑器UI模块,功能很完全,有多选,拖动,缩放,Group等功能。
2022-01-03 18:13:02
6901
原创 Unity Timeline自定义轨道 DefaultPlayables源码剖析
Unity Timeline自定义轨道 DefaultPlayables源码剖析
2021-12-11 09:48:42
1553
转载 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
4258
原创 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
2650
原创 DNS、NAT、DHCP、HTTP
DNS是域名系统(DomainNameSystem)的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务,可以简单地理解为将URL转换为IP地址。域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的IP地址,在Internet上域名与IP地址之间是一一对应的,DNS就是进行域名解析的服务器。DNS命名用于Internet等TCP/IP网络中,通过用户友好的名称查找计算机和服务。...
2021-10-13 07:29:30
728
原创 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
2822
原创 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
6050
2
原创 数据结构——堆
一、概念及其介绍堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。堆满足下列性质:堆中某个节点的值总是不大于或不小于其父节点的值。 堆总是一棵完全二叉树。二、适用说明堆是利用完全二叉树的结构来维护一组数据,然后进行相关操作,一般的操作进行一次的时间复杂度在O(1)~O(logn)之间,堆通常用于动态分配和释放程序所使用的对象。若为优先队列的使用场景,普通数组或者顺序数组,最差情况为O(n^2),堆这种数据结构也可以提高入队...
2021-10-10 10:04:06
5824
原创 设计模式六大原则
1、开闭原则(Open Close Principle)开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。2、里氏代换原则(Liskov Substitution Principle)里氏代换原则是面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石
2021-10-10 08:56:55
125
原创 设计模式之解释器模式
解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。主要解决:对于一些固定文法构建一个解释句子的解释器。何时使用:如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该
2021-10-09 19:56:22
123
原创 设计模式之中介者模式
中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。意图:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。主要解决:对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相应的处理。何时使用:
2021-10-08 09:18:26
129
原创 网络层ARP/RARP协议
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP
2021-10-07 09:55:20
1002
原创 设计模式之访问者模式
在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。意图:主要将数据结构与数据操作分离。主要解决:稳定的数据结构和易变的操作耦合问题。何时使用:需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,使用访问者模式将这些封装到类中。如
2021-10-07 09:26:06
93
原创 计算机图形学 学习笔记 二维观察
二维观察流水线二维场景中要显示的部分称为裁剪窗口,所有在此区域之外的场景均要裁去。只有在裁剪窗口内部的场景才能显示在屏幕上。裁剪窗口有时暗指世界窗口或观察窗口。使用术语裁剪窗口来表示可能转换为监视器上某显示窗口的点阵的场景部分。图形系统还用称为视口的另一“窗口”来控制在显示窗口的定位。对象在裁剪窗口内的部分映射到显示窗口中指定位置的视口中。窗口选择要看什么,而视口指定在输出设备的什么位置进行观察。通过改变视口的位置,可以在输出设备显示区域的不同位置观察物体。场景的描述从二维世界坐标系到设备坐标系
2021-10-05 17:55:15
3563
原创 设计模式之状态模式
在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。意图:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。何时使用:代码中包含大量与对象状态有关的条件语句。如何解决:将各种具体的状态类抽象出来。关键代码:通常命令模式的接
2021-10-05 09:16:24
90
原创 设计模式之备忘录模式
备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。主要解决:所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。何时使用:很多时候我们总是需要记录一个对象的内部状态,这样做的目的就是为了允许用户取消不确定或者错误的操作,能够恢复到他原先的状态,使得他有"后悔药"
2021-10-04 09:21:39
85
原创 设计模式之命令模式
命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。介绍意图:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。主要解决:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适。何时使用:在某些场合,比如
2021-10-03 10:12:10
103
原创 计算机图形学 学习笔记 二维几何变换
应用于对象几何描述并改变它的位置、方向或大小的操作称为几何变换。几何变换有时也称为建模变换。建模变换一般用于构造场景或给出由多个部分组合而成的复杂对象的层次式描述等。
2021-10-02 11:11:25
5115
原创 设计模式之责任链模式
顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。意图:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。主要解决:职责
2021-10-02 09:19:06
130
原创 计算机网络原理——网络层次划分
为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立计算机网络,国际标准化组织(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
2442
原创 设计模式之迭代器模式
迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于行为型模式。意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。主要解决:不同的方式来遍历整个整合对象。何时使用:遍历一个聚合对象。如何解决:把在元素之间游走的责任交给迭代器,而不是聚合对象。关键代码:定义接口:hasNext, next。应用场景:JAVA 中的
2021-10-01 09:19:37
104
UnityPlayableAPI定制化动画系统基本使用Demo-PlayableProject.rar
2021-11-23
AStarProject.rar
2021-03-27
Unity3D人工智能编程精粹 实现AI角色的自主移动——操控行为源码工程.rar
2021-03-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人