自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lq

  • 博客(360)
  • 资源 (13)
  • 收藏
  • 关注

原创 B树(B-tree)

如果 number > keyList[index], index++,如果 index >= childList.Count,查找失败,返回,否则继续循环执行 2 ,比较下一个 关键字 keyList[index]我在查询操作逻辑中隐含保留了一个 hot 节点,这个 hot 节点是最接近 number 的节点,如果查询成功,则 hot 不再起作用,如果查询失败,在 插入操作中 是有用处的。如果 number = keyList[index],则 在关键字中找到 了number,查询完成,返回节点。

2024-04-17 21:02:55 748

原创 双向链表也叫双链表

双向链表中任意一个节点,都可以通过通过它的前驱节点和后继节点,访问其他节点。每个节点都有两个指针,分别指向 直接前驱节点、直接后继节点。

2024-04-17 15:04:07 451

原创 红黑树(Red Black Tree)

红黑树是一种平衡二叉查找树的变体,它的左右子树高差有可能大于 1,所以红黑树不是严格意义上的平衡二叉树(AVL),在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,但对之进行平衡的代价较低,其平均统计性能要强于 AVL。红黑树是继承自 二叉搜索树的,上面代码没有 查询函数的实现,因为红黑树的查询跟 二叉搜索树是一样的,所以直接继承子 二叉搜索树,相关代码请到我关于二叉搜索树的篇章寻找。红黑树的最坏情况运行时间也是非常良好的,并且在实践中是高效的: 它查找,插入和删除的时间复杂度为O(logN)

2024-04-16 17:05:02 233

原创 伸展树-搜索树

/ 因为根节点被删除了,搜索会将右子树中节点值最接近查找数值的节点返回,这个节点就是右子树中最小的节点,然后右子树中最小节点必伸展至根,且(因无类同节点)其左子树必空。// 根节点 = 其右子树,也就是原本的根节点已经被删除了。在这种情况中,X有一个父节点P和祖父节点G(P的父节点)。// 令 新的根节点左子树 = 上面存储的左子树。存在,此时有一个隐含信息,因为搜索到了该节点,那么这个节点此时已经被伸展到树根了。关于查询操作中,将节点伸展至根节点的操作,应用伸展(splaying)技术。

2024-04-16 16:04:15 777

原创 平衡二叉树(AVL)

2:平衡二叉树中所有节点的左右子树的高度差 小于等于1(称之为平衡因子)在非理想状态下,二叉搜索树的时间复杂度将会降低为 O(N),数组级别。二叉搜索树的 查询、插入、删除 时间复杂度都为 O(logN)LL 型:也称作左左型,在破坏节点的左边的左边插入而导致失衡。LR 型:也称 左右型,在破坏节点的左边的右边插入而导致失衡。RL 型:也称右左型,在破坏节点的右边的左边插入而导致失衡。RR 型:也称右右型,在破坏节点的右边的右边插入而导致失衡。假如我一组数据顺序为:1、2、3、4、5、6。

2024-04-15 21:01:17 355 1

原创 二叉搜索树

第 (2.1) 种:Node 只有右子树,Node可以直接删除(直接使用Node右子树替换Node),跳转到第 3 步(Node,Node右子树)第 (2.2) 种:Node 只有左子树,Node可以直接删除(直接使用Node左子树替换Node),跳转到第 3 步(Node,Node左子树)如果 nextNode 是 Node 左子树最大的节点,则 nextNode 没有右子树了(因为右子树比它的值更大,右子树应该是最大的节点)第 (2.3.1) 获取 Node 左子树中最大的节点 也叫直接后继节点。

2024-04-15 17:12:18 660

原创 二叉树-数据结构

*树的层次:**从根节点开始,假设根节点是第一层,根节点的子节点为第二层,一次类推,如果某一个节点位于第L层,则其子节点位于第 L+1层。**树的深度:**也成树的高度,树中所有节点的层次最大值称为树的深度。**叶子节点:**也称为终端节点,没有子树的节点或者 度为零的节点。**分支节点:**也成非终端节点,有子树的节点或者 度不为零的节点。**节点的度:**一个节点拥有子树的数量称为节点的度。**节点的高度:**从节点到其子树叶子节点最长的路径。**节点的深度:**从根节点到节点的路径长度。

2024-04-12 21:09:34 266

原创 JPS+(Jump point search plus)寻路算法

JPS+ 是在 Jps 的基础上对地图进行了预处理,将数据记录在节点上JPS 是运行时计算节点在某个方向上的跳点JPS+ 预处理则是将 每个节点每个方向上的跳点、障碍信息记录,在运行时,不需要经过计算,直接获取某个方向上的跳点,节省大量时间和空间,提升计算速度JPS+ 地图预处理前提条件1:地图必须是静态的,预处理时和运行时地图必须是一样的,不对在运行时添加、删除、修改节点状态2:预处理需要每个节点存储一些数据,对内存占用较大3:预处理需要时间较长,地图内每个节点都要进行数据处理,时间复杂

2024-03-19 17:37:53 705

原创 D-Star 寻路算法

D*算法:D* 算法”的名称源自 Dynamic A Star,最初由Anthony Stentz于“Optimal and Efficient Path Planning for Partially-Known Environments”中介绍。它是一种启发式的路径搜索算法, 适合面对周围环境未知或者周围环境存在动态变化的场景。

2024-03-14 14:51:08 851

原创 N 皇后问题

B. 然后递归到下一行(M+1行),当我们递归到某行(S行)发现没有位置可以放置皇后了,我们就要回溯 执行如上 (5),返回到上一行(S-1 行)没有放置皇后的时候,然后在上一行(S-1 行)换一个可以放置皇后的位置,来放置皇后。A.使用递归函数来实现,按照每次递归一行棋牌来考虑,每一行 (M行) 只要有一个位置满足如上 (3) 条件,就可以放置皇后到该位置,我们记录放置皇后的位置,然后执行 如上 (4),(4).在一个位置放置一个皇后,记录皇后位置,并将其所在同一行、同一列、同一斜线上的格子数值 +1。

2023-09-26 22:35:35 459

原创 前缀树-Trie树

前缀树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高

2023-09-26 16:14:04 243

原创 Apk 二次打包修改包名、配置

Apk 二次打包,修改包名、配置,多渠道处理

2023-08-16 16:37:34 4620

原创 Unity Timeline使用

/ 自定义的信号 public class CustomSignal : SignalEmitter {// 自定义参数 public string eventName;创建一个 Signal Track 轨道,然后在右侧右键,如下可以看到新建的信号发射器创建一个接收信号的GameObject我命名为,添加脚本,并拖拽到信号轨道先看效果,下图中 TimeTest->Image Track 是自定义的轨道绑定的对象类型为 UGUI->Image。

2023-05-06 20:48:58 4692 1

原创 Unity Batching 批处理

了解的应该都知道 (4.1)的操作要比(4.2)慢很多,因为每复制一个文件,要分配内存,创建操作句柄等额外工作,如果复制文件很多,会造成很大的性能开销。顶点属性不能超过 900 个(不是Mesh 的顶点数,而是Shader使用的 顶点坐标、法线、UV坐标等属性总和不能超过 900,如果同时使用了顶点坐标、法线、UV坐标属性,则顶点数不能超过 900 除以 3 = 300个)必须使用相同的材质(材质相同的物体,不同的只有顶点数据,可以将顶点数据合并在一起,再发送给GPU)

2023-04-15 23:39:01 1088

原创 Unity LOD 技术

LOD Bias: LOD 偏离,LOD 级别基于物体在屏幕上的大小,当物体大小在两个LOD级别之间时,可以选择使用低细节模型或高细节模型,数值范围 [0, 1],数值越接近0,越偏向于显示低细节模型。预览:左右拖拽 LODGroup 组件下方显示的 摄像机图标,可以在编辑器下实时预览摄像机距离模型不同位置时显示的模型,同一时刻只会显示 立方体、球体 、胶囊体 中的某一个。其中 0、1 、2 就是级别,0 为最高级(使用精度最高的模型),2 为最低级(使用精度最低的模型)当物体距离摄像机距离较近时显示。

2023-04-15 13:18:11 1215

原创 Unity 打包代码到 DLL

Unity 打包代码到 DLL使用Unity API PlayerBuildInterface.CompilePlayerScripts 将项目中的代码生成为 DLL 程序集

2023-03-05 16:29:06 3472

原创 UGUI 使用 UIParticle 实现 UI 上显示 Particle System 以及 层级遮挡 和 Mask

UGUI 上使用 Particle System 支持 Sorting Layer 排序渲染

2023-03-04 11:55:13 4697 2

原创 C# AttributeUsage

C# AttributeUsage C# 属性标签

2023-03-03 13:25:54 653

原创 Git cherry-pick

git cherry-pick

2022-12-28 10:43:26 568

原创 Lua 模块 module

Lua 模块 module

2022-10-30 15:17:09 1142

原创 Lua 面向对象 继承 二

Lua 面向对象 继承

2022-10-23 21:16:52 176

原创 Lua 面向对象 继承

Lua 面向对象 继承

2022-10-23 20:21:30 291

原创 Lua 面向对象 创建类实例

Lua 面向对象 之一

2022-10-23 19:39:30 679

原创 Lua rawset、rawget

Lua rawset、rawget

2022-10-23 14:37:08 1833

原创 Lua 元表(Metatable) __newindex之 二

lua 元表(Metatable) __newindex

2022-10-23 11:41:41 411

原创 Lua 元表(Metatable) __newindex之 一

lua 元表(Metatable) __newindex

2022-10-23 11:32:30 557

原创 Lua 元表(Metatable) __index

Lua Metatable __index

2022-10-23 11:18:50 300

原创 Unity 检测资源文件导入

Unity 检测资源文件导入

2022-10-12 17:53:43 1410

原创 动态规划算法:背包问题

动态规划算法:背包问题

2022-09-20 17:26:32 433

原创 射线与OBB相交检测

射线与OBB相交检测

2022-06-28 17:10:08 918

原创 Git 回滚 checkout、reset、revert

Git 回滚 reset、checkout、revert首先看一下 Git 的工作流程checkout 是检出的意思,作用是将某次 commit 的状态检出到工作区,它的过程是先将 HEAD 指向某个分支的最后一次 commit,然后从 commit 恢复 index,最后从 index 恢复工作区。通常用于切换分支,创建新分支,即HEAD 从一个分支切换到另一个分支,或创建并切换到新分支。(1)放弃工作区中的全部修改命令:git checkout .(2)放弃工作区中某个文件的修改命令:g

2022-05-07 19:29:17 3311

原创 Git stash 保存进度

Git stash 保存进度git stash 用来保存当前的工作目录和暂存区状态,并返回到干净的干工作空间,什么意思呢?举个例子假如当你正在某一个分支上忘我的书写你优美的代码时,有小伙伴让你帮忙看一下其他分支上的某个问题,而你的代码才写了一半又不想上传到远端,又不能丢弃,那就可以选择将当前所有修改暂存起来。如下我在工作区添加了文件 A6.txt首先执行:git add . 将所有修改添加然后执行: git stash save “A6.txt” 命令中的 “A6.txt” 是注释,方便以

2022-05-07 15:19:46 327

原创 Git 添加、提交、推送、合并分支、删除分支等

Git 添加、提交、推送、合并分支、删除分支等添加一个文件(1) 查看本地修改信息执行命令:git status(2) 添加修改执行命令:git add "文件名或目录"添加具体的文件或者文件夹如果想一次性添加所有修改执行命令:git add .再次执行 git statusA/A1.txt 已经添加成功(3) 提交修改执行命令 git commit -a -m "注释"(4) 将修改推送到远端执行命令: git push(5) 撤销 add,执行了 git add 后又

2022-05-07 12:42:24 654

原创 Git 检出、查看分支、切换分支、新建分支等简单命令

Git 检出、查看分支、切换分支、新建分支等简单命令首先需要安装 Git 并且配置 Git 环境变量在需要检出工程的目录鼠标右键打开命令窗口首先拿到 Git 仓库 SSH 地址或者 https 地址(1) 执行 clone 命令,下面使用的是 SSH 地址git clone [email protected]:XXXXXXXX/TestGitCommand.git然后进入到 .git 文件夹所在目录,就在 clone 出来的项目文件夹根目录注意: .git 是隐藏文件,需要自行设置显示隐藏的文

2022-05-07 12:06:03 16974

原创 Unity 世界坐标、屏幕坐标、UGUI 坐标 相互转换

Unity 世界坐标、屏幕坐标、UGUI 坐标 相互转换坐标转换是游戏开发过程中必不可少的环节看下图 世界坐标、屏幕坐标、UI 坐标 三种坐标系的转换过程,此文章中的 UI 坐标特指 UGUI 坐标从上图可以看到,世界坐标 和 UI 坐标 需要通过 屏幕坐标作为中间转换媒介世界坐标 -> 屏幕坐标 -> UI 坐标UI 坐标 -> 屏幕坐标 -> 世界坐标代码如下首先提供一个获取 UI 摄像机的方法UGUI 中 Canvas 的 renderMode 分为

2022-04-25 20:37:47 17023 1

原创 Unity 获取一个资源被那些资源引用

Unity 获取一个资源被那些资源引用在 API 只知道了一个资源依赖其他资源的方法 AssetDatabase.GetDependencies当删除一个资源时往往害怕它被其他资源引用,导致错误,往往需要找到具体哪些文件引用了该资源,Unity 没有提供方法,可以通过 AssetDatabase.GetDependencies 收集项目中所有资源的引用关系,比如项目中资源A 引用了 D, B 引用了 C,则 反向查找可以确定 D 被 A 引用了, C 被 B 引用了在 Editor文件夹中新建脚本

2022-04-21 16:01:24 3882

原创 Unity 获取一个文件依赖的资源

Unity 获取一个文件依赖的资源在 Assets 文件夹下选择一个文件,获取文件路径,根据所选文件路径,获取该文件依赖的所有资源在 Editor 文件夹下创建 AssetDepend.csusing UnityEngine;using UnityEditor;using System.IO;public class AssetDepend{ [MenuItem("Assets/AssetDepend")] static void Depend() {

2022-04-21 15:40:37 2734

原创 Protobuf 使用

Protobuf 使用Protobuf 概念以及干什么的就不在这里说了,看这篇文章的应该都了解了,不了解的可以自己查一下。总共分三步第一步:下载配置 Protobuf 环境Protobuf github 下载链接里面有各个版本的 package,记得要选 release,根据自己需求找到适合的版本我这里使用的是 Protocol Buffers v3.0.0 Version 3.0.0链接下拉找到 Assets 标签展开如下我是在 Windows 系统上操作,所以我选择下载 pro

2022-03-22 19:33:04 2497

原创 向量到一个平面的投影向量

向量到一个平面的投影向量求一个向量投影到一个平面上的投影向量,如下图已知项: 向量 sq,平面法向量 n设点 o 为点 q 到平面的垂点则向量 oq 垂直于平面则向量 so 即为 sq 在平面上的投影。so = sq + qoso = sq + (n * -1) * |qo|so = sq + (n * -1) * |sq·n|在上面的推理中对于 qo 的一步步转换是这样的因为qo 平行于 n 但是方向相反,且 n 是单位向量所以 qo = (n * -1) * |qo|因为 |q

2021-12-28 16:05:15 17202

原创 平面定义-平面方程

平面定义-平面方程在3D中,平面是到两个点的距离相等的点的集合。平面完全是平的,没有厚度,且无限延伸。注意:下方粗体 p、q、n 代表点或向量平面的隐式定义由所有满足平面方程的点 p=(x, y, z)给出,平面方程的两种记法如下公式公式一ax + by + cz = dp·n = d第二个公式中 n=[a, b, c],一旦知道 n,就能用任意已知的平面上的点来计算 d。向量 n 也称作平面的法向量,因为它垂直于平面。验证:设 p 和 q 都在平面上,满足方程。将 p,q 带入公式,既

2021-12-28 12:27:19 2211

计算机常用词汇大全汇总

包含常用硬件词汇,著名软件词汇,一些名词简释

2023-02-20

PathFindingUnity.rar

一个包含AStar、Dijkstra、JPS 三种算法的可运行的Unity工程,建议 Unity2019.1以上

2021-08-04

PathFindingAlgorithm.txt

寻路算法,包含几种常用的寻路算法

2021-03-18

GOAP AI Unity 实现

一个 GOAP AI 的 Unity 实现 Demo,包含行为 做饭、吃饭、写作业、打篮球、休息,根据自身状态和世界状态,获取最佳执行方法

2018-01-23

GOAP AI Demo

一个 GOAP AI Unity 实现Demo,包含行为 买菜,做饭,吃饭。根据自身变化以及世界状态,自动执行行为

2018-01-23

二叉树算法实现

一个二叉树 C# 代码实现例子,功能比较简单,如需更多功能可自行扩展

2018-01-08

GOAP AI 实现

关于GOAP AI 的源码比较少,本代码为网上下载的一个比较庞大的源码,源码写的很好但是不利于初学者,本人将其重构了一下,删除大部分代码,留下最小的精简版本

2018-01-08

C# TCP Socket 编程

自己写的一个简单的异步 TCP 实现,包含一个服务端代码和一个客户端代码

2018-01-08

Unity UI 框架

自己写的一套UI框架,基于 MVC, UGUI、NGUI 都可使用,跟使用哪种 UI 插件无关

2018-01-08

Unity序列化编辑器使用

该代码为Unity Editor 使用序列化保存数据,将数据显示在Inspector 面板上的操作

2015-12-19

Unity - UGUI 动画插件

Unity UGUI 没有封装动画,该插件为借助 DOTween插件功能,将其封装,可以手动编辑动画,使用方便,避免每次都写代码

2015-12-11

Unity - UGUI 图片置灰 Shader

在Shader 使用在 Unity UGUI 的 图片上,图片选择该Shader,图片将显示会灰白色

2015-12-11

lua5.3.0开发包

本资源为lua5.3.0的开发包,将该开发包导入到VS中,制作成静态库,在其他项目中导入该静态包,调用lua方法

2015-03-10

Unity编辑器类学习笔记

Unity中Editor类学习笔记,包括Inspector面板编辑, Scene面板编辑,常见菜单等

2014-12-24

空空如也

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

TA关注的人

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