- 博客(126)
- 收藏
- 关注
原创 Lua学习记录(6) --- Lua中的元表相关内容
本文介绍了Lua中元表(metatable)的概念及其核心功能。元表是Lua为table提供扩展行为的机制,通过定义各种元方法(__index、__newindex、__tostring等)来实现运算符重载、自定义索引等功能。文章详细讲解了元表的7个主要应用场景:1)基本设置方法;2)__tostring实现自定义打印;3)__call使表可被调用;4)运算符重载;5)__index实现属性查找;6)__newindex控制赋值行为;7)rawget/rawset绕过元表机制。元表设计体现了Lua在保持简洁
2025-12-03 00:08:43
598
原创 Lua学习记录(5) --- Lua中的协同程序 也称线程Coroutine的介绍
本文介绍了Lua中协程的基本概念和使用方法。主要内容包括:1)Lua协程需要通过创建、激活才能执行,不同于C#的自动执行;2)协程的两种创建方式(create和wrap)及其对应的调用方法;3)协程的四种状态(suspended、running、dead、normal);4)协程可持续执行的特点,通过yield挂起和resume恢复实现分段执行。文章还比较了Lua与C#协程的区别,并提供了详细的代码示例说明协程的创建、调用和执行过程。
2025-12-01 23:45:04
952
5
原创 Lua学习记录(4) --- Lua中多文件调用 以及 关于位运算符的零碎知识点
Lua跨文件调用使用require加载脚本文件,返回包含全局变量和函数的表,但无法访问本地变量(local)。可通过package.loaded判断脚本是否已加载。_G表存储所有全局变量。Lua支持多返回值、短路运算(and/or),并可模拟三目运算符。垃圾回收自动管理内存,提供collectgarbageAPI。Lua自带库包括基础库、字符串处理(string)、表操作(table)、数学计算(math)、协程(coroutine)和系统交互(os)等模块,其中os库提供时间处理、文件操作等功能。
2025-12-01 00:36:27
731
原创 Lua学习记录(3) --- Lua中的复杂数据类型_table
本文介绍了Lua中table数据类型的多种用法。table可以充当数组、二维数组、字典和类等多种角色,支持自定义索引和不同数据类型的混合存储。文章详细讲解了表的声明方式、遍历方法(包括ipairs和pairs的区别)、作为字典的键值对操作、模拟面向对象编程的方法,以及table提供的内置函数(insert、remove、sort、concat等)。特别强调了#获取表长度的局限性,并提供了更可靠的遍历方式。通过丰富示例代码,展示了table在Lua编程中的灵活性和强大功能。
2025-11-12 21:49:10
957
原创 Lua学习记录(2) --- Lua中的复杂变量类型_function
Lua函数特性摘要:Lua中函数作为特殊变量类型,支持两种声明方式(function名()end或变量=function()end)。函数支持多返回值(用多个变量接收)、参数自动补nil/丢弃多余参数,但不支持重载(后定义覆盖前定义)。变长参数通过...实现,需用表存储。支持函数嵌套和闭包(内层函数可访问外层变量,延长变量生命周期)。type()可检查函数类型,体现了Lua灵活的编程特性。
2025-11-12 19:00:49
809
原创 Lua学习记录(1) --- Lua中的条件分支语句和循环语句
Lua语言中的流程控制语句主要分为条件分支和循环语句。条件分支包括单条件if-then-end和多条件if-elseif-end结构,所有分支必须以end结尾。循环语句有三种形式:while循环在满足条件时执行;repeat-until循环执行到满足终止条件;for循环通过初始值、结束值和步长控制循环次数。所有循环结构同样必须以end结尾,for循环的步长默认为1但可自定义正负增量。
2025-11-12 17:23:43
384
原创 Lua环境的配置 和 Lua的一些简单语法逻辑
本文介绍了Lua环境的配置和基础语法。环境配置部分推荐使用Lua for Windows安装包,配合Sublime Text或VSCode编辑器,详细说明了VSCode需要安装的三个插件和解释器路径设置。语法部分涵盖了注释、变量类型(数字、字符串、布尔值、nil等)、字符串操作(拼接、转换、查找、截取等)以及运算符(包括幂运算^但不支持自增/减运算符)。特别指出Lua索引从1开始,字符串可用单/双引号,且提供了ASCII码转换、字符串反转等实用方法。文中还强调Lua缺少三目运算符但可通过and/or组合实现
2025-11-12 16:10:41
653
原创 AB包---AssetBundle的介绍与使用
本文介绍了Unity中的AssetBundle(AB包)技术,主要包括:1. AB包的概念与作用,它是一种平台特定的资源压缩包,用于实现热更新和减小初始包体;2. AB包浏览器的安装和使用方法;3. AB包的打包流程及参数设置;4. 常用API包括同步/异步加载资源包和资源、资源卸载等操作;5. AB包之间的依赖关系处理方法,重点介绍了通过主包获取依赖关系的方法。文章通过具体示例详细讲解了AB包从打包到使用到卸载的完整流程,为Unity开发者提供了实用的AB包技术指南。
2025-11-12 11:28:02
1275
原创 单调栈及一些常见题
什么是单调栈?顾名思义就是栈内元素保持某种单调性,从栈底到栈顶,递增或者递减。递增时,这个结构用于寻找左右两边离自己最近并且小于自己元素值的索引边界,就比如说数组:[1 2 4 5 3] 客观上1的左边比自己小的,没有所以用-1表征。右边比自己小的也没有,所以也用-1表征。同理,我们可以获得每个元素的诸如此信息:2 :[0,-1];4 :[1 , 4 ] 等记住我们只关心索引,因为有了索引,我们就可以获取到数组中的元素值。所以维护一个单调栈,这里以递增示例的基本步骤是:1)遍历整个数组。
2025-09-13 09:48:07
466
原创 链表相关题目---19、删除链表的倒数第N个节点
这道题 很常规的思路就是 先拷贝两次头结点 然后一个先走N步 然后同时开始走,直到先走N步的节点为空后,就停止,此时另一个没提前走的节点的下一个就是要删除的节点。不过需要注意的是,我们需要单独处理链表只有1个的时候的情况,以及如果删除的是头结点该怎么处理。所以,处于对头结点处理的方便,我们选择创建两个哑节点,next指向头结点,请注意这里是因为对链表只有遍历操作,没有其他什么操作,所以可以两个互相不影响,只是找位置而已。
2025-08-25 09:48:16
199
原创 链表相关题目---2、两数之和
虚拟节点加模拟:具体思路,先随便创建一个头结点然后对这个头结点的next作为起点然后连接每一个数字,最后返回head.next就行了。在中间主要处理的难点是进位,每次每个节点的值应该是两个链表的当前节点值之和再加上进位,所以我们需要将进位的作用域设置的大一点。然后同时遍历两条链表,直到一个为空,然后接着处理就行了。
2025-08-25 09:16:00
332
原创 利用C语言实现信号相关检测并实现数据库存储及网络传输
本项目是一个基于C/C++开发的移动通信小区智能选择系统,主要实现了对5G/4G网络中最佳服务小区的自动识别与选择。系统通过处理I/Q信号数据,结合主同步信号(PSS)和同步信号(SS)进行智能匹配,包含六大核心模块:链表数据结构、小区管理、数据库交互、文件处理、映射优化和网络通信。 关键技术包括:双向链表数据结构、MySQL数据库管理、Windows Socket网络编程、多线程并发处理以及信号处理算法。系统工作流程为:首先加载并处理信号数据文件,计算平均信号强度并进行阈值筛选;然后进行信号相关性检测。
2025-07-23 11:28:13
1174
原创 Unity基础学习(十一)Debug的内容以及异常清单
时,Unity 编辑器会立即暂停(相当于手动点击工具栏的 暂停),冻结游戏时间轴。主要是用于指定内容执行完你想暂停查看才会使用,再点击上面的暂停结束就会恢复。Debug类提供了一系列方法用于调试和输出信息,仅在开发版本生效,发布时会被移除。注意:上述两个方法都只能绘制线,但是不会返回任何信息,仅视觉作用。第一点异常非常常见,在编写代码时千万注意对引用对象的判空处理。暂停编辑器,方便检查当前状态。输出普通日志(白色),用于跟踪程序流程。输出警告(黄色),提示潜在问题。输出错误(红色),标识严重问题。
2025-05-28 07:44:01
724
原创 Unity学习总结篇(1)关于各种坐标系
在Unity中,坐标系系统是游戏开发中的基础概念,主要包括世界坐标系、物体坐标系、屏幕坐标系和视口坐标系。世界坐标系是全局参考系,原点为场景原点,所有对象的位置、旋转和缩放均基于此坐标系。物体坐标系则是相对于父对象的位置,若无父对象则与世界坐标系一致。屏幕坐标系基于屏幕像素,左下角为(0,0),右上角为(Screen.width, Screen.height)。视口坐标系是归一化坐标系,范围[0,1],基于摄像机视口。 Unity提供了多种API和属性用于这些坐标系之间的转换,如transform.posi
2025-05-18 07:32:18
860
原创 Unity基础学习(十五)核心系统——音效系统
本文介绍了Unity中音频处理的核心组件和方法。首先,音频文件可以通过多种格式(如wav、mp3等)导入Unity,并提供了多种参数设置,如单声道转换、后台加载等。其次,AudioSource组件用于播放音频,支持多种控制参数,如音量、音调、循环播放等。AudioListener组件则负责接收和混合音频信号,通常绑定到主摄像机。此外,文章还介绍了如何通过代码控制音频的播放、暂停、停止等操作,以及如何使用麦克风进行音频录制和处理。最后,通过示例代码展示了如何实现麦克风录音和播放功能。
2025-05-15 14:06:13
1968
原创 Untiy基础学习(十四)核心系统—物理系统之碰撞检测代码篇 刚体,碰撞体,材质
一、碰撞/触发事件函数对照表函数名类型触发条件参数类型用途碰撞事件两物体碰撞开始时Collision处理碰撞开始逻辑(如伤害、音效)碰撞事件两物体碰撞持续中每帧Collision处理持续接触逻辑(如摩擦音效)碰撞事件两物体碰撞结束时Collision处理碰撞结束逻辑(如状态重置)触发器事件物体进入触发器范围时Collider处理触发开始逻辑(如拾取道具、传送)触发器事件物体停留在触发器内每帧Collider处理持续触发逻辑(如持续治疗、区域伤害)触发器事件物体离开触发器范围时。
2025-05-14 08:26:56
1772
原创 Unity基础学习(十二)核心系统—物理系统之碰撞检测组件篇(1)刚体,碰撞体,材质
RigidBody组件是Unity物理系统的核心,用于模拟游戏对象的物理行为,如重力、弹力和摩擦力。刚体分为2D和3D两种,分别适用于不同的游戏场景。刚体的关键参数包括质量(Mass)、空气阻力(Drag)、旋转阻力(AngularDrag)、是否受重力影响(UseGravity)、是否参与动力学计算(IsKinematic)、插值模式(Interpolation)和碰撞检测模式(CollisionDetection)。这些参数共同决定了物体在虚拟世界中的运动方式和交互效果。例如,质量影响物体的惯性和碰撞动
2025-05-12 08:22:38
1798
原创 Unity基础学习(九)输入系统全解析:鼠标、键盘与轴控制
Unity中的Input类提供了多种输入检测功能,包括鼠标、键盘、默认轴和其他输入设备。鼠标输入可以通过Input.mousePosition获取位置,并通过GetMouseButtonDown/Up/Button检测按键状态。键盘输入使用GetKeyDown/Up/Key检测按键,支持组合键检测。默认轴输入通过InputManager配置,支持键盘、鼠标、手柄等多种设备,常用轴如Horizontal、Vertical、Fire1等,通过GetAxis或GetButton调用。其他输入设备包括触摸屏、手柄、
2025-05-09 08:33:23
2619
原创 力扣每日一题1128等价多米诺骨牌对的数量
就这么想:【1,2】和【2,1】是相等的,也就是说。我们可以将每个都变成先小后大的样子,存到一个哈希表中。如果提供的顺序是【1,2】,【1,2】,【1,2】。那么满足题意的有几个呢?输入:dominoes = [[1,2],[1,2],[1,1],[1,2],[2,2]]输入:dominoes = [[1,2],[2,1],[3,4],[5,6]]即一张骨牌可以通过旋转。度得到另一张多米诺骨牌。
2025-05-05 08:47:14
467
数字信号处理+重庆邮电大学通信工程实验课+平常检查轻轻松松
2025-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅