自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 资源 (2)
  • 收藏
  • 关注

原创 AI克隆语音(基于GPT-SoVITS)

使用GPT-SoVITS训练声音模型,实现文本转语音功能。可以模拟出语气,语速。如果数据质量足够高,可以达到非常相似的结果。相比于So-VITS-SVC需要的显卡配置更低,数据集更小(我的笔记本NVIDIA GeForce RTX 4050 Laptop GPU跑起来毫无压力。

2024-04-14 23:57:35 1912

原创 抽象(abstract)和接口(interface)

abstract是C#关键字,用于修饰类和方法,被abstract修饰的类和方法被叫做抽象类和抽象方法。

2024-03-25 00:00:50 359

原创 运算符重载

条件运算符(>,<,>=,<=,==),条件运算符需要成对出现(>,<必须同时实现,>=,<=必须同时实现)重载如 + - * /之类的运算符,让自定义类型(类或结构体)的对象能够使用运算符。算术运算符都可重载(+,-,*,/,%,++等)位运算符都可重载(|,&,^,~,<<,>>等).(点),三目运算符?:,赋值运算符 =。逻辑运算符 &&和||。

2024-03-25 00:00:04 288

原创 string和stringbuilder

stringbuilder是长度可变的字符序列,创建的时候如果不带参数的话,那么默认的长度就是16,如果带参数的话,那么长度就是16+参数。string是一个长度不可变的字符序列,底层是一个被final修饰的char[]数组,所以说,任何对 String 类型进行改变的操作实际上都是重新生成了一个新的String对象,然后将指针指向新的 String 对象,这样不仅效率低下,而且大量浪费有限的内存空间,所以经常改变内容的字符串最好不要用 String。

2024-03-17 23:38:58 460

原创 委托(delegate)和事件(event)

在C#中,委托可以看做是方法的容器,让方法可以像变量一样作为参数传递。委托是安全的,因为它不会在运行时改变其目标方法。事件和委托的使用语法一样。但是在类外部不可对事件赋值和调用事件。但可以在外部+= 和 -=事件。> (1-16个泛型参数有返回值委托,最后一个参数代表返回值类型)Action (1-16个泛型参数无返回值委托)Func (泛型有返回值委托,参数代表返回值类型)using System;Action(无参无返回值委托)委托可以申明在命名空间或类中。

2024-03-17 23:37:59 384

原创 策略模式(Strategy mode)

策略模式是一种行为设计模式,它定义了一系列的算法,并将每一个算法封装起来,使它们可以互相替换。策略模式使得算法可以独立于使用它的客户端变化。在游戏开发中,这意味着我们可以根据不同的游戏状态、角色类型或玩家选择,动态地改变游戏的行为。简单来说,就像手机的各种模式,静音模式,户外模式等,根据不同的需求,设置不同的模式来达到想要的效果。策略模式就像烤冷面,可以从多种酱料中选择一种,但也只能选一种。你选什么酱,他就是什么味。

2024-03-10 23:58:38 2896

原创 装饰器模式

装饰器模式允许我们通过将对象包装在装饰器对象中,动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。装饰器模式是一种用于代替继承的技术,无需通过增加子类就能扩展对象的新功能。使用装饰器模式,我们可以将一个对象与具体的装饰器关联起来,以动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。简单来说,就像moba游戏里的英雄。没有装备的英雄不能吸血,不能暴击。你给它吸血装备他就能吸血,给他暴击装备他就能暴击,吸血暴击装都给了能吸血能暴击。

2024-03-10 23:19:03 1057

原创 泛型(Generics)

在 C# 中使用泛型时,您可以使用尖括号 来声明类型参数,其中 T 是一个占位符,代表一个实际的类型。当sport调用Method1时,sport会要求提供的参数为Chinese类型,但Method1会要求参数为Human类型,Chinese是Human子类,这个不会出错。当sport调用Method2时,sport会要求返回一个Human类型,但Method2会返回一个Chinese类型,Chinese是Human子类这个不会出错。例如,Func 是一个委托泛型,它代表一个返回类型为 T 的方法。

2024-03-03 23:23:04 834

原创 协程(Coroutine)

Unity中的协程(Coroutine)是一种特殊的函数,可以在不阻塞主线程的情况下执行长时间运行的任务。协程可以在任何MonoBehaviour对象上启动,并在Unity的主循环中异步执行。在Unity中使用协程非常简单,只需要在MonoBehaviour中定义一个协程函数,然后在需要的地方调用该协程函数即可。协程函数不需要返回值,但可以在协程中调用其他函数来获取结果。协程实现分帧处理逻辑或加载资源。

2024-03-03 23:16:37 347

原创 WordPress使用

别名为网页url链接中的一部分,最好别设置为中文,否则复制该网址时会将中文解析成一大串乱码。编辑文章以及设置分类标签,分类和标签可以被添加到 外观-菜单 中。固定连接:设置你的网站url格式,自定义设置为 /%post_id%.html 即可。小工具:为你的网站添加一些工具。主题文件编辑器:修改主题文件代码,增加或删除一些主题功能。菜单:设置一些菜单内容,可以用来作为你的网站菜单。启用某些主题会出现该菜单功能,设置主题一些参数。主题:你网站应用的主题样式。自定义:可以修改你的主题样式。

2024-02-22 19:50:36 622

原创 个人博客搭建

使用彩虹云主机+百度云域名+WordPress。

2024-02-22 19:45:17 456

原创 创建TextMeshPro字体文件

相比于Unity的Text组件,TextMesh Pro提供了更强大的文本格式和布局控制,更高级的文本渲染技术,更灵活的文本样式和纹理支持,更好的性能以及更易于使用的优点。但unity自带TextMeshPro字体不支持中文。这里使用普通字体文件生成TextMeshPro字体文件。windows -> TextMeshPro -> Font Asset CreatorSource Font File :字体文件Sampling Point Size:采样点大小Padding:文字间距

2024-02-04 22:16:17 1528

原创 滑动列表(scroll view)

只需要横向滑动,取消Scroll Rect的Vertical,并取消掉Scrollbar。Content Size Fitter自适应Content大小。Constraint Count:限制的数量(最大数量)Grid Layout Group设置子节点布局。Child Alignment:子节点对齐目标。Start Axis:行优先还是列优先。Constraint:是否限制行列数量。Padding:子节点与边界的距离。Cell Size:子节点大小。Spacing:子节点间隔。

2024-02-04 16:43:49 387

原创 点击卡片翻转

Toggle覆盖整个卡片,当点击卡片时触发。Toggle组件只保留Background,并将Background设置为和卡片一样大,不透明度设置为0。toggle放在Icon下面,不然会被Icon挡住射线检测。Icon包括图片,名字和描述。当卡片正面的时候显示图片和名字,反面显示描述。卡片由三部分组成,背景图片,Toggle,Icon。实现点击卡片,卡片翻转到背面,再点击回到正面。

2024-02-04 00:01:54 354

原创 IBeginDragHandler,IEndDragHandler,IDragHandler拖拽接口

例如,如果想让一个对象在玩家拖拽它时移动,创建一个类,该类同时实现IDragHandler和IEndDragHandler接口,并相应地实现了这两个接口中的方法。IBeginDragHandler, IEndDragHandler, 和 IDragHandler 是Unity的接口,用于处理拖拽相关的功能。这个接口定义了一个方法,该方法在玩家拖拽一个对象时被连续调用。这个接口定义了一个方法,该方法在玩家结束拖拽一个对象时被调用。这个接口定义了一个方法,该方法在玩家开始拖拽一个对象时被调用。

2024-01-28 21:19:34 718

原创 数据表格读取

为了便于设置游戏数据,通常会编写一个脚本用于读取与保存数据信息。这里提供一个简单的数据读取模块,可读取CSV格式数据。第一行为属性名,用“ ,”隔开,从第三行开始写数据,数据格式为字符或数字,文件保存为txt文件即可。ConfigData为一张表的数据读取。例如敌人信息表,装备表等等。管理所有配置表,用于不同处理不同表数据的读取与保存。注意文件需要在"Resources/Data"目录下。

2024-01-26 22:42:45 391

原创 C# Static与拓展方法

当我们声明一个类成员为静态时,意味着无论有多少个类的对象被创建,只会有一个静态成员。静态成员属于类,类的静态成员变量常用于用于定义常量,因为它们的值可以通过直接调用类而不需要创建类的实例来获取。(当然类的实例化对象也可以获取静态成员)当静态成员变量没有初始化时,系统会生成一个默认静态构造函数为静态成员变量赋值(数值类型是0,引用类型是null)。因为普通的成员变量只有在类实例化对象时才分配内存,当调用静态成员函数时不能去使用没有分配内存的成员变量。**静态类不能被实例化,不能被继承,只能包含静态成员。

2024-01-20 22:47:48 689

原创 为vs code配置unity开发环境

3.在unity游戏项目中打开windows -> package manager 中查看In Project中是否有 VScode Editor,如果没有则在Unity Registry中搜索并添加,也需要添加vs Editor并更新到最新版。下载好对应的版本就可以安装了,安装好以后我们就可以执行dotnet命令,来确认是否安装成功。2.在unity游戏项目中设置Edit ->Project Setting ->Configuration 中设置为.NET Standard 2.1。

2024-01-20 13:52:35 1823

原创 行为树(Behavior Tree)

在行为树中,根节点是AI的起点,通过遍历子节点来决策AI的行为。前两个通知其父节点其操作是成功还是失败。下次树被选择时,该节点将再次被选择,此时它将再次有机会成功,失败或继续运行。行为树(Behavior Trees)是一种在游戏开发中广泛使用的AI设计模式,主要用于描述AI的行为和决策过程,实现更加智能和自然的游戏AI。它由多个节点组成,每个节点代表一个行为或决策,按照特定的方式连接在一起,形成一个树状结构。行为树通过模拟树状结构来描述AI的行为和决策过程,使得AI的行为更加灵活、自然和智能。

2024-01-15 16:08:08 3675

原创 MVC设计模式

对于开发人员来说,学习和掌握MVC模式是非常重要的,它可以提高开发效率和质量,使得构建复杂的应用程序变得更加容易。它为应用程序提供了一种结构化的方法,将数据、用户界面和业务逻辑分开,从而使得应用程序更易于维护、扩展和重用。解耦:MVC模式将应用程序的不同部分(数据、用户界面和业务逻辑)分离,降低了它们之间的耦合度。视图(View):视图是应用程序的用户界面。可扩展性:由于MVC模式将应用程序的不同部分分离,因此当应用程序需要扩展时,可以更容易地添加新的功能或模块,而不会对现有的代码造成太大的影响。

2024-01-12 16:48:55 3564

原创 设计模式之观察者模式

观察者模式是一种软件设计模式,它允许对象之间定义一对多的依赖关系,当一个对象状态发生变化时,所有依赖于它的对象都会得到通知并被自动更新。解耦:观察者模式可以有效地解耦主题和观察者之间的依赖关系,使得主题和观察者可以独立地变化和发展,提高了系统的灵活性和可维护性。自动通知:当主题状态发生变化时,所有的观察者都会自动收到通知,从而可以及时地更新自己的状态,避免了手动更新和维护的麻烦。性能开销:观察者模式需要维护一个观察者列表,并在主题状态发生变化时通知所有的观察者,这可能会导致一定的性能开销。

2024-01-05 00:07:31 735

原创 设计模式之单例模式

注意上面的代码在第3行已经实例化好了一个Singleton对象在内存中,不会有多个Singleton对象实例存在类在加载时会在堆内存中创建一个Singleton对象,当类被卸载时,Singleton对象也随之消亡了。饿汉式在类加载时已经创建好该对象,在程序调用时直接返回该单例对象即可,即我们在编码时就已经指明了要马上创建这个对象,不需要等到被调用时再去创建。懒汉式创建对象的方法是在程序使用对象前,先判断该对象是否已经实例化(判空),若已实例化直接返回该类对象。:在真正需要使用对象时才去创建该单例类对象。

2024-01-04 23:43:15 702

原创 A星寻路算法

通过该节点访问其上右下左的四个点,并判断这些点是否能够加入开放表(坐标超出网格范围,节点在关闭表,节点是障碍点。最后判断坐标点是否在开放表,不在开放表的点构建节点并加入开放表,这里默认两点间的代价为1;A星算法结合了广度优先搜索(BFS)和最佳优先搜索(Best-First Search)的特点,通过使用启发式函数评估节点的重要性,优先选择最有希望达到目标节点的节点进行扩展,从而有效地缩小搜索范围。public int CompareTo(AstarNode other) //排序方式。

2024-01-02 00:40:05 5085

原创 Unity有限状态机

例如,一个角色可能处于行走、奔跑、跳跃等不同的状态,并且根据玩家的输入或游戏逻辑,在这些状态之间进行切换。Unity作为一款强大的游戏开发引擎,也提供了丰富的工具和接口来支持有限状态机的实现。有限状态机是一种数学模型,用于描述系统在不同状态下的行为以及状态之间的转换。有限状态机可以用于模拟和控制系统的行为,例如游戏角色的状态管理、用户界面交互等。因此,在使用有限状态机时,需要根据具体的应用场景和需求进行权衡和选择,以确定是否使用有限状态机以及如何使用有限状态机来实现需求。二、有限状态机的基本概念与结构。

2023-12-13 17:45:47 2386

原创 Unity对象池

在Unity游戏开发中,我们经常需要创建大量的游戏对象,如子弹、敌人和道具等。然而,频繁地创建和销毁这些对象会消耗大量的系统资源,影响游戏的性能。对象池是一种优化技术,它通过预先创建一定数量的对象,并存储在一个预设的内存区域中,以重复使用这些对象,从而避免频繁地创建和销毁对象。在实际的游戏开发中,我们可以根据需要创建多个对象池,每个池管理不同类型的游戏对象。这样,我们可以根据不同的需求从不同的池中获取对象,以满足游戏的需求。同时,我们还需要合理地设置对象池的大小,以避免过度创建或销毁对象。

2023-12-11 19:01:28 445

原创 计算机网络笔记

发送释放连接报文段。UDP是面向报文,UDP对应用层交下来的报文既不合并,也不拆分,而是保留报文的边界,一次交付一个完整的报文(报文在UDP中是不可分割的,报文是UDP数据报处理的最小单位)。3.客户端收到服务器的确认之后再向服务器发送一个确认报文,报文中确认位ACK置1,序号为seq=x+1,确认号ack=y+1,客户进程进入已建立连接(ESTABLISHED)状态。报文段中确认位ACK置1,确认号ack=u+1,序号seq=v为前一个序号加一,服务器进入关闭等待状态(CLOSE-WAIT)。

2023-08-16 14:08:16 6241 1

原创 操作系统笔记

运行态,就绪态,阻塞态,创建态,结束态。创建态可以转换到就绪态,就绪态可转换到运行态(运行),运行态可以转换到阻塞态(阻塞)或就绪态(时间片用完),阻塞态可以转换到就绪态(得到资源),运行态到结束态。1.线程是一个轻型实体,它不拥有资源(只拥有一点必不可少的资源),每个线程都有一个唯一的标识符和一个线程控制块,线程控制块记录了线程执行的寄存器和栈等现场状态。5.地址空间和其他资源:进程的地址空间之间互相独立,同一进程的各线程间共享进程的资源,某进程内的线程对其它进程是不可见的。父子进程PCB不同。

2023-08-16 14:04:26 179

原创 删除链表的倒数第 N 个结点 LeetCode热题100

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。双指针找到倒数第n个节点,再把该节点删除。

2023-08-06 17:51:48 290

原创 两数相加 LeetCode热题100

建立链表l3,同时遍历两个链表,对每个节点的数相加,如果一个链表遍历完,停止遍历让它节点代表的数置为0,直到两个数都遍历完。设置一个进位标记,当链表遍历结束但进位标记不为0,则表示多出一位进位,再创立一个节点接受进位。给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。请你将两个数相加,并以相同形式返回一个表示和的链表。

2023-08-06 17:49:00 422

原创 环形链表 II LeetCode热题100

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。给定一个链表的头节点 head ,返回链表开始入环的第一个节点。如果链表无环,则返回 null。快慢指针,当链表有环时,快慢指针会相遇。当指针再走a个节点及到达了环的起始节点。设链表长度为 a+b (b为环的长度)

2023-08-06 17:43:28 255

原创 搜索二维矩阵 II LeetCode热题100

从右上角(或左下角)开始,当当前的数大于target,则往右遍历找到更小的数。当当前的数小于target,则往下遍历找到更大的数。编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。每行的元素从左到右升序排列。每列的元素从上到下升序排列。

2023-08-06 17:03:08 548

原创 旋转图像 LeetCode热题100

你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。利用矩阵性质,先反转矩阵的每一列元素,再把矩阵按主对角线旋转。可达到顺时针旋转九十度的效果。

2023-08-06 16:53:32 252

原创 螺旋矩阵 LeetCode热题100

模拟,朝一个方向走,走过的点标记一下,直到碰到边界或碰到已经走过的路,换个方向。右->下,下->左,左->上,上->右。给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。

2023-08-06 16:49:29 202

原创 合并区间 LeetCode热题100

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi]。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。对区间以开始点为目标进行排序,遍历所有区间,如果下一个区间开始点小于上一个区间结束点,则合并。

2023-08-06 16:23:17 227

原创 最大子数组和 LeetCode热题100

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。遍历数组,累加结果,并选最大值作为答案。如果累加的值为负数,舍弃这个序列,重新开始累加。正数会让结果变大,负数会让结果变小。想得到最大值就加正数。子数组 是数组中的一个连续部分。

2023-08-05 15:04:01 229

原创 三数之和 LeetCode热题100

里面两层循环优化证明:给出一组递增数列 a b c d e f.若 a+f>0,则x(x属于{b c d e})+f必定大于0,f肯定不会构成符合要求的组合,淘汰f。若a+fa,=>b+f>0,所以f也得收缩一位。= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。

2023-08-05 12:34:56 187

原创 盛最多水的容器 LeetCode热题100

左右指针分别从两侧的边界开始,记录每次以left和right为边界的容量。然后再改变其中更小的一个边界,重复直到两个边界重合,找到最大的一个即为答案。当改变容器边界时,改变小边界是在同时改变容器的长和高,长边小了,高可能变大也可能变小也可能不变(对应容量也有变大,变小,不变的情况)。如果改变大边界,长变小了,高肯定是不会比当前还大了,容量也不会变大。双指针法枚举了可能成为最大容量的情况(那些没有出现的情况通过以上推理可知会比枚举的情况小)。给定一个长度为 n 的整数数组 height。

2023-08-05 12:02:44 214

原创 最长连续序列 LeetCode热题100

哈希表(unordered_set)存数组,遍历哈希表,遍历到x查看x-1是否存在于哈希表中,存在即略过该元素(存在的话它会被x-1记录)。若不存在即查看哈希表中是否有x+1,且重复直到没有x+1,更新最长连续序列。给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。

2023-08-05 11:25:11 273

原创 杨辉三角 LeetCode热题100

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。直接模拟,按杨辉三角形的定义把数填进去。

2023-08-05 10:23:53 123

原创 只出现一次的数字 LeetCode热题100

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。利用异或运算,a异或a等于0,a异或0等于a。异或满足交换律和结合律。

2023-08-05 10:23:39 118

零件存销数据库操作及机房管理系统的设计

零件存销数据库操作及机房管理系统的设计

2020-12-27

校园300m创业企划书(1).docx

本创业构思在学校浓郁的创业氛围的支持下,根据本团队对长春工业大学北湖校区附近各家快递终端服务的调查,结合现在京东快递在校园的运营情况,发现了快递在校园快递最后“300m”的问题与机遇。

2020-11-25

空空如也

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

TA关注的人

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