自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Windows使用mosquitto搭建MQTT服务器(只有干货,没有废话)

WIndows使用mosquitto当做服务器

2025-03-28 11:25:51 412

原创 Unity模型观察脚本

加了SmoothDamp实现缓动。

2024-12-23 17:19:49 230

原创 观察者模式—C#实现

一个简单的例子理解观察者模式

2024-10-16 17:17:49 517

原创 关于匿名函数在循环中的闭包问题及解决方案

上面这样一段函数,看起来没有什么大的问题,实际执行的时候会发生越界的问题,这是因为匿名函数的闭包问题。解决方案如下,可以添加一个中间变量index。因此,点击任意按钮时,

2024-09-27 14:40:04 246

原创 Unity—判断鼠标位置是否交互

用这种就不用单独挂载了,本质上还是射线检测。

2024-08-01 11:48:34 255

原创 关于网站SSL证书的问题

网站授权SSL证书

2024-05-29 11:44:05 204

原创 数据结构PT2——堆栈/队列

实际上是创建一个 堆栈的头节点,返回指针。①堆栈初始化/是否为空。2:队列的链式存储实现。

2024-04-22 11:49:17 640 2

原创 数据结构PT1——线性表/链表

​先移动、再插入,比如在i位置插入x元素,要把i-1后面的元素全部向右移动一位。它的元素定义如下:它不再使用数组和int类型的末尾元素,而是Data和Next。​(查找位于第K号的元素)③​把s指针赋给p指针的下一位,p -> Next = s;访问第i个元素:L.Data[i]或者Ptr->Data[i]​②用s指向要被删除的节点(p的next)​④把p的下一位赋值给s的下一位。​②p指向链表的第i-1个节点。​①找到i-1个节点,用p指向。​③修改指针,删除s指向节点。​找到修改指针,插入节点。

2024-04-19 16:16:51 369

原创 游戏引擎架构01__引擎架构图

​。

2024-04-02 15:54:25 2098

原创 OSI(Open Systems Interconnection)的七层网络模型

首先,数据从你的设备发送到你所连接的网络(比如家庭网络、企业网络等),然后通过本地路由器转发到你的互联网服务提供商(ISP)的网络。当检测到错误时,根据实现或网络的配置或协议,帧可能被丢弃,或者错误会被报告给上面的层,用于进一步错误校正。​一旦确定了数据包的下一跳路由器,网络层将数据包封装在网络层协议的数据包中(如 IPv4 或 IPv6),并将其发送到下一跳路由器。OSI模型的第一层,负责在物理媒介上传输原始比特流,处理物理连接,电压、光信号和数据传输速率等,第一层传输的数据单位是比特。

2024-03-28 09:25:53 1013

原创 C#___锁(lock)

对Blance进行加锁,然后创建100个Taks并行执行任务,保证在获取Balance的时候并不会线程之间混乱存取,保证秩序,当大于0的时候就存款,当小于0的时候就取款,所以最终结果就是2000。最常见的锁类型之一。它确保在任何时刻只有一个线程可以访问被保护的资源,其他线程必须等待锁的释放才能继续执行。一种忙等待的锁,当线程尝试获取锁时,如果发现锁已经被占用,它会一直循环等待直到锁可用。2、并行执行时,在锁的位置只有一个程序可以获得锁,其他程序无法获得;3、锁的出现使得并行执行得地方在锁的位置执行串行;

2024-03-25 17:11:57 1108

原创 粘包/半包及解决方案

粘包(Packet Concatenation)通常发生在基于流式传输协议(如 TCP)的通信中,因为 TCP 是面向流的传输协议,它不保证数据包的边界,而是将数据视为连续的字节流,它表示客户端发送多条消息,服务端只收到了一条消息。

2024-03-25 15:55:37 3543 2

原创 C#使用Poll/Select实现多路I/O复用

在实际的应用中,如果全部采用异步的操作来,会增加代码的复杂程度,某些时候使用Poll/Select来实现单线程多路的I/O复用会更合适一些。比起异步程序,代码简单的多,这是Read接收,还有发送SelectWrite。若没有收到客户端数据,服务端也一直在循环,浪费了CPU。商业上为了做 到性能上的极致,大多使用异步(或使用多线程模拟异步程序)。使用socket.Poll方法检查套接字是否有可读数据,超时时间为0,即立即返回 ,如果套接字有可读数据,则执行后续操作。checkError:检测是否有出错。

2024-03-22 09:27:53 785

原创 C#实现简单异步Echo服务端和客户端(实现聊天室)

服务端需要处理多个连接,所以需要创建一个存储多个连接的列表,先定义一个ClientState类,保存一个客户端的全部信息,包括Socket,读缓冲区readBuff。上篇文章中我们使用Connect,Receive和Send来进行接收数据,会阻塞,它是在单一线程完成的,不具备灵活性。注:两个地方调用了BeginReceive,一个在Connect的回调函数,一个在结束一次接收后,解析后再次调用。对应IP,端口,回调函数,state参数用于传递用户自定义的对象或数据给回调函数。

2024-03-21 15:25:19 821

原创 C#实现简单同步Echo服务端和客户端

2024-03-21 14:08:12 650

原创 Echo服务器学习__01(基础)

Linux 系统中,把一切都看做是文件(一切皆文件),当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符,文件描述符就是内核为了高效管理已被打开的文件所创建的索引,用来指向被打开的文件,所有执行I/O操作的系统调用都会通过文件描述符。简单来说,它是操作系统为了管理 I/O 操作而维护的一个表中的索引,代表着系统中打开的文件的一个“门牌号”。,并发偏重于多个任务交替执行,并发的"同时"是经过上下文快速切换,使得看上去多个进程同时都在运行的现象,是一种OS欺骗用户的现象。

2024-03-15 14:48:59 1087

原创 高性能服务器框架(S01)

Peer to Peer模型,点对点,它比C/S更符合网络通信的实际情况,摒弃了以服务器为中心的格局,让网络上所有主机重新回归对等的地位,P2P模型使得每台机器在消耗服务的同时也给别人提供服务,这样资源能够充分、自由共享,但是当用户的请求过多,网络负载会加重,点对点模型通常会带一个发现服务器,这个发现服务器通常提供查找服务,使得每个客户都能够尽快找到自己的资源。Linux上常用的I/O复用函数是select、poll和epoll_wait,它本身是阻塞,但是它能够同时监听多个I/O事件的能力。

2024-03-14 09:56:42 787

原创 C++堆栈、内存管理

​ ​//p所占内存来自于堆(heap),new出来的对象都是来自于堆,有new,必须有delete写法。Stack,存在于某作用域(Scope)的一块内存空间(memory space)。Heap(SystemHeap),操作系统提供的一块global内存空间,程序可以动态分配获取其中的若干区块(block)​Complex c1(1,2);​ ​//c1所在内存来自于栈(stack)所以当上述{ }作用域之外的时候,c1(位于栈的内存)即自动消失,而位于堆中的内存不会自己消失。

2024-03-12 08:49:32 419

原创 C++中的类“Big Five“(五大要素)

拷贝构造函数,拷贝赋值运算符,移动构造函数(C++11),移动赋值运算符(operator =)(C++11),当类中有指针成员,一定要重写拷贝构造和拷贝赋值。比如创造字符串的时候,实际上是创建一个指针,当确定好字符后,再开辟字符大小的内存,让指针指向该内存,所以字符串是指针。后,三个函数变成了"Big Five",所以完整的五个函数应该是,(然后在main函数中去引用该类,我们具体看这三种函数的使用。之前,对于一个类来说,通常定义有。,我们详细解读(参考。也就是s3 = s2。

2024-03-11 14:58:27 717

原创 Linux常用指令(持续补充)_基础指令/进程指令/文件指令

usr:是unix shared resources缩写,一般安装的软件都放在这里,类似Windows的Program files目录。:状态,R表示Running,S表示休眠中,S<表示优先度高,SN表示优先度比较低,Ss表示进程是控制台进程,Ss+表示进程运行在前端。/lib:Library库,存放着系统最基本的动态连接共享库,类似Windows的DLL文件。/bin:是Binaries(二进制文件)的缩写,这个目录存放着最经常使用的命令。/dev:是Device的缩写,目录存放Linux外部设备。

2024-03-11 14:54:14 988

原创 .Net Core_1_

.Net-1

2024-02-22 09:44:57 453

原创 Unity_使用Shader实现玻璃和镜面效果

使用Shader+Texture实现镜面效果

2024-02-02 14:47:42 1710

原创 Unity_使用Image和脚本生成虚线段

使用代码生成虚线段

2024-01-24 17:37:45 962

原创 Unity——利用Mesh绘制图形

Unity_Mesh绘制

2023-11-17 18:23:46 671

原创 Unity——URP相机详解

URP相机组件详解

2023-11-17 14:58:56 4938

原创 Unity优化(1)——合并Mesh的两种方法

Unity性能优化——合并Mesh的两种方法

2023-11-15 18:04:02 2069

原创 Unity同项目跨平台时代码的封装

Unity跨平台代码封装

2023-11-13 17:30:14 206

原创 Unity跨平台开发指南(PC/VR/Android/WebGL)

Unity跨平台项目配置指南

2023-11-07 16:51:23 3994

原创 unity性能优化__Statistic状态分析

Unity的Statistic详解

2023-10-31 15:05:00 693

原创 Unity(Android)——实现手机摇杆和自由移动

JoyStick

2023-10-20 11:41:03 490

原创 C#进阶——反射(Reflection)

反射Reflection

2023-10-17 17:02:07 328

原创 C#进阶——依赖注入(DI)

依赖注入(DI)

2023-10-17 15:51:54 1033

原创 Unity_热更方案

unity热更

2023-10-16 18:18:14 770

原创 Unity_编辑器扩展

Unity编辑器扩展

2023-10-16 17:35:13 87

原创 Unity-3D模型展示

3D模型展示

2023-10-16 17:23:49 782

原创 Unity——数据存储的几种方式

Unity_数据存储PlayerPrefs,Json,XML,Excel,ScriptableObject,数据库

2023-10-16 15:58:05 4044 1

原创 长期更新——Unity常用插件的使用

Unity用过的一些插件

2023-10-16 10:36:51 782 1

原创 Unity第一人称移动和观察

Unity第一人称视角,包括移动旋转

2023-10-16 10:34:21 623

原创 Unity后台登录/获取数据——BestHTTP的使用Get/Post

使用BestHTTP插件把刚才的Url链接Post上去,注意使用HTTPMethods.Post方法,这里因为使用了异步,所以直接用await,不用使用回调函数。这里的代码和上面的不同是,这里采用了回调函数OnRequestFinished()这里使用一个字符串从服务器获取到你的内容,然后使用LitJson解析下内容。使用字符串拼接把服务器的地址和你的用户名密码拼接在一起,组成一条链接。这个原理和上面是一样的,不过只是get数据。这是你后台链接,就是你们的服务器IP地址。直接判断你返回的bool就好了!

2023-10-12 11:47:54 1986

原创 Unity项目迁移

Unity项目迁移

2023-09-14 13:55:03 1510

unity资源加载方式

Unity加载Excel表格,并在内部实时生成表格 Unity加载Xml格式代码 Unity加载Json格式代码 Unity加载Ab包的几种方式,LoadFrommemory,LoadFromFile,WWW加载,以及异步加载

2023-04-27

Unity-3D模型展示

类似展厅项目的成品展示,点击选择相应图片,可以查看模型,并对模型进行旋转 类似王者荣耀英雄选择界面,点击相应图片出现相应模型

2023-04-26

空空如也

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

TA关注的人

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