自定义博客皮肤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)
  • 问答 (1)
  • 收藏
  • 关注

原创 AB包知识点

文件类型常见名称示例运行时是否必须核心作用无后缀文件map_1是存放压缩后的实际游戏资源数据。.manifest 文件否(仅开发期使用)供编辑器读取的文本元数据,记录哈希、CRC及单个包的依赖。同名主文件是(若涉及依赖管理)包含全局的 AssetBundleManifest,用于运行时查询包与包之间的依赖链。补充细节虽然Force Rebuild (强制重新打包)和Clean Folder (清理文件夹)听起来都带有“从头再来、干干净净”的意思,但它们在实际工作中的作用层级和解决的问题。

2026-07-02 13:57:56 358

原创 Unity网络通信之Http上传

优点:底层控制力极强。使用了 byte[] 缓冲区分块读取(水桶搬水),这样无论上传多大的文件,都不会占用太多系统内存。缺点/隐患 (Unity特有)HttpWebRequest 是 C# 比较老的技术了。【警告】action?是在 Task.Run 的后台线程里执行的。在 Unity 中,不能在后台线程修改 UI(比如改变文本、弹窗),否则 Unity 会报错!扩展 (Modern Way):在现代 Unity 开发中,通常推荐使用 UnityWebRequest 来代替 HttpWebRequest。

2026-03-31 21:49:18 400 1

原创 Unity网络通信之Http下载

握手检测(HEAD):确认服务器有这个文件。拿取数据(GET):正式要数据。本地创建(File.Create):在电脑硬盘上挖个坑准备填数据。循环读写(While 循环):一点点从网络读,写到硬盘。通知结果(Invoke):报告成功还是失败。不卡主线程:使用了 Task.Run,不会造成游戏画面掉帧。节省内存:每次只读取 1024 字节,即使下载 1GB 的文件,占用的内存也很小。两步验证法(HEAD + GET):先看文件在不在,再下载,防止直接下载大文件时因为 404 浪费资源。

2026-03-29 16:06:04 364

原创 Unity网络基础之FTP上传数据(异步版)

优点全局通用:任何脚本都可以通过 FTPMgr.Instance 调用,代码极其干净。不卡主线程:Task.Run 完美解决了网络请求假死的问题。UI 线程安全:await 机制极其优雅,它保证了 action?.Invoke() 是在 Unity 主线程执行的。这意味着你可以在 action 里去操作 Unity 的 UI(如果直接在 Task.Run 里操作 UI,Unity 会报错并崩溃)。缺点如果玩家点击上传后,立马关闭了游戏或切到了其他场景。

2026-03-23 11:48:48 504

原创 Unity网络基础之FTP上传数据

优点:非常经典的底层字节流(Byte Stream)操作。掌握了这个,以后不管你是传文件、写网络聊天室、还是保存游戏存档,底层原理都是一模一样的(准备字节数组 -> 循环读写)。缺点:和上节课一样,阻塞主线程。如果在读取一个大文件,Unity 的画面会停在原地一动不动。此外,这种写法由于没有获取 FtpWebResponse,所以服务器即使返回了某些特定的错误,你也只能通过抓取异常(Catch)来判断。

2026-03-22 23:50:08 547

原创 Unity网络基础之FTP基础

优点 (Pros):FtpWebRequest 是 C# 原生自带的,不需要额外下载插件,能够满足绝大多数基础的 FTP 需求(上传、下载、删除、列出目录)。缺点 (Cons)同步阻塞:如果你直接在 Unity 的 Start 或 Update 里调用它,当网络不好时,你的整个游戏画面会卡住(假死),直到下载完成或超时。语法稍显老旧:这是较老的 .NET API,写起来比较繁琐(需要手动处理循环读取 Stream)。

2026-03-22 18:15:13 392

原创 Unity网络基础UDP异步(初级)

不占用 CPU:不再需要 while(true) 死循环,没有任何消息时,CPU 占用几乎为 0。极高的吞吐量:底层交给 Windows/OS 处理,处理成百上千的高频并发数据时游刃有余。

2026-03-21 23:09:29 241

原创 Unity网络基础UDP客户端

作为你的老师,我必须指出这段代码中的几个危险的雷区(Bug),因为如果不改,它会引发严重的性能问题!

2026-03-20 12:50:44 385

原创 Unity网络基础UDP服务端

优点:使用了 ThreadPool(线程池)来处理消息。这非常棒!这意味着服务器在“阅读信件”时,不会影响它继续“接收新信件”,提高了并发能力。弊端(需要警惕的坑)这种拼接方式有Bug隐患。比如IP是192.168.1.1,端口是80,拼接出来是 192.168.1.180;如果另一个玩家IP是 192.168.1.18,端口是 0,拼接出来也是 192.168.1.180。扩展建议:改成 clientStrID = ip + ":" + port;加上冒号分隔就安全了。

2026-03-18 00:15:31 387

原创 Unity网络基础UDP通信

优点:代码逻辑非常简单、直线思维,适合初学者理解“收发流程”。缺点(致命):socket.ReceiveFrom 是**阻塞(同步)**的。只要没有客户端发消息,程序就会死死卡在这一行,什么也干不了。而且这段代码只能收发一次就结束了,不能持续服务。扩展建议:在实际开发中,服务端的 ReceiveFrom 应该放在一个 while(true) 循环中,这样就能不断接收不同人的消息了。优点:结构清晰,展示了“发送 -> 等待接收”的完整闭环。缺点(致命)

2026-03-17 00:31:35 400

原创 Unity网络基础异步TCP通信

同步(阻塞):你点完菜,一直站在柜台前等,直到厨师把菜做出来端给你,你才去干别的事。这段时间你什么都干不了(这就叫“线程阻塞”)。异步(非阻塞):你点完菜,拿到一个取餐号,然后你找个座位坐下玩手机。当后厨把菜做好了,广播叫你的号(触发回调函数),你再去拿菜。玩手机和做菜是同时进行的。在这套代码中,客户端使用的是基于事件的异步模型(SocketAsyncEventArgs),服务器使用的是较老但非常经典的 APM 异步模型(Begin.../End...)。

2026-03-16 00:43:57 556

原创 Unity网络基础实现简单心跳消息

客户端的逻辑非常简单:像定闹钟一样,每隔一段时间发一个空包(HeartMsg)给服务端。服务端为每个连接的客户端维护了一个“最后通话时间” (,不停地检查这个客户端有没有“偷懒”。停留在最后一次收包的时间,不再更新。:告诉服务器“我还活着,别踢我”。只有2秒,小于10秒,判定安全。方法中,如果判断收到的是。服务端动作:将该客户端放入。彻底清理该 Socket。服务端监控:每次检查发现。服务端监控:随着时间推移,客户端:每2秒发一个。

2026-03-15 22:49:44 139

原创 Unity网络基础粘包分包处理逻辑

如果某个大文件或恶意攻击发送了超过 1MB 的数据,你的程序会报 IndexOutOfRangeException 导致崩溃。:在 while 循环里增加 Thread.Sleep(1),或者使用 AutoResetEvent 事件触发机制,让线程在没活干时进入休眠。:使用一个 Dictionary<int, Type> 存储 ID 到类型的映射,或者使用反射/自动生成的注册表。这种设计避免了 Unity 常见的“网络一卡,画面就死”和“多线程修改 Transform 导致崩溃”的问题。

2026-03-11 23:12:27 598

原创 Unityy网络基础不同类型消息传递

BaseData 是整个序列化系统的基石。它通过 ref index 实现了一个类似于“光标”的机制,每次读写数据后光标自动后移,从而保证多个字段按顺序排列,不会发生覆盖或读错位。

2026-03-10 16:05:13 385

原创 Unityy网络基础客户端代码(中阶)

被注释代码原因.Start()手动创建线程难以管理生命周期,无法优雅退出,易造成资源泄露;ThreadPool 更轻量、可复用。直接在 Send 中调用会阻塞主线程,导致游戏卡顿甚至无响应;应放入队列由后台线程异步发送。等赋值仅将引用置空不能终止线程,线程仍会在后台运行;必须通过退出循环。

2026-03-10 11:41:18 232

原创 Unity网络基础服务端代码(中阶)封装服务端和客户端

这是程序的入口点,负责启动服务器并处理管理员的控制台指令。服务器每接受一个客户端,就会。它负责监听端口、管理所有。

2026-03-09 16:22:42 437

原创 Unity网络基础服务端代码(中阶)

【代码】Unity网络基础服务端代码(中阶)

2026-03-09 11:07:40 399

原创 Unity网络基础客户端代码

【代码】Unity网络基础客户端代码。

2026-02-12 17:16:36 118

原创 Unity网络基础服务端代码(基础)

【代码】Unity网络基础服务端代码(基础)

2026-02-12 16:08:41 115

原创 Unity音频、场景切换、鼠标设置笔记

unity中的AudinoSource组件。

2026-01-28 23:24:09 43

原创 Unity相机、刚体知识笔记

【代码】Unity相机、刚体知识笔记。

2026-01-27 22:14:07 187

原创 Unity按键操作和屏幕设置-笔记

【代码】Unity按键操作和屏幕设置-笔记。

2026-01-24 17:23:32 47

空空如也

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

TA关注的人

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