<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[南城日落北城空的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/YCH_KING</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; YCH_KING]]></copyright><item><title><![CDATA[反射实现状态机]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/148305992</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/148305992</guid><author>YCH_KING</author><pubDate>Thu, 29 May 2025 14:31:19 +0800</pubDate><description><![CDATA[反射创建状态机]]></description><category></category></item><item><title><![CDATA[unity与android拓展]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/144211758</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/144211758</guid><author>YCH_KING</author><pubDate>Tue, 03 Dec 2024 14:54:29 +0800</pubDate><description><![CDATA[5.修改安卓工程中的 gradle.properties 文件，在最后添加 unityStreamingAssets=.unity3d, google-services-desktop.json, google-services.json, GoogleService-Info.plist 并再次同步。所以如果存在Android和Unity混合开发的情况，建议采用上节课的Unity中嵌入Android的方式。4.弹出提示时，使用Android Studio中的 Android SDK，可以避免打包失败。]]></description><category></category></item><item><title><![CDATA[unity 与 android 交互]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/141168672</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/141168672</guid><author>YCH_KING</author><pubDate>Tue, 13 Aug 2024 17:04:53 +0800</pubDate><description><![CDATA[学习链接：Unity与Android Studio✨之间那些不清不楚的小秘密✨（Android Studio与unity交互）-腾讯云开发者社区-腾讯云【Unity3D】Unity 中使用 C# 调用 Java ② ( C# 调用 Java 的相关方法介绍 | 调用 Java 方法 | 获取 Java 字段 | 设置 Java 字段 )-腾讯云开发者社区-腾讯云]]></description><category></category></item><item><title><![CDATA[Unity 人物换装]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/141164972</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/141164972</guid><author>YCH_KING</author><pubDate>Tue, 13 Aug 2024 15:27:42 +0800</pubDate><description><![CDATA[1.获取换装部位的骨骼数量和对应名称，在skeleton遍历查找对应骨骼赋值。2.获取skeleton的所有材质，和共享网格还有骨骼。4.新建SkinnedMeshRenderer进行合并。3.动态创建图集把材质贴图整合到一个图集上合并材质。美术资源准备，每个换装部分单独输出一套骨骼和蒙皮。1.相同shader材质球，部位材质数量相同。二：合并mesh与材质。]]></description><category></category></item><item><title><![CDATA[unity websockt断线重连和心跳检测]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/108728081</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/108728081</guid><author>YCH_KING</author><pubDate>Tue, 22 Sep 2020 11:56:59 +0800</pubDate><description><![CDATA[本篇文章是基于BestHttp插件实现的websocket，大家可以搜索这个插件进行学习使用。

websocket是为了克服http无法双向通信而引入的，在通常的使用中，可以复用http的端口与功能，除此外，他们没有其他的联系，而是完全是独立的协议，通常情况下，http是单向的web 服务，而websocket是全双工的，服务器和客户端可以实时的传输信息，在引用时他们可以在http服务器上同时部署。

在弱网环境下，发送消息无法抵达接收端；抑或，断网到浏览器约定时限等一些异常情况都会触发onclose和o]]></description><category></category></item><item><title><![CDATA[Unity中Socket通信编程的同步实现]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/101021449</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/101021449</guid><author>YCH_KING</author><pubDate>Thu, 19 Sep 2019 15:48:42 +0800</pubDate><description><![CDATA[服务端

     服务端的主要职责是处理各个客户端发送来的数据，因此在客户端的Socket编程中需要使用两个线程来循环处理客户端的请求，一个线程用于监听客户端的连接情况，一个线程用于监听客户端的消息发送，当服务端接收到客户端的消息后需要将消息处理后再分发给各个客户端。

基本流程


创建套接字
	绑定套接字的IP和端口号——Bind()
	将套接字处于监听状态等待客户端的连接请...]]></description><category></category></item><item><title><![CDATA[关于xlua的热补丁误区]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/89638894</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/89638894</guid><author>YCH_KING</author><pubDate>Sun, 28 Apr 2019 15:21:28 +0800</pubDate><description><![CDATA[xLua的HotFix热补丁是其他热更lua框架所不具备的，也是他最大的优势和特色之一，原理就是通过特性标记然后在IL逻辑层判断修改逻辑，使程序支持热更的lua逻辑代码而不是走之前的C#逻辑。

xLua热补丁特性上线一年多，已经得到广泛的应用，其中不乏一些千万级DAU、亿级用户量的大游戏，反馈良好，这篇主要记录在学习热补丁时所遇到的误区。

误区1：我哪里预测得到哪些地方有bug，进而打标签呢？...]]></description><category></category></item><item><title><![CDATA[unity xlua热更新总结]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/89638516</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/89638516</guid><author>YCH_KING</author><pubDate>Sun, 28 Apr 2019 15:13:56 +0800</pubDate><description><![CDATA[前言：

xLua是Unity3D下Lua编程解决方案，自2016年初推广以来，已经应用于十多款腾讯自研游戏，因其良好性能、易用性、扩展性而广受好评。现在，腾讯已经将xLua开源到GitHub。

2016年12月末，xLua刚刚实现新的突破：全平台支持用Lua修复C#代码bug。

目前Unity下的Lua热更新方案大多都是要求要热更新的部分一开始就要用Lua语言实现，不足之处在于：

1、接入...]]></description><category></category></item><item><title><![CDATA[c#解决读取文本乱码问题]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/89091192</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/89091192</guid><author>YCH_KING</author><pubDate>Sun, 28 Apr 2019 13:45:59 +0800</pubDate><description><![CDATA[通常我们用代码读取文本内容当文本中有中文时会出现乱码显示问题，大部分解决此问题的方法就是从文本格式入手，把文本格式改为UTF-8保存。这虽然可以解决问题但这也会带来一些问题，当我们把做好的产品交付时，客户有时候就只是简单的想要读取桌面随便一个文本的内容，但是我们还得要求文本必须是UTF-8格式，而且每次编辑新文本时还得注意保存为UTF-8格式，这显然不是...]]></description><category></category></item><item><title><![CDATA[unity Assetbundle资源管理与更新比对下载]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/88738857</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/88738857</guid><author>YCH_KING</author><pubDate>Thu, 28 Mar 2019 10:45:06 +0800</pubDate><description><![CDATA[在做项目时为了减少包体的大小，我们可以用unity自带的AssetBundle进行资源打包管理，本篇博客采用的方案是在资源打包时给每个资源一个特定的MD5值，写入文本进行保存资源名称和对应的MD5值，并把资源和存储的文本放入服务器中；然后本地运行项目时首先判断本地是否有已下载好的资源和文本，然后把本地的文本与服务器的文本进行比对，如果资源的MD5值不对应那么就下载此资源到本地进行替换同时更新相应的...]]></description><category></category></item><item><title><![CDATA[unity限制鼠标移动到游戏窗口外操作]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/88342670</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/88342670</guid><author>YCH_KING</author><pubDate>Fri, 08 Mar 2019 10:45:35 +0800</pubDate><description><![CDATA[【unity小知识点】

Camera.rect :相机被渲染到屏幕规范化坐标中的位置.

Rect的范围在(左/下)0到1(右/上)。

 有时候在运行场景时，在当鼠标移动到游戏窗口范围外后，就停止移动或滑动等一系列操作，只需我们在控制模块加一句判断即可。

public Camera sceneCamera;



void Update()

{

    Vector2 v...]]></description><category></category></item><item><title><![CDATA[面向对象设计原则之里氏替换原则]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/79071966</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/79071966</guid><author>YCH_KING</author><pubDate>Tue, 16 Jan 2018 10:37:17 +0800</pubDate><description><![CDATA[里氏替换原则：子类可以替换父类的位置，并且程序功能不受影响。]]></description><category></category></item><item><title><![CDATA[unity 组合键]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/79062693</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/79062693</guid><author>YCH_KING</author><pubDate>Mon, 15 Jan 2018 11:35:09 +0800</pubDate><description><![CDATA[在游戏开发中，我们经常用到组合键的使用来控制某个技能，例如：ctrl+6显示图标等。OK，开始着手：
这要用到Unity中的Event事件，它是一个UnityGUI事件，对应于用户输入事件（按键，鼠标行为），或是UnityGUI布局，或渲染事件。对于每个事件OnGUI在脚本中被调用；因此OnGUI每帧潜在被调用多次。Event.current对应于在OnGUI里调用当前事件。
using Sy]]></description><category></category></item><item><title><![CDATA[Aspose导出word]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/79013382</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/79013382</guid><author>YCH_KING</author><pubDate>Tue, 09 Jan 2018 15:28:19 +0800</pubDate><description><![CDATA[Aspose.word是一款非常好用的用于word操作的dll，你可以无需安装MicrosoftOffice软件就能进行工作，在学习Aspose.word导出word之前，你最好了解一下Doc的树结构图，这有利于你更好的了解掌握，可以先看一下Aspose word编程指南了解一下。
一.首先我们先来介绍一下word文档的几个核心点：Document,DocumentBuilder;
Docum]]></description><category></category></item><item><title><![CDATA[NPOI导出Excel]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/79011800</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/79011800</guid><author>YCH_KING</author><pubDate>Tue, 09 Jan 2018 13:13:58 +0800</pubDate><description><![CDATA[使用NPOI对Excel进行操作：
下载NPOI的dll导入到项目中.
1.首先我们先写个工具类ExcelHelper用来对Excel的导出和读取：
using System;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using NPOI.HSSF.UserModel;
using System.IO;
using System]]></description><category></category></item><item><title><![CDATA[Unity双摄像机渲染]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/78929639</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/78929639</guid><author>YCH_KING</author><pubDate>Fri, 29 Dec 2017 11:24:50 +0800</pubDate><description><![CDATA[关于Unity使用双摄像机分层渲染：
1.渲染3D模型的摄像机的Depth要大于渲染UI的主摄像机的Depth：

2.将3D模型分层，设置UI摄像机渲染UI层，3D摄像机渲染3D模型。
3.3D摄像机的ClearFlags要设置成Depth Only或者是Don't Clear。
OK.
Unity使用3D摄像机显示的模型也可以用一个RawImage来显示.]]></description><category></category></item><item><title><![CDATA[Unity FSM有限状态机]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/78812640</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/78812640</guid><author>YCH_KING</author><pubDate>Fri, 15 Dec 2017 14:23:49 +0800</pubDate><description><![CDATA[关于人物或敌人的多种状态之间的切换，我们平常的做法就是定义个枚举，把所需的状态放在枚举里面，我们可能要在项目很多地方调用switch方法或者是设置人物状态。当状态比较多的时候，对状态的管理和获取也会变得很麻烦。所以这个时候，我们需要一个有限状态机来统一管理我们的状态(state)。
有限状态机包括两个部分：(1)状态集 FSMState，(2)状态管理机 FSMSystem.
一. 状态集FS]]></description><category></category></item><item><title><![CDATA[关于KinectController跳转场景多个叠加解决方案]]></title><link>https://blog.youkuaiyun.com/YCH_KING/article/details/78697284</link><guid>https://blog.youkuaiyun.com/YCH_KING/article/details/78697284</guid><author>YCH_KING</author><pubDate>Sat, 02 Dec 2017 17:59:06 +0800</pubDate><description><![CDATA[最近公司在做Unity关于Kinect的体感游戏，在做到多个场景切换的时候发现一个问题，就是每次跳转都会叠加KinectController，导致运行多次之后叠加了很多，游戏非常卡，研究了官方跳转场景的Demo发现它根本没从代码上解决问题，而是提供了一种思路，废话不多说了，来看看解决方案吧。




一. 首先我们先说下关于KinectManager这个脚本]]></description><category></category></item></channel></rss>