自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 unity动态背景制作

Unity中实现动态背景的5种方法:1. 视频背景:导入视频文件,通过VideoPlayer组件播放,搭配Render Texture渲染;2. 序列帧动画:将动态背景拆分为序列帧图片,通过代码控制帧切换;3. 代码实现:用脚本控制背景滚动或颜色渐变,性能最优;4. 粒子系统:创建粒子效果作为背景,适合游戏场景;5. 静态背景:注意层级管理,避免干扰动态效果。根据需求选择合适方法,视频和粒子系统资源消耗较大,需优化性能。

2025-07-23 09:58:01 506

原创 Unity中,Panel和 Canvas的区别

摘要:Unity中,Canvas是所有UI元素的根容器,负责渲染和事件管理,而Panel是用于分组UI元素的子容器(本质是带Image的GameObject)。关键区别在于:Canvas必须作为UI层级的顶层,控制全局渲染设置;Panel则用于组织子元素(如对话框、菜单),需依附于Canvas。典型应用包括HUD(Canvas)和技能栏分组(Panel)。开发时需注意避免嵌套过多Canvas以优化性能,动态创建时可使用代码示例中的方法。常见错误包括UI未放入Canvas、渲染顺序异常等。

2025-07-22 16:51:45 672

原创 Action<bool, string>

Action<bool, string>是C#中表示接受bool和string参数且无返回值的委托类型,常用于异步操作回调(如登录验证、文件保存)和事件通知。使用时需注意空引用检查(使用?.操作符)、线程安全(Unity中需主线程执行UI操作)以及在循环中避免变量捕获问题。典型用法包括传递操作结果状态和消息,也可通过自定义接口实现更复杂的回调逻辑,提高代码解耦性。

2025-07-22 10:39:30 181

原创 Awake、Start 和 Update 函数的调用情

Unity场景转换中Awake、Start和Update函数的调用规则:Awake在脚本实例创建时立即调用,用于初始化组件和变量;Start在Awake之后运行,适合依赖其他对象的初始化;Update每帧调用实现实时逻辑。对于DontDestroyOnLoad保留的对象,Awake和Start在新场景不会被再次调用,而Update会持续执行。这些生命周期函数确保游戏对象在场景转换中正确初始化和运行。

2025-07-22 08:40:10 386

原创 类类型的参数传递给函数

在C++中,当你想要将一个类类型的参数传递给函数时,你可以直接使用类名作为参数类型。当你需要函数内部修改对象的值,并且这些修改需要反映到函数外部时,你可以按值传递对象。如果你需要在函数内部修改对象,并且希望这些修改反映到函数外部,你可以按指针传递对象。可以将对象转换为右值引用,这允许函数“拿走”对象的资源,使原始对象变为空。按值传递会创建对象的一个副本,因此函数内部对对象的修改不会影响原始对象。按引用传递可以避免复制对象,并且可以在函数内部修改对象。如果你不希望函数内部修改对象,可以按常量引用传递。

2024-11-19 09:31:37 374 1

原创 c++程序设计速学4字符串处理

暴力匹配算法是最简单的模式匹配算法,从文本的第一个字符开始,逐个字符与模式进行比较。Boyer-Moore 算法通过跳过不可能匹配的部分来提高效率。坏字符规则:根据模式中最后一个字符在模式中的位置决定跳过的步长。KMP 算法通过预处理模式来避免不必要的比较,从而提高效率。好后缀规则:根据模式的后缀在模式中的位置决定跳过的步长。计算文本中每个子串的哈希值,并与模式的哈希值进行比较。利用前缀函数在匹配失败时快速跳过已经比较过的字符。使用坏字符规则和好后缀规则来决定跳过的步长。计算模式的前缀函数(部分匹配表)。

2024-11-08 13:56:54 378

原创 c++程序设计速学笔记3复杂数据结构

树的根节点(root node)位于顶部,其他节点通过分支(branches)连接。树的每个节点可以有零个或多个子节点(child nodes),没有子节点的节点称为叶节点(leaf nodes)。堆(Heap)是一种特殊的完全二叉树,通常用于实现优先队列(Priority Queue)。在这两种堆中,每个节点的值都满足一定的条件,使得堆的根节点具有特殊的意义。图由节点(顶点,Vertices)和边(Edges)组成,可以用来表示多种现实世界的问题,如社交网络、交通网络、计算机网络等。

2024-11-07 01:07:35 1208

原创 c++程序设计速学笔记2基础数据结构

数组是一种线性数据结构,它存储相同类型的元素的连续内存块。数组的每个元素都有一个索引,用于快速访问和操作数据。然而,由于它不支持随机访问,所以不适合需要频繁访问中间元素的场景。栈(Stack)是一种后进先出(LIFO,Last In First Out)的数据结构。链表是一种线性数据结构,由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针。vector 是一种动态数组容器,它封装了数组的功能,并允许在运行时动态地调整大小。队列常用于处理需要保持元素顺序的场景,如打印任务队列、消息队列等。

2024-11-06 21:23:12 346

原创 c++程序设计速学1

在C++中学习数据结构与算法,主要涉及以下几个核心内容:基础数据结构:复杂数据结构:字符串处理:递归与分治算法:动态规划:贪心算法:排序算法:搜索算法:图算法:算法设计与分析:面向对象编程与数据结构:STL(Standard Template Library):并发与多线程:内存管理:实际问题解决:

2024-11-06 16:35:20 294

原创 特征归一化

特征归一化是机器学习中非常重要的数据预处理步骤,它主要目的是将不同量纲或数值范围的特征转换到同一尺度上,以消除特征之间的量纲影响,确保不同指标具有可比性。这一过程有助于提高机器学习模型的性能和收敛速度,特别是在使用基于梯度下降的优化算法时。

2024-10-16 11:09:13 1027

原创 模型评价方法

在实际应用中,需要根据具体的数据集、任务需求和模型类型来选择合适的评价方法。它展示了模型在不同阈值下的真正例率(True Positive Rate,即召回率)和假正例率(False Positive Rate)之间的关系。模型评价是机器学习领域中的一个重要环节,它旨在评估模型的性能并确定其是否满足实际应用的需求。K折交叉验证:将数据分成K份,每次用K-1份做训练集,1份做验证集,循环K次。在某些情况下,ROC曲线可能不够敏感,无法准确反映模型在不同类别上的性能差异。

2024-10-15 19:22:56 639

原创 内联函数inline

在这个示例中,square函数被定义为内联函数。如果编译器决定内联,那么在main函数中调用square(num)时,会被替换为num * num。内联函数通常不适用于递归函数,因为递归调用会导致无限展开,编译器通常会忽略inline建议。过度使用内联函数会导致代码膨胀,增加二进制文件的大小,并可能降低缓存效率,从而影响性能。通常,内联函数的声明和定义放在一起,因为编译器需要在编译时看到函数体以决定是否内联。在类的定义中直接定义的成员函数(在类声明中定义的函数体)默认是内联的。

2024-10-13 19:58:01 365

原创 标准模板库STL

C++ 的标准模板库(Standard Template Library,简称 STL)是一组由 C++ 标准委员会制定的模板类和函数,用于实现常见的数据结构和算法STL。STL 提供了丰富的算法,用于对容器中的元素进行各种操作,如排序、查找、复制、替换、变换和生成等。除了容器适配器外,STL 还提供了迭代器适配器和函数适配器,用于改变迭代器或函数对象的行为。适用容器:支持随机访问迭代器的容器,或可以通过迭代器进行反向遍历的容器。功能:删除容器中的元素,可以是单个元素或指定范围内的元素。

2024-10-13 19:57:05 967

原创 静态数据常量与变量的辨析及应用

在C++中,静态数据成员是类的一部分,但它们不属于类的任何特定对象。静态数据成员在程序的整个运行期间只存在一个副本,无论创建了多少个类的对象。以下是一些关于C++中静态数据成员的关键知识点:声明和定义:访问:初始化:作用域:存储:线程安全:静态数据成员函数:友元和继承:静态数据成员通常用于那些应该被类的所有对象共享的数据,例如计数器,或者那些与类本身相关而不是与任何特定对象相关的数据。在编程中,常量和变量是存储和操作数据的基本概念。以下是关于常量和变量的一些基础知识:定义:变量是

2024-10-11 10:35:14 950

原创 指针的使用方法以及其他相关概念

这里ptr就是一个指向a的指针,存储了a的内存地址。指针是一个变量,它存储的是另一个变量的内存地址,而不是值本身。空指针是指不指向任何变量的指针,可以用来表示一个无效的指针。需要注意的是,使用完动态分配的内存后,一定要使用delete或delete[](对于数组)来释放内存,以避免内存泄漏。在这个例子中,swap函数通过指针参数接收两个整数的地址,并交换它们所指向的内存地址中的值。这里的int* ptr表示ptr是一个指向整型的指针,&num是获取num的内存地址。,即可得到该指针所指向的变量的值。

2024-10-11 10:31:54 521

原创 友元函数friend

在C++中,友元函数(Friend Function)是一种特殊类型的函数,它不属于类的成员函数,但可以访问类的私有成员和保护成员。友元函数可以是普通函数、其他类的成员函数或类的成员函数模板。

2024-10-10 19:55:40 431

原创 nullptr与宏

在C和C++等编程语言中都是代码复用的重要手段,但它们之间存在一些显著的区别。本质区别宏定义:是预处理指令,在编译前进行文本替换,不分配内存,不占运行时间,只占编译时间。函数:是程序中的一段独立代码,用于实现特定的功能,可以被多次调用。函数调用会带来额外的开销,如栈空间分配、返回地址记录、参数压栈等。参数类型宏定义:宏的参数是无类型的,只要参数的操作是合法的,它可以用于任何参数类型。这意味着宏可以处理不同类型的参数,但也可能导致类型不匹配的问题。

2024-10-07 15:52:07 606

原创 C 语言stdlib.h

这些函数在特定的应用程序或系统编程中可能会有用,但在日常编程中使用较少。这个头文件包含了许多通用的函数和宏定义,这些函数和宏定义执行各种通用的任务,如内存分配、程序控制、类型转换、随机数生成等。头文件中包含了许多不常用的函数,这些函数在特定的场合或较少使用的编程任务中可能会用到。中的函数时,需要包含这个头文件,以便编译器知道这些函数和宏的定义。:生成一个唯一的文件名并打开该文件,带有随机后缀。:生成一个唯一的文件名并打开该文件。:设置随机数生成器的种子。:执行一个shell命令。:设置随机数生成器的种子。

2024-09-29 23:16:22 867

原创 数据结构——单链表2

判断单链表是否存在环以及入口节点。求单链表倒数第K个节点。

2024-09-28 22:38:23 422

原创 数据结构——链表1

特点:每一个节点都是在堆内存上独立new出来的。

2024-09-27 12:20:09 262

原创 基本双指针问题

【代码】奇偶数调整问题。

2024-09-26 08:30:29 261

原创 数组代码输出

【代码】数组代码输出。

2024-09-25 15:09:40 155

转载 线性回归算法

线性回归的目标是找到一条直线(在一元线性回归中)或一个超平面(在多元线性回归中),使得数据点到该直线或超平面的距离之和最小。在进行分析之前,需要对数据进行检查和处理,去除异常值或对其进行适当的处理。线性回归需要足够的数据量来保证模型的准确性和稳定性。同时,数据的质量也很重要,包括数据的准确性、完整性和一致性等。通过线性回归可以分析自变量与因变量之间的关系,判断自变量对因变量的影响程度。线性回归可以用于预测因变量的值,例如房价预测、销售预测等。线性回归可以对数据进行拟合,找到数据的趋势和规律。

2024-09-21 22:31:14 680

原创 KNN回归

【代码】KNN回归。

2024-09-20 12:25:44 350

原创 K 近邻算法(K - Nearest Neighbors,KNN)

K 近邻算法

2024-09-19 12:23:48 1112

原创 算法 分类

机器学习算法分类深度学习算法分类

2024-09-19 12:04:42 671

空空如也

空空如也

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

TA关注的人

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