自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

徽程22级的在读学生

一枚喜欢game的射手座

  • 博客(152)
  • 问答 (1)
  • 收藏
  • 关注

原创 Unity百游修炼24——C#和Unity实现2D完整小项目《捕鱼达人》(附有完整项目和素材)

本文详细介绍了2D游戏开发的全过程,包括版权声明、UI设计、水波纹特效、炮台系统、鱼群生成机制和子弹发射功能。重点讲解了鱼群随机生成算法、炮台鼠标跟随旋转、子弹发射销毁等核心功能的实现方法,提供了完整的C#代码示例。文章采用模块化设计思路,从场景搭建到具体功能实现,系统性地展示了2D游戏开发的完整流程和技术要点。

2025-10-24 19:22:08 1340

原创 Unity物理系统之射线检测详解

射线检测是Unity中常用的物体相交判断方法,可以通过指定起点和方向发射射线,检测与碰撞器的相交情况。射线对象Ray由起点和方向向量构成,可通过Physics类中的Raycast函数进行检测,包括基本碰撞判断、获取单个物体信息(RaycastHit)和多个物体信息(RaycastAll)。实际应用包括鼠标点击检测、物体拖拽等,使用时需注意距离参数和层级遮罩的设置。示例代码展示了如何实现鼠标点击创建弹孔特效以及拖动立方体的功能。

2025-10-22 13:45:07 418

原创 Unity物理系统之范围检测详解

本文介绍了Unity中的碰撞检测与范围检测技术。碰撞检测需要刚体和碰撞器组件,分为物理碰撞和触发检测两种方式。范围检测用于瞬时攻击判定,要求被检测对象具有碰撞器,提供盒状、球形和胶囊三种检测API,通过中心点、尺寸等参数确定检测范围,并支持层级筛选。文章还讲解了层级编号的二进制表示方法,最后通过一个练习题演示了三种范围检测的实现:按J键执行立方体前方检测,K键执行前方5米胶囊检测,L键执行10米半径球形检测,检测结果会输出范围内"Monster"层对象的名称。

2025-10-22 11:23:52 793

原创 Unity画线功能LineRenderer详解附有案例

Unity中LineRenderer组件详解 LineRenderer是Unity提供的画线组件,用于在场景中绘制线段,常用于攻击范围、武器红外线等场景。其参数包括编辑模式(添加/编辑点)、线段属性(循环、宽度、颜色、对齐方式等)、光照设置(阴影、探针)和坐标系选择。可通过代码动态创建线段,设置位置、材质和光照效果。示例练习包括绘制圆形轨迹和鼠标移动轨迹,通过设置顶点位置和数量实现。该组件支持丰富的自定义选项,适用于多种可视化需求。

2025-10-21 22:01:52 921

原创 Unity百游修炼23——C#和Unity实现2D完整小项目《露娜历险记》(含完整项目流程)

本文详细介绍了《露娜幻想》游戏开发过程,包含场景搭建、角色控制、动画设计、UI系统等核心模块的实现。主要内容包括:1.使用Unity引擎搭建2D游戏场景,配置地图层级和角色碰撞体;2.实现WASD移动控制与Shift键跑步功能,开发8方向动画状态机;3.设计血瓶收集、攀爬跳跃等交互系统;4.创建虚拟摄像机跟随及UI血条显示;5.集成DOTween插件实现平滑跳跃动画。项目采用模块化设计,包含完整的代码示例和参数配置说明,所有素材均声明版权合规。最终成品可通过网盘获取完整源码。

2025-10-21 17:42:14 1358

原创 Unity场景异步切换详解

本文介绍了Unity场景加载的两种方式:同步加载和异步加载。同步加载通过SceneManager.LoadScene实现,但会导致主线程阻塞、画面卡顿且无法显示进度。异步加载通过SceneManager.LoadSceneAsync实现,分为事件回调和协程两种方式:1)事件回调方式简单直观,适合加载后处理逻辑;2)协程方式更强大,可实时更新进度条,支持分阶段加载(场景、资源、UI等),通过AsyncOperation.progress获取进度并结合业务逻辑自定义进度显示。关键点包括使用DontDestroy

2025-10-13 14:20:36 1095

原创 Unity中Resources资源动态加载知识点详解

本文总结了Unity中的特殊文件夹路径获取及资源加载方法。主要包含:1)工程路径、Resources、StreamingAssets等特殊文件夹的作用和获取方式;2)Resources资源同步加载的通用方法,包括预设体、音效、文本等不同类型资源的加载;3)异步加载的实现方式及注意事项;4)资源卸载的两种方法。重点介绍了Resources文件夹的特点和使用规则,包括资源加载、内存管理及性能优化等内容,为Unity开发中的资源管理提供了实用指导。

2025-10-13 13:51:05 999

原创 MonoBehavior中协程详解

Unity支持多线程但新线程无法访问Unity对象,需注意关闭。协程是"假"多线程,通过分时执行避免主线程卡顿,常用于异步加载等场景。使用需继承MonoBehaviour,返回IEnumerator类型,通过yield return控制执行时机。协程与线程不同,它依附于主线程分步执行。可设置不同yield return条件(如下一帧、等待秒数等),并受对象激活状态影响。文中提供了协程实现计秒器和批量创建立方体(分帧处理防卡顿)的示例代码。

2025-10-10 10:11:37 513

原创 Unity中MonoBehavior类中的延迟函数Invoke详解(含案例)

Unity中的延迟函数通过Invoke和InvokeRepeating实现,可设置延迟时间或重复调用。使用时需传入函数名字符串,但无法直接传参。通过CancelInvoke可取消延迟执行,IsInvoking可检测延迟函数状态。需注意:对象失活不影响延迟函数执行,但对象销毁或脚本移除会导致延迟函数终止。

2025-10-09 20:45:41 350

原创 2025Unity中的核心数学工具(三)四元数(穿插Unity实战相关案例)

本文主要探讨了四元数在3D旋转中的应用及其与欧拉角的比较。文章首先分析了欧拉角的优缺点:直观易用但存在万向节死锁问题。接着详细介绍了四元数的构成原理,说明其通过轴-角对表示旋转,能有效避免万向节死锁。在Unity实现方面,讲解了Quaternion结构体的使用方法、四元数与欧拉角的相互转换,以及四元数插值运算和LookRotation功能。最后通过飞机子弹发射案例(单发、双发、扇形、环形)展示了四元数的实际应用,演示了四元数相乘实现旋转叠加的效果。全文系统性地阐述了四元数在3D图形编程中的优势和应用场景。

2025-10-09 19:37:56 820

原创 2025Unity中的核心数学工具(二)向量详解(穿插Unity实战相关案例)

本文系统介绍了向量的基础概念与运算方法,重点讲解了向量计算、点乘叉乘原理及其在Unity中的应用。主要内容包括:1)向量定义及模长、单位向量计算方法;2)向量加减乘除的几何意义和运算规则;3)点乘在方位判断和角度计算中的应用;4)叉乘在法向量获取和左右位置判断中的使用;5)向量插值运算(Lerp/Slerp)的两种实现方式及其区别。通过摄像机跟随、入侵者检测等Unity实例,展示了向量运算在游戏开发中的实际应用。文章最后提供了完整的代码实现,涵盖匀速和变速两种移动方式的向量插值应用。

2025-10-09 15:00:23 1262

原创 2025Unity中的核心数学工具(一)详解(穿插Unity实战相关案例)

本文系统介绍了Unity开发中的数学工具与坐标系系统。在数学工具部分,详细讲解了Mathf类与C#标准Math库的区别,重点分析了Mathf的常用方法(如取整、极值计算、幂运算等)和插值运算Lerp的两种实现方式(减速/匀速运动),并通过物体移动案例演示应用。三角函数部分阐述了弧度与角度转换、正余弦函数及反三角函数的用法,展示了基于正弦曲线的物体运动实现。坐标系部分全面解析了世界坐标系、物体坐标系、屏幕坐标系和视口坐标系的特性及转换方法,为游戏开发中的空间定位和交互提供技术支撑。全文通过代码示例和效果演示,

2025-09-29 02:15:00 1230 1

原创 2025GUI项目实践:Unity编辑模式下GUI运行

本文介绍了一套基于Unity的GUI控件系统设计方案。系统采用九宫格布局管理,通过枚举定义9种对齐方式实现自适应定位。核心控件基类CustomGUIControl封装了通用属性和行为,支持样式切换与实时预览功能。具体实现了按钮、标签、复选框、输入框和滑动条等控件,均具备事件驱动机制和状态管理功能。特别设计了ToggleGroup实现单选效果,并优化了编辑模式下的显示顺序控制。整个系统通过继承和组合提高了代码复用性,同时提供Inspector面板配置,增强了开发效率和使用便捷性。

2025-09-27 00:00:00 1338 8

原创 2025Unity超详细《坦克大战3D》项目实战案例(上篇)——UI搭建并使用和数据持久化(附资源和源代码)

2025Unity超详细《坦克大战3D》项目实战案例(上篇)——UI搭建并使用和数据持久化(附资源和源代码)

2025-09-26 21:02:06 1594

原创 2025Unity必备知识——GUI(完整详细)

Unity GUI开发指南摘要 本文系统介绍了Unity即时模式GUI(IMGUI)的开发方法,重点解析其作为开发者工具的核心特性与实用技巧。IMGUI区别于UGUI,专为调试工具、编辑器扩展和自定义检视面板设计,不适合玩家界面开发。 核心内容: 基础控件:详细讲解文本、按钮、多选框等9种基础控件的API使用、参数配置和交互逻辑 复合控件:剖析工具栏、滚动视图、窗口等6种高级控件的实现原理,包括可拖动窗口和模态窗口的特殊处理 样式定制:提供全局颜色控制、GUISkin皮肤系统和GUILayout自动布局三种

2025-09-26 02:15:00 1468 2

原创 C#练习题——多线程制作贪吃蛇的基本移动等操作

该程序实现了一个控制台贪食蛇游戏,使用多线程处理输入和渲染。主线程负责每500ms更新方块位置和绘制,后台线程检测WASD按键来改变移动方向。Icon类封装了方块的位置、方向及移动逻辑,其中左右移动2格以适配控制台字符比例。程序通过共享变量实现线程间通信,无需复杂同步机制。

2025-09-26 00:00:00 349

原创 2025Unity 游戏项目开发必备知识点(2)——Unity PlayerPrefs 数据管理工具类详解

本文介绍了Unity中PlayerPrefs数据存储工具的扩展实现,重点讲解了基于反射的PlayerPrefsDataMgr工具类。主要内容包括: PlayerPrefs基础特性:键值存储、仅支持int/float/string三种类型、跨平台存储路径差异等。 工具类核心设计: 单例模式确保全局唯一实例 反射自动生成结构化键名避免冲突 扩展支持bool、List、Dictionary和自定义类等复杂类型 递归存储/读取实现嵌套数据结构 关键技术点: Type和FieldInfo反射获取类型信息 泛型类型参数

2025-09-25 09:40:53 1254

原创 C#练习题——Lambad表达式的应用

文章讲解C#中委托和闭包的使用技巧。通过示例演示如何避免常见的闭包陷阱:在循环中创建局部变量副本(int index=i)来确保每个委托捕获独立的值,而非共享循环变量。同时展示了委托链的构建方式(Action a=null; a+=...)和执行方法(PrintNum()()的双括号语法),最终实现返回一个能正确打印1-10的委托函数。完整代码展示了在for循环中创建闭包的正确实现方式。

2025-09-25 00:00:00 230

原创 C#练习题——List排序与反转操作详解:怪物属性排序示例

这篇C#代码实现了一个怪物排序系统:1.定义Monster类包含攻击力、防御力、血量属性;2.随机生成10个怪物并存入List;3.提供4种排序方式:按攻击力/防御力/血量升序排列,以及列表反转;4.使用Lambda表达式实现比较逻辑;5.包含异常处理确保输入有效性。程序通过用户选择的排序类型对怪物列表进行相应排序并输出结果,展示了集合排序和异常处理的实际应用。

2025-09-25 00:00:00 256

原创 2025Unity 游戏项目开发必备知识点(1)

Unity开发核心技术摘要:场景切换使用SceneManager.LoadScene(),需提前在Build Settings添加场景;退出游戏用Application.Quit(),仅发布后生效。鼠标控制包括隐藏/显示(Cursor.visible)、锁定模式(CursorLockMode)和自定义光标(SetCursor)。随机数生成推荐Unity的Random.Range(),支持整数和浮点数。委托使用包括C#的Action/Func和Unity的UnityAction。模型资源导入建议FBX格式,可

2025-09-24 18:01:54 947

原创 C#游戏项目——飞行棋(附项目源码)

本项目是一个基于C#控制台开发的飞行棋游戏,采用场景管理模式分为开始、游戏和结束三个场景。游戏支持双人对战(玩家vs电脑),包含80个随机生成的格子(普通、炸弹、暂停和时空隧道四种类型),具有完善的游戏规则和特殊效果。通过面向对象编程实现模块化设计,包括地图系统、玩家系统和回合制游戏逻辑。控制台界面采用不同颜色区分玩家和格子类型,提供清晰的游戏状态提示。项目展示了C#游戏开发的核心技术,包括场景管理、对象设计、算法实现和用户交互,代码结构清晰完整,是一个典型的学习案例。

2025-09-24 13:33:19 980

原创 C#练习——事件

本文设计了一个基于事件机制的热水器温度监控系统。系统包含加热器、报警器和显示器三个组件,当水温超过95度时触发事件通知。加热器类(Heater)作为事件发布者,通过Action<int>事件在温度达到阈值时触发;报警器(Alarm)和显示器(Display)作为订阅者,分别实现语音报警和状态提示功能。系统采用一次性事件通知机制,触发后自动清空订阅,确保只提示一次。核心设计包括温度监测、事件发布/订阅机制和阈值判断,使用C#实现了完整的温度监控流程。

2025-09-24 00:00:00 291

原创 C#练习题——匿名方法与闭包实战:函数式编程的优雅实现

这篇文章介绍了一个C#闭包应用示例,实现了一个乘法器工厂函数。核心功能是:DealWith函数接收一个整数参数,返回一个Action委托,该委托会记住第一个参数并与后续传入的参数相乘。代码展示了闭包机制如何捕获外部变量num,即使外部函数执行完毕仍能保持其值。使用方法是通过DealWith(3)创建固定乘数3的乘法器,调用action(5)即可计算3×5。完整代码演示了这种闭包模式在实际应用中的实现方式。

2025-09-24 00:00:00 386

原创 C#练习题——List排序游戏道具系统排序算法详解

本文介绍了如何实现一个物品排序系统。通过定义一个Item类,包含类型、品质和名称属性,随机生成10个物品并存入List。核心是使用Lambda表达式实现多条件排序:优先按类型降序,其次按品质降序,最后按名称长度降序。代码展示了完整的排序过程,包括随机物品生成、自定义比较器的实现以及排序结果的输出。该方案适用于需要复杂排序规则的物品管理系统。

2025-09-24 00:00:00 239

原创 C#练习题——LinkedList 的进阶应用与测试

本文演示了如何使用C#的LinkedList实现随机数存储及双向遍历。首先创建链表并添加10个1-100的随机整数,然后通过First/Next属性正向遍历打印数值,再通过Last/Previous属性反向遍历打印。代码展示了链表动态存储的优势和双向遍历的实现方式,完整呈现了从创建、填充到遍历输出的整个过程。

2025-09-23 00:00:00 318

原创 C#练习题——委托练习

本文通过两个C#委托应用案例展示事件驱动编程。第一个案例模拟家庭用餐场景:母亲类作为事件发布者,通过Action委托通知家庭成员用餐;父亲和子女类作为订阅者实现Eat()方法。第二个案例模拟游戏系统:怪物死亡时通过Action<Monster>委托触发三个子系统(玩家金钱、界面显示、成就统计)的联动更新。两个案例均采用"发布-订阅"模式,核心实现包括:1)定义委托字段;2)使用+=注册方法;3)空值检查后触发事件。代码体现了委托在多播、类型安全、解耦等方面的优势,并遵循&qu

2025-09-23 00:00:00 364

原创 C#练习题——Dictionary

本文包含两个编程任务:1. 数字转中文大写功能:使用字典存储数字0-9的中文大写映射,通过整除和取模分离数字位数,根据位数不同采用条件分支处理,最终实现3位以内数字的转换。2. 字母统计功能:将字符串统一转为小写后,使用字典统计每个字母出现次数,通过检查字典键是否存在来更新计数,最后遍历输出结果。两个任务都充分利用了C#字典的特性,分别实现了数字转换和字符统计功能。

2025-09-22 00:00:00 570

原创 C#练习题——双向链表的创建,添加和删除

本文介绍了双向链表的基本实现方法,主要包括节点结构定义和核心操作实现。双向链表节点包含数据域(data)、前驱指针(LastNode)和后继指针(nextNode)。核心功能包括:1)添加操作(Add):在链表尾部插入新节点,处理空链表和非空链表两种情况;2)删除操作(Remove):支持删除头节点、尾节点和中间节点三种情况,需要重新连接前后节点的指针;3)显示操作(Show):遍历链表输出所有元素。文中提供了完整的C#实现代码,并包含测试用例,展示了如何创建双向链表、添加元素、删除指定位置节点以及遍历显示

2025-09-22 00:00:00 703

原创 C#练习题——List

本文演示了两个C#编程任务。任务一创建整型列表,从10到1添加元素后删除第五个元素并遍历输出。任务二实现怪物管理系统,通过抽象类Monster和子类Boss/Gablin展示多态性,在构造函数中自动将实例添加到静态列表,并调用不同攻击方式。核心概念包括泛型集合、抽象类、多态性和静态成员,展示了面向对象编程的特性应用。完整代码提供了具体实现,包括列表操作、继承体系以及多态调用等关键技术点的实践示例。

2025-09-21 10:20:29 464

原创 C#练习题——泛型实现单例模式和增删改查

本文介绍了两个C#泛型编程任务:1) 使用泛型实现单例模式基类,通过约束类型参数T必须有无参构造函数,创建静态实例并提供全局访问点;2) 实现泛型动态数组类ArrayList<T>,包含增删查改功能,采用容量翻倍扩容策略,平均添加时间复杂度O(1)。核心代码展示了泛型单例继承、动态扩容机制、索引器实现等技术要点,两个任务均体现了泛型编程的类型安全优势。

2025-09-21 00:00:00 559

原创 C#练习题——泛型方法的使用

本文介绍了一个泛型方法实现类型识别与字节数统计的C#练习。方法定义WhatType<T>,通过typeof(T)比较判断类型,使用sizeof()获取值类型字节数,支持int(4字节)、char、float和string类型识别,其他类型返回"其他类型"。代码展示了泛型方法的设计优势、类型判断技术和sizeof操作符的使用要点,最后提供了完整的测试代码示例。该练习重点训练泛型编程、类型判断和基本数据类型处理能力。

2025-09-20 14:08:14 541

原创 C#练习题——基于Hashtable的增删查操作

本文介绍了使用哈希表实现怪物管理系统的设计。系统包含Monster类(含唯一ID和名称属性)和MonsterMgr管理器类,主要功能包括创建/删除怪物(通过ID快速操作)和四种遍历方式:按键遍历、按值遍历、键值对遍历(推荐)和迭代器遍历。其中键值对遍历方式最为高效实用,能同时获取ID和名称信息。文章提供了完整代码示例,演示了如何添加/删除怪物实例,并展示了不同遍历方法的输出效果。该系统设计合理,操作效率高,适合游戏开发中的怪物管理需求。

2025-09-20 11:48:08 420

原创 C#编程练习:使用队列存储消息,一次性存10条消息,每隔一段时间打印一条消息控制台打印消息时要有明显停顿感

C#练习——Queue队列

2025-09-20 09:50:45 216

原创 C# 编程练习:写一个方法计算任意一个数的二进制数使用栈结构方式存储,之后打印出来

C#练习题——Stack栈

2025-09-20 09:00:18 210

原创 C# 编程练习:ArrayList 背包管理类(完整实现物品购买、卖出、显示功能与金钱变化逻辑)

C#练习题——arraylist

2025-09-20 08:03:10 883

原创 Unity6最新零基础入门(知识点复习包含案例)NO.2——Unity6下载与安装(超详细)

        随着 Unity 6 版本的推出,全新的功能与优化为开发者带来了更高效的创作体验。不过,在真正开始挥洒创意之前,掌握 Unity Hub 的安装、版本的选择以及 Unity 6 的正确安装方法是至关重要的基础。本文将围绕这些核心步骤展开,为你扫清入门障碍,助你顺利踏入 Unity 6 的开发世界。

2025-07-04 00:15:00 1865 2

原创 Unity6最新零基础入门(知识点复习包含案例)NO.3——创建项目,认识布局界面以及基础的布局操作

详细总结了小白刚开始可能遇到的问题情况。

2025-07-04 00:15:00 849

原创 C#系统学习第十章——面向对象编程进阶

        在 C# 的编程世界中,继承、多态、接口与泛型如同四位紧密协作的建筑师,共同构建着高效、灵活且可维护的软件大厦。

2025-07-03 00:15:00 627

原创 Unity6最新零基础入门(知识点复习包含案例)NO.1——认识Unity(简介)

 Unity 不仅仅是一款游戏引擎,更是一个集成化的开发平台,其核心价值在于通过 “一次开发,多平台部署” 的特性大幅降低开发成本。作为由 Unity Technologies 开发的商业引擎,它支持从 PC、主机(如 PS、Xbox)到移动端(iOS、Android)、VR/AR 设备甚至网页端的全平台发布,这种跨平台能力源于其底层的 Mono(C# 运行环境)与 IL2CPP(中间语言转原生代码)技术。截至 2023 年,全球超过 50% 的手游(如《王者荣耀》《原神》)和 30% 的 PC / 主机游

2025-07-03 00:15:00 1941

原创 C#系统学习第九章——面向对象编程基础

在 C# 的编程宇宙里,面向对象编程(OOP)如同搭建数字大厦的基石 —— 它用 “类” 与 “对象” 的概念,将现实世界的事物抽象为代码中的实体,以封装、继承、多态三大特性为工具,让程序不再是零散的指令堆砌,而是具有逻辑结构与复用能力的有机整体

2025-07-02 16:38:07 723

空空如也

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

TA关注的人

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