<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jkkk_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jkkk_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jkkk_]]></copyright><item><title><![CDATA[ToLua框架]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/130443941</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/130443941</guid><author>jkkk_</author><pubDate>Sat, 29 Apr 2023 21:26:44 +0800</pubDate><description><![CDATA[对于自己实现的脚本比较麻烦，首先需要调用 LuaBinder.Bind(LuaState lua)其次需要将自定义的类写入CustomSetting.cs文件中，你将你的自定义类加入到customTypeList数组中的末尾，如果是静态类就还需加入staticClassTypes中。然后依次点击Lua菜单中的Clear wrap files 和Gen All。]]></description><category></category></item><item><title><![CDATA[CICD中的Jenkins和Ansible解决方案]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/130443927</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/130443927</guid><author>jkkk_</author><pubDate>Sat, 29 Apr 2023 21:23:56 +0800</pubDate><description><![CDATA[每一次重装系统或者是需要在服务器上正确运行软件，我们都需要重新安装所有的package、dependency并进行相应配置的微调。而这一过程可能就会因为疏忽导致错误，因此需要自动化部署持续整合，持续交付（CI/CD）的实践，我们能够周期性的对产品进行各种专业测试，如果出现问题我们也能快速找到发生问题的最近位置。同时我们还能进行报表分析和自动通知等其他操作。]]></description><category></category></item><item><title><![CDATA[Unity一般打包流程]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/130443909</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/130443909</guid><author>jkkk_</author><pubDate>Sat, 29 Apr 2023 21:23:21 +0800</pubDate><description><![CDATA[Player Settings提供了各种选项来帮助你完成最终游戏的出包，虽然说有很多不同的平台，但是大体上的设置会分为以下几个部分。以及一部分涉及到Roslyn Analyzers的选项，它可以静态地分析代码，并在代码中检测到潜在的错误、漏洞和优化机会。可以选择在运行脚本（ScriptOnly）、任何时候（Full）或者是从不（None）的时间选择记录类型。分辨率和启动前窗口设置，包括了支持的分辨率比例和是否默认全屏启动等选项；来选择需要打包的场景后出包到指定文件夹位置，也可以采用。]]></description><category></category></item><item><title><![CDATA[unity NGUI使用方法]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/130443663</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/130443663</guid><author>jkkk_</author><pubDate>Sat, 29 Apr 2023 21:20:02 +0800</pubDate><description><![CDATA[很多基本模块比如按钮、slider等都能从Prefab中直接拖拽到场景中实现，但都需要有一个Collider（Prefab已经自带）因为不仅是UI，所有带有Collider的游戏物体都能接收到OnClick， OnPress这样的事件——前提是需要在Main Camera里面添加上event System组件，然后自定义脚本添加以下函数：如果不想写代码，也可以直接拖拽UIEventTrugger脚本来实现相关功能。]]></description><category></category></item><item><title><![CDATA[lua面向对象]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/128450220</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/128450220</guid><author>jkkk_</author><pubDate>Mon, 26 Dec 2022 22:28:27 +0800</pubDate><description><![CDATA[lua面向对象：封装、继承、多态]]></description><category></category></item><item><title><![CDATA[lua 基本语法]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/128424034</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/128424034</guid><author>jkkk_</author><pubDate>Fri, 23 Dec 2022 20:43:04 +0800</pubDate><description><![CDATA[userdata 是一种用户自定义数据，用于表示一种由应用程序或 C/C++ 语言库所创建的类型，可以将任意 C/C++ 的任意数据类型的数据（通常是 struct 和 指针）存储到 Lua 变量中调用。]]></description><category></category></item><item><title><![CDATA[Unity + Mirror实现原创卡牌游戏局域网联机]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/128190389</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/128190389</guid><author>jkkk_</author><pubDate>Mon, 05 Dec 2022 17:34:04 +0800</pubDate><description><![CDATA[局域网联机插件 Mirror：Mirror | 网络 | Unity Asset Store本地客户端测试多人游戏（不用打包）插件 ： ParrelSyncMirror官方文档：General - Mirror (gitbook.io)点击开始之后会看到如下界面，需要其中一台电脑作为Host，其他玩家点击Client就可以直接连接Mirror演示场景连接成功效果：首先需要注意的事情：该组件控制着游戏物体在网络中的独特ID，他的 选项表示是否确保物体只生成在服务端。在每一个运行过程中生成的预制体都需要添加该组]]></description><category></category></item><item><title><![CDATA[游戏优化之空间划分]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/127954449</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/127954449</guid><author>jkkk_</author><pubDate>Sun, 20 Nov 2022 21:18:53 +0800</pubDate><description><![CDATA[每种空间分区数据结构基本上都是将一维数据结构扩展成更高维度的数据结构。网格是连续的桶排序BSPs，k-d trees和包围盒是线性搜索树四叉树和八叉树是多叉树。]]></description><category></category></item><item><title><![CDATA[Unity 资源热更新]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/127911122</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/127911122</guid><author>jkkk_</author><pubDate>Thu, 17 Nov 2022 20:28:43 +0800</pubDate><description><![CDATA[这些目录包含着不同版本的资源文件，以及用于版本控制的Files.txt，里面存放着资源文件的名称和md5码。客户端版本号我们是4位来标识，假设是X.Y.Z.WX：【巨大版本号】这一位其实就是1，没事一般不会动他，除非有太巨大的变化，目前反正还是1；Y：【整包更新版本号】：我们游戏一般一个月会有一个比较大的版本迭代，这种版本会走商店，每次提交Y值+1；]]></description><category></category></item><item><title><![CDATA[浅析GC-垃圾回收]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/127856675</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/127856675</guid><author>jkkk_</author><pubDate>Mon, 14 Nov 2022 22:05:24 +0800</pubDate><description><![CDATA[CLR（Common Language Runtime）：CLR的核心功能包括，而且还负责对代码实施严格的类型安全检查，保证代码的准确性，这些功能都可以提供给面向CLR的所有语言CLR并不关心是使用何种语言进行编程开发，只要编译器是面向CLR而进行编译的即可，这个中间的结果，就是IL(Intermediate Language), 最终面向CLR编译得到的结果是：IL语句以及托管数据(元数据)组成的托管模块。]]></description><category></category></item><item><title><![CDATA[帧同步和状态同步]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/127776112</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/127776112</guid><author>jkkk_</author><pubDate>Wed, 09 Nov 2022 19:25:42 +0800</pubDate><description><![CDATA[网络同步主要目的在于保证各个端口的游戏表现一致，而对于大多数游戏，不仅客户端的表现要一致，而且需要客户端和服务端的数据是一致的。所以，同步是一个网络游戏概念，只有网络游戏才需要同步，而单机游戏是不需要同步的。]]></description><category></category></item><item><title><![CDATA[游戏设计模式杂谈（一）]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/127734756</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/127734756</guid><author>jkkk_</author><pubDate>Mon, 07 Nov 2022 16:57:19 +0800</pubDate><description><![CDATA[设计模式的主要目的就在于解耦，也就是今后处理改动的时候任何设计模式都需要遵循基本原则，让类与类之间减少耦合。]]></description><category></category></item><item><title><![CDATA[ECS框架浅析]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/127718110</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/127718110</guid><author>jkkk_</author><pubDate>Sun, 06 Nov 2022 17:12:50 +0800</pubDate><description><![CDATA[在传统的面向对象设计中（OOP）,进行框架设计首先就要进行类的层次结构，而在这一过程中就会出现多重继承困难、层次结构不易改动的现象。而且游戏开发中一种比较常见的现象就是，由于操作和数据没分离，A对B造成了伤害，是A去打了B，还是B受到了A的伤害，函数应该放在哪里？ECS就没有这种疑惑，数据存放在Component类、逻辑计算直接由System负责这和传统的面向对象或是 Actor 模型是截然不同的。OO 或 Actor 强调的是对象自身处理自身的业务，然后框架去管理对象的集合，负责用消息驱动它们。]]></description><category></category></item><item><title><![CDATA[Git 理论及应用]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/127670220</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/127670220</guid><author>jkkk_</author><pubDate>Thu, 03 Nov 2022 14:49:04 +0800</pubDate><description><![CDATA[git理论]]></description><category></category></item><item><title><![CDATA[A*寻路算法]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/127279160</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/127279160</guid><author>jkkk_</author><pubDate>Wed, 12 Oct 2022 11:16:34 +0800</pubDate><description><![CDATA[深度优先算法（BFS）在所有方向上平等的探索，是最好写的寻路算法Dijkstra算法优先考虑低成本的路径，在游戏中可以规定远离敌人、避开森林需要更高的成本，所以当移动成本发生变化的时候我们使用该算法而不是BFSA*寻路是对Dijkstra算法的修改，针对单个目标时进行了优化，Dijkstra的算法可以找到所有位置的路径;A 查找到一个位置的路径，或多个位置中最近的路径。它优先考虑似乎更接近目标的路径。下图依次表示他们的搜索区间。]]></description><category></category></item><item><title><![CDATA[unity任务系统]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/127045626</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/127045626</guid><author>jkkk_</author><pubDate>Sun, 25 Sep 2022 23:56:24 +0800</pubDate><description><![CDATA[进行持久化储存，虽说这会污染注册表，当时我们将所有任务的数据编写在一个string中，这样产生的影响就会少很多。但一般不推荐按这样做，因为Resource文件夹只读，而且打包时会全部进行压缩后打包。回调是为了模拟实际场景中从服务端数据库读取数据（异步）的过程, 仅在客户端交互的情况可以直接忽略。目前只考虑客户端进行任务数据的管理，与服务端进行交互不在本篇的介绍范围内。或自定义的文本格式的配置，这样不会让Excel打包时占据额外空间。中能够安装额外的插件，直接导出为。配置，实际项目中一般都是将。]]></description><category></category></item><item><title><![CDATA[详析二分搜索算法]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/127010099</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/127010099</guid><author>jkkk_</author><pubDate>Fri, 23 Sep 2022 14:25:31 +0800</pubDate><description><![CDATA[二分查找特别容易出现问题，尤其发生在寻找左右边界的情况。]]></description><category></category></item><item><title><![CDATA[渲染管线概论]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/126974823</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/126974823</guid><author>jkkk_</author><pubDate>Wed, 21 Sep 2022 16:07:00 +0800</pubDate><description><![CDATA[渲染管线（渲染流水线）是将三维场景模型转换到屏幕像素空间输出的过程。图形渲染管线主要包括两个功能：一是将物体3D坐标转变为屏幕空间2D坐标，二是为屏幕每个像素点进行着色。]]></description><category></category></item><item><title><![CDATA[图论算法个人总结]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/126735409</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/126735409</guid><author>jkkk_</author><pubDate>Tue, 06 Sep 2022 22:33:20 +0800</pubDate><description><![CDATA[Kruskal 算法是在一开始的时候就把所有的边排序，然后从权重最小的边开始挑选属于最小生成树的边，组建最小生成树。适用于稀疏图Prim 算法是从一个起点的切分（一组横切边）开始执行类似 BFS 算法的逻辑，借助切分定理和优先级队列动态排序的特性，从这个起点「生长」出一棵最小生成树。适用于稠密图。]]></description><category></category></item><item><title><![CDATA[回溯算法和BFS]]></title><link>https://blog.youkuaiyun.com/jkkk_/article/details/126678339</link><guid>https://blog.youkuaiyun.com/jkkk_/article/details/126678339</guid><author>jkkk_</author><pubDate>Sat, 03 Sep 2022 15:43:39 +0800</pubDate><description><![CDATA[第一种解法即便经过了排序优化，也明显比第二种解法慢很多假设nums中的元素个数为n。先说第一个解法，也就是从数字的角度进行穷举，n个数字，每个数字有k个桶可供选择，所以组合出的结果个数为k^n，时间复杂度也就是O(k^n)。第二个解法，每个桶要遍历n个数字，对每个数字有「装入」或「不装入」两种选择，所以组合的结果有2^n种；而我们有k个桶，所以总的时间复杂度为O(k*2^n)这是对最坏复杂度上界的粗略估算。]]></description><category></category></item></channel></rss>