自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 unity游戏开发网络模块之TCP粘包

在发送方,我们把每次要发的数据封装成两部分,第一部分是固定长度的包头部分,然后获取发送数据的长度,把长度放入包头中,然后再拼接数据作为第二部分,也就是包体部分。然后在接收方再进行拆包即可,拆包的规则也很简单,通过第一个包的包头获取到包体的数据长度,然后通过包体长度获取后面已知的长度数据解析,就可以拿到一个完整的数据包。数据很明显被截断了,分成了2部分,并且截断的尾部,很明显不是一个完整的发送的字符串,这就是一个很明显的粘包现象,100次的数据粘成了两部分。,而这也是我们解决粘包问题的核心思路。

2024-05-18 23:25:09 395

原创 C# 垃圾回收机制了解

在这里我们需要引入.NET中的资源分类,在.NET中,资源分为两类,处于heap中的资源,都属于托管资源,可以通过GC来释放,而处于栈中的资源,则是非托管资源,比如数据库连接,文件句柄等,这些需要通过其他方式来进行资源释放。1阶段:在托管Heap(堆)中,先假设所有对象都可以回收,然后找出不能回收的对象(查找对象的引用,当对象被引用时,则视为不可回收),给不能回收的对象打上标记,最后回收heap中没有标记的对象。在程序中,生命周期比较长的对象,最后会进入最大的分代区域,在需要时,统一回收。

2024-04-18 21:00:28 627 4

原创 MVC框架探索(三)UI对象池

最近这段时间比较忙,所以断更了两个星期。现在终于有时间坐下来继续总结MVC剩下的部分了。这个对象池就是我的demo的UI框架中最后一个大的模块了,当然,UI框架还有很多其他的东西可以讨论,不过我暂时还没有在demo框架中加入,等到后续慢慢扩展之后,再来继续补充吧。对象池的思想其实不难理解,本质上是一种复用的思想。

2024-03-24 10:40:17 632 1

原创 MVC框架探索(二) MVC底层搭建

在上一篇文章中,我们先是探讨了一下MVC的背景以及如何使用,并且对MVC中各自分层的职能进行了一定的分析。在明确了MVC各自的职责之后,又提前设想了在具体面板的mvc开发中,view层可能涉及到的大量重复工作,并以此为基础,设计并且开发了代码模板的生成工具和获取预制体中各级组件的代码工具。至此,MVC开发的准备工作已经完成,接下来,我们将正式讨论如何开发一个MVC的底层框架以及后续在面板开发中对框架的应用。

2024-03-09 23:33:03 735 1

原创 MVC框架探索(一) 模板脚本工具

这个系列,我想和大家一起讨论一下unity游戏开发中最常见的一种ui框架——MVC。那么在讨论我自己写的mvc框架之前呢,我们可以先了解一下MVC在游戏开发中的运用场景以及背景。做开发的小伙伴,应该多多少少听到过MVC这个词,那么到底什么是MVC呢?其实,MVC就是对于咱们程序的一种模型。而使用MVC模型所写的代码架构呢,实际上是为了分离程序表现(View,也称之为视图层)和数据逻辑(Model,也称之为数据层)的,控制层(Controller)获取到数据层的数据,然后去操作视图层。

2024-03-02 20:41:55 709

原创 浅谈QFramework框架中的资源加载模块

QF框架中的异步加载,使用起来非常的方便简洁,只需要从资源加载器对象池中获取资源加载器,然后通过两个步骤就可以完成动态的异步加载资源。下面贴一下我使用的例子分配对象池然后调用加入加载队列方法,这个放入加载队列的方法可以有回调函数,用于完成加载之后的操作,也可以不写回调队列加入完成之后,直接调用加载器的异步加载方法整个资源加载的模块是非常清晰,也是独立的模块。总共分为两个步骤,其一是把需要加载的资源对应的对象实例创建出来,并且做好一系列相关的准备工作,然后把其加入等待加载的列表;

2024-01-04 14:33:36 943

原创 个人Demo开发--A星寻路模块

当我们模拟一次完整的寻路过程,不难发现在寻路的过程中,有着重复的步骤,那么我们可以把其中复用的部分提炼,以便于后续进行代码的编写首先,先对寻路的过程进行一个大致总结:选定起点与终点→判断起点终点是否合法(是否超出地图范围,是否为阻挡)→找寻周围点→从周围点中找出F值最小点(在找寻过程中,需要判断是否合法,不合法则选取第二小的点)→判断是否为终点→(不是终点)设为起点→找寻周围点由此则完成了一个正常循环,这就是上述拆解中能够得到的核心步骤。

2023-12-27 17:06:38 829 2

空空如也

空空如也

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

TA关注的人

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