c#
文章平均质量分 54
@LYZY
安静的写属于自己的代码,只愿减少Bug的出现
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
浅析数据结构系列(五)
本文介绍了双链表的C#实现方式。通过定义DoubleLinkNode类包含前驱、后继节点指针和数据域,实现双向连接。DoubleLinkedList类提供核心操作:在头尾添加节点、删除指定节点以及将节点移至头部,并维护头尾指针和节点计数。代码注释详细,适合初学者理解双链表的基本原理和操作方法。原创 2020-02-28 18:15:45 · 314 阅读 · 0 评论 -
浅析数据结构系列(四)
本文介绍了队列数据结构的基本概念与两种实现方式。队列是一种先进先出(FIFO)的线性表,操作限定在头部删除、尾部插入。通过生活实例(如排队取钱)说明其特性。 文章详细讲解了顺序队列(循环顺序队列)的实现,包括数组存储、头尾指针管理以及解决"假溢出"问题的循环结构。同时介绍了链式队列的单链表实现方式,指出其结点结构与操作特点。原创 2020-02-20 11:24:33 · 254 阅读 · 0 评论 -
浅析数据结构系列(三)
摘要: 栈是一种后进先出(LIFO)的线性表,操作限定在表尾(栈顶)进行。本文介绍了顺序栈和链栈的实现: 顺序栈通过数组存储数据,维护栈顶指针top实现入栈(Push)和出栈(Pop)操作,核心代码包括初始化、判空、清空及元素访问。 链栈基于链表实现,通过头插法维护栈顶结点,动态管理内存,同样提供Push/Pop等基本操作。两种实现均遵循LIFO原则,适用于不同场景(如固定容量需顺序栈,动态扩展需链栈)。代码以C#为例,封装了栈的通用接口方法。原创 2020-02-20 11:23:52 · 257 阅读 · 0 评论 -
浅析数据结构系列(二)
摘要: 本文介绍了线性表的基本概念和顺序表的实现方式。线性表是最基础的数据结构,其特点是元素按线性顺序排列,实现方式包括顺序表、链表等。顺序表通过连续内存空间存储元素,具有随机存取特性。文章提供了C#实现的顺序表接口和类代码,包含添加、删除、插入等基本操作,并详细说明了各方法的功能和实现逻辑。顺序表类通过数组存储数据,实现了长度获取、清空、判空、元素查找等核心功能,为后续数据结构的实现奠定了基础。原创 2020-02-20 11:22:27 · 243 阅读 · 0 评论 -
浅析数据结构系列(一)
数据结构是数据的组织方式,决定了程序的效率。学习数据结构能优化问题解决方法。基础概念包括数据、数据元素、数据项和数据对象。数据结构分为集合、线性结构、树形结构和图状结构。算法是解决问题的步骤,基于数据结构实现。数据结构是算法的基础,共同决定程序性能。原创 2020-02-20 11:21:22 · 265 阅读 · 0 评论 -
Unity中UGUI事件系统的使用
本文总结了Unity UGUI系统中常用的几种UI事件接口及其使用方法。原创 2020-02-11 18:24:22 · 573 阅读 · 0 评论 -
游戏开发之网络篇_10 Socket总结
本文简要介绍了Socket通信的基本应用框架,涵盖异步连接、收发消息、消息编解码、Protobuf处理、大小端问题等技术点。文章着重讲解了客户端Socket实现的关键功能,同时也指出当前框架尚缺心跳机制等功能的不足,建议读者可自行扩展实现。文章旨在为Socket入门提供参考,欢迎指正讨论。原创 2020-02-06 14:05:04 · 411 阅读 · 0 评论 -
游戏开发之网络篇_09 Socket通信客户端框架搭建和使用
本文介绍了一个通用的Socket客户端网络管理框架实现。主要包含以下功能:1)通过事件监听机制处理连接成功、失败和关闭等网络事件;2)使用消息队列和协议缓冲实现高效的消息处理;3)提供线程安全的消息监听和分发机制。核心类NetManager_Pro使用C#实现,封装了Socket连接、数据收发和消息处理功能,支持异步操作和最大消息数限制。该框架可用于Unity等游戏开发场景,支持Protobuf协议,并可通过Add/Remove方法灵活注册事件和消息回调。原创 2020-02-06 13:56:52 · 275 阅读 · 0 评论 -
游戏开发之网络篇_08 Socket中数据的编码和解码
本文介绍了一个解决TCP粘包问题的方案,通过使用Protobuf序列化类(ProMsgHelp)来实现数据包的封装和解封。该类提供了编码(Encode)和解码(Decode)方法处理消息内容,以及编码(EncodeName)和解码(DecodeName)方法处理协议名。其中协议名采用"2字节长度+字符串"的格式,使用小端编码确保跨平台兼容性。该方案简化了TCP通信中的数据封装过程,避免了手动处理包头信息的繁琐操作,提高了开发效率。代码注释详细,便于理解和使用。原创 2020-02-06 13:47:02 · 393 阅读 · 0 评论 -
游戏开发之网络篇_07 Socket中收发数据内容
文章摘要: 本文介绍了一个用于网络消息收发的ByteArray类,它解决了直接使用byte数组处理消息带来的维护性问题。该类实现了消息缓冲区的动态管理,包含读取/写入位置索引、容量检查、动态扩容等功能。主要特点包括:默认1024字节初始容量、自动数据移动优化、支持基础数据类型读取(Int16/Int32)以及缓冲区状态监控。通过封装消息处理逻辑,提高了代码的可维护性,符合单一职责原则,适用于大型网络项目的开发需求。原创 2020-02-06 13:41:44 · 224 阅读 · 0 评论 -
游戏开发之网络篇_06 Socket中使用的数据类型和数据协议
本文介绍了使用Protobuf进行网络数据传输的方法。针对直接发送字符串数据的局限性,推荐采用Google的Protobuf协议来实现结构化数据交换。在Unity中,通过引入"protobuf-net"程序集,并使用Proto编译工具将.proto文件转换为.cs代码文件。文中提供了MsgMove_Pro(包含x,y,z坐标)和MsgAttack_Pro(包含描述字段)两个示例协议定义,展示了从proto文件到C#类的完整转换过程,实现了类型安全的高效网络通信。原创 2020-02-06 13:30:01 · 290 阅读 · 0 评论 -
Unity一键打包APP
本文介绍了一个简化Unity项目打包流程的脚本工具类BuildApp。该脚本提供了跨平台(Android/iOS/Windows)的一键打包功能,支持自动生成带时间戳的输出路径,并能自动获取当前激活的场景配置。核心方法使用BuildPipeline.BuildPlayer实现打包,同时处理了不同平台的输出路径格式。该工具旨在帮助非技术人员(如测试、策划)快速完成打包操作,但作者指出对于需要处理SDK等定制化需求的复杂项目还需要进一步扩展功能。整个脚本简洁实用,适合作为基础打包工具的参考实现。原创 2019-11-16 17:45:17 · 828 阅读 · 1 评论 -
一键复制组件的材质球等信息
Unity一键替换材质球工具脚本,提供高效组件替换功能。核心功能包括:1)复制单物体组件到剪贴板;2)粘贴组件到目标物体(保留原有组件);3)递归复制层级物体所有组件;4)智能处理SkinnedMeshRenderer等特殊组件。代码通过ComponentUtility实现安全替换,避免Transform等关键组件被覆盖,并输出详细日志。特别适合频繁修改材质球的开发场景,提升美术工作流程效率。(149字)原创 2019-09-28 11:56:38 · 1073 阅读 · 0 评论 -
c# 装箱与拆箱知识小结
本文探讨了C#中的装箱(boxing)与拆箱(unboxing)操作。装箱是将值类型隐式转换为引用类型,拆箱则是显式地将引用类型转换回值类型。文章通过代码示例展示了基本操作过程,并分析了这两种转换的性能开销:装箱需要分配新对象,拆箱需要进行类型检查。为解决性能问题,建议避免在集合中频繁装箱值类型,推荐使用泛型集合替代。最后通过项目实例说明了如何通过分离数据类型存储来避免不必要的装箱操作,从而提高程序运行效率。原创 2019-09-16 19:31:43 · 326 阅读 · 0 评论 -
Unity之QTE快速反应事件
QTE(快速反应事件)是一种常见的游戏交互方式,要求玩家在限定时间内按下对应按键。本文展示了在Unity中实现QTE系统的核心代码。原创 2019-03-16 16:07:44 · 4317 阅读 · 0 评论 -
c#结构体
文接上篇,上篇简单介绍了一下类是什么东东啦!这篇我打算和大家讲讲什么是结构体。 结构体个人理解呢!它的作用啊,和类很相似哦!但是又有不同之处呢!不知道大家在编程中有没有遇到过这种情况呢!比如说:我们在使用类时,发现类中的好多功能我们都不需要,只需要其中的一小部分功能就足够了,那么此时你是否想到结构体呢! 大家都知道我们所定义的类啊,是一个引用类型,存储在托管堆上的数据,通过这种方式呢可以在数据的原创 2017-08-21 16:11:23 · 299 阅读 · 0 评论 -
c#类与结构体区别
本文对比了C#中结构体(struct)与类(class)的主要区别:1)定义关键字不同;2)结构体不允许字段初始化,类允许;3)结构体隐式构造函数无法重写且必须初始化所有字段,类可自定义无参构造函数;4)结构体对象可不使用new创建,但需手动初始化字段。通过代码示例详细说明了这些语法差异,帮助开发者正确使用这两种类型。原创 2017-08-21 16:30:53 · 465 阅读 · 0 评论 -
简单介绍一下字典的遍历和字典简单用法
本文介绍了在C#中遍历字典的多种方法,包括使用foreach遍历KeyValuePair、单独遍历键或值、以及通过for循环遍历。同时演示了字典的基本操作:添加元素、取值赋值、删除元素和判断键存在。每种遍历方式各有优缺点,开发者可根据实际需求灵活选择。代码示例清晰展示了字典的常见使用场景和操作方法。原创 2017-11-20 11:57:47 · 2402 阅读 · 0 评论 -
Unity3D简要性能优化方案
本文系统介绍了游戏开发中的性能优化问题,主要包括:1)性能优化的定义和目标,如流畅运行(60/30/24帧)和硬件兼容性;2)常见误区,如过早优化和混淆优化与Debug;3)两大原则:不过早优化和用户无感知;4)优化三大组成部分(脚本、图形与物理、文件);5)Profiler分析工具的使用方法;6)具体优化技巧,包括减少循环负担、变量缓存、降低数学计算精度(使用sqrMagnitude替代magnitude)等。文章强调性能优化是游戏开发的重要环节,但需根据项目特点有针对性地进行,避免盲目优化。原创 2017-11-30 09:40:52 · 913 阅读 · 0 评论 -
Unity敌人的AI
本文介绍了三种实现敌人AI状态的方法,重点讲解了第一种使用有限状态机(FSM)的实现方式。文章从基类FSM开始,定义了初始化、更新等基础方法;然后通过AdvanceFSM类继承扩展,添加状态管理和转换功能;最后以NPCTankController为例,展示具体实现过程。文章采用从难到易的讲解方式,配有状态转换图和UML类图辅助理解,适合游戏开发者学习AI状态管理技术。文中代码示例完整,包含坦克AI的巡逻、追踪、攻击等状态转换逻辑。原创 2017-12-06 16:06:13 · 9320 阅读 · 1 评论 -
unity中XML和JSON文档的解析
摘要: 本文介绍了在Unity中解析XML和JSON配置文件的方法,重点演示了XML文件的读取、节点增删改操作。通过XmlDocument类加载XML文件后,使用SelectSingleNode获取根节点,遍历输出内容。新增节点通过CreateElement创建并AppendChild添加,删除节点需先暂存目标节点再RemoveChild移除,修改节点则替换InnerText实现。所有操作最后需Save保存文件。代码示例展示了完整流程,并附有操作前后的XML结构对比图。原创 2017-12-07 16:55:27 · 2086 阅读 · 0 评论 -
c#面向对象小结
C#面向对象原创 2017-12-17 19:19:06 · 1594 阅读 · 0 评论 -
C# List集合排序方法小结
本文介绍了C#中List集合的三种排序方法:1) 通过实现IComparer接口创建比较类;2) 使用委托(Comparison)进行排序;3) 使用Lambda表达式简化排序代码。以People类(包含name和age属性)为例,演示了如何按年龄对对象列表进行排序。第一种方法需要创建单独的PeopleCompare类,第二种采用委托方式更简洁,第三种Lambda表达式最为精简。这三种方式都能实现自定义排序,开发者可根据需求选择最适合的方法。原创 2018-09-26 15:01:53 · 19402 阅读 · 0 评论 -
使用批处理一键打包Unity安卓APK文件
本文介绍了一种通过Windows批处理实现Unity项目一键打包APK的方法。作者首先说明了工具类程序的意义在于让非技术人员也能完成特定功能操作。接着详细讲解了准备工作、参数配置和关键函数(如BuildPlayer)的使用说明。文章提供了完整的C#脚本代码,演示如何获取场景路径并执行打包操作。最后给出了批处理文件(.bat)的编写方法,包括设置路径变量、调用Unity命令等步骤,实现不打开Unity编辑器直接生成APK文件的功能。该方法特别适合测试人员等非开发人员快速打包使用。原创 2018-11-12 15:38:22 · 1870 阅读 · 2 评论 -
UGUI中给按钮绑定鼠标划过的事件
本文介绍了两种在UGUI中监听鼠标悬停按钮事件的方法。第一种是继承Button类并重写DoStateTransition方法,通过检测SelectionState.Highlighted状态来判断鼠标悬停。第二种使用EventTrigger组件,添加PointerEnter事件监听来实现。两种方法均避免了使用OnMouseEnter()的局限性(需要Collider组件),提供了更可靠的解决方案。第一种方法适合扩展自定义按钮,第二种则适用于不继承Button的情况。原创 2019-03-14 18:48:24 · 1828 阅读 · 0 评论 -
c#中的类
这篇博客文章详细介绍了C#中的类(Class)概念。首先指出区分类和结构体是掌握C#的关键,然后重点讲解了类的定义、组成和使用方法。文章将类分为数据成员(字段、常量、事件)和函数成员(方法、属性、构造方法等)两大部分,并通过代码示例详细说明了字段封装、方法声明与调用、参数传递(值传递、引用传递、输出传递)等核心概念。最后强调了实例化的重要性,指出类之间的交互是构建C#程序的基础。全文通过丰富的代码实例帮助读者理解类的各种特性,适合C#初学者系统学习面向对象编程中的类概念。原创 2017-08-21 11:47:33 · 416 阅读 · 2 评论
分享