<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[linshuhe1的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/linshuhe1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; linshuhe1]]></copyright><item><title><![CDATA[Lua 的元表]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/107723587</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/107723587</guid><author>linshuhe1</author><pubDate>Fri, 31 Jul 2020 23:52:44 +0800</pubDate><description><![CDATA[简述

元表指的是 Lua 中的 MetaTable，它提供了一种重定义任意一个 Lua 中对象或值默认行为的公开入口，让 Lua 也能像许多面向对象语言一样实现操作符或方法的重载。



原理解析

在 Lua 中，每种类型的数据都有其默认的操作，如：number 有加减操作，string 的拼接操作，function 的调用操作，这些都是该类型的默认操作，而我们可以通过修改其原来来实现对这些默认操作进行修改。



元表（MetaTable）和元方法

用来定义对 table 或 userdata ..]]></description><category></category></item><item><title><![CDATA[Unity Windows 路径长度限制踩坑]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/105795261</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/105795261</guid><author>linshuhe1</author><pubDate>Mon, 27 Apr 2020 17:21:01 +0800</pubDate><description><![CDATA[错误日志

今天在 Windows 上打 PC 包时遇到了这样的报错：



Console 输出的详细错误日志：




IOException: Failed to Move File / Directory from 'Temp/StagingArea\bunny rummy_Data\StreamingAssets\lua\logic\ui\pnl_activity\first_add_...]]></description><category></category></item><item><title><![CDATA[UGUI RectTransform 代码修改锚点和轴心]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/105725852</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/105725852</guid><author>linshuhe1</author><pubDate>Fri, 24 Apr 2020 13:14:48 +0800</pubDate><description><![CDATA[基本规律

记住一个对应关系即可


	Top =&gt; 1
	
	
	Middle =&gt; 0.5
	
	
	Bottom =&gt; 0
	
	
	Left =&gt; 0
	
	
	Center =&gt; 0.5
	
	
	Right =&gt; 1
	
递增规律：从左到右（x），从下到上（y）

无论是锚点还是轴心，当 x 或 y 的取值为：


	[0, 1] 时，表示点在对象区...]]></description><category></category></item><item><title><![CDATA[UE4 接入 Protobuf（C++ 层）]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/104554370</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/104554370</guid><author>linshuhe1</author><pubDate>Fri, 28 Feb 2020 12:55:07 +0800</pubDate><description><![CDATA[引言

在网络游戏开发中，我们通常使用 Google Protobuf 作为网络协议定制的格式，那么在 UE4 中如何集成 Protobuf 是我们接下来要做的事情。



开源示例


	code4game/libprotobuf_ue4
	
	
	jashking/UE4Protobuf
	
看过很多篇文章，但这篇是写的最详细的 在UnrealEngine4中使用Google Protobu...]]></description><category></category></item><item><title><![CDATA[UE4 移动端最小包]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/103732465</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/103732465</guid><author>linshuhe1</author><pubDate>Fri, 27 Dec 2019 15:10:07 +0800</pubDate><description><![CDATA[引言

之前学习 UE4 的时候，常常使用提供的模板来创建项目，结果发现打包成 apk 后包体体积达到几百 M 甚至上 G。而在 Unity 最新的 2019 版本，一个空的 Unity 工程打出的 android 包，包体的大小约为 18 M。那么， UE4 打出的 android 最小包大约为多大呢？



创建一个干净的工程

1.设置内容包

在创建项目时可以选择是否包含初学者内容包，正...]]></description><category></category></item><item><title><![CDATA[Unity 接入 ILRuntime 热更方案]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/101539307</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/101539307</guid><author>linshuhe1</author><pubDate>Fri, 27 Sep 2019 15:50:09 +0800</pubDate><description><![CDATA[引言

最近看了一下 ET 框架，本来只是研究一下网络模块，后来抽时间看一下热更框架。ET 的热更使用的不是像 tolua 这样基于 Lua 的方案，而是基于 ILRuntime 的纯 C# 热更实现方案。



ILRuntime 的实现原理

对 Unity 引擎有一定了解的开发者都应该知道： Unity 支持使用 C# 做脚本语言，是依赖 Mono 引擎运行 C# 编译后的 IL 中间语言...]]></description><category></category></item><item><title><![CDATA[Unity Android Icons 配置]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/101286062</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/101286062</guid><author>linshuhe1</author><pubDate>Tue, 24 Sep 2019 15:08:57 +0800</pubDate><description><![CDATA[引言

由于 Google 规定新上线的 App 的 TargetVersion 必须不低于28 ，而对于 API 级别高于 26（Android 8.0）又要求必须适配新的 Icon 方案，即自适应图标（Adaptive Icons）。因此，Unity 中的图标设置栏也发生了一些变化，在 Unity 的 Android 平台 PlayerSettings 中，Icon 设置由原来的一栏变为三栏...]]></description><category></category></item><item><title><![CDATA[Hexo 和博客园添加 Live 2D 模型]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/94903871</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/94903871</guid><author>linshuhe1</author><pubDate>Sat, 06 Jul 2019 21:59:10 +0800</pubDate><description><![CDATA[引言

今天在查资料时，在这篇博客 Unity FSM 有限状态机 看到了一个有趣的东西 ，屏幕右下角有一个二次元的模型，而且鼠标移到不同位置，模型会跟着动，点击还会播放音频。通过截图使用 google 的图片搜索，原来这个叫做 Live 2D ，最终找到了添加方式，可以在博客园添加，后来发现原来 hexo 也可以添加。



Live2D简介

Live2D 是一种应用于电子游戏的绘图渲染技术...]]></description><category></category></item><item><title><![CDATA[PhysX 物理引擎研究（一）源码编译]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/94173345</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/94173345</guid><author>linshuhe1</author><pubDate>Sat, 29 Jun 2019 16:43:21 +0800</pubDate><description><![CDATA[前言

Unity 3D 中的物理引擎分为 2D 引擎和 3D 引擎两部分，其中 2D 引擎使用的 Erin Catto 写的是 Box2D，而 3D 引擎使用的的 NVIDIA 的 PhysX，在 Unity Editor 中打开 Help — About Unty 可以看到 "Physics powered by PhysX. (c) 2011 NVIDIA Corporation." 的字样...]]></description><category></category></item><item><title><![CDATA[Windows 下的 OpenGL 开发环境配置（GLFW+GLAD）]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/93976706</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/93976706</guid><author>linshuhe1</author><pubDate>Fri, 28 Jun 2019 10:55:06 +0800</pubDate><description><![CDATA[引言

最近在读 Unity 4.3 的源码，研究到 Unity 集成的物理引擎 PhysX 和 Box2D 部分，接下来还要研究渲染引擎方面的东西，想着直接倒腾一下，自己集成一遍写个小 demo 。当然这都依赖于 OpenGL 这个东西来渲染（因为物理引擎本身都是一些计算，没有可视化的东西，需要借助渲染层将其可视化），这里先搭一个可以在 Windows 下编写 OpenGL 程序的架子，然后再往...]]></description><category></category></item><item><title><![CDATA[Windows下的 C++ 编译工具（MinGW-w64 + CMake）]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/93976361</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/93976361</guid><author>linshuhe1</author><pubDate>Fri, 28 Jun 2019 10:52:10 +0800</pubDate><description><![CDATA[引言

假如想在 Windows 下进行 C++ 的开发，可以直接使用 Visual Studio 和相应的 C++ 插件来实现，但编译和构建过程是不可见的。为了更彻底地了解 C++ 工程的编译和构建，可以借助另外两个工具在 Windows 环境下实现。



MinGW

是 Windows 系统下的一个编译环境，包含了 C++ 代码编译所需的三方库、头文件等，用于完成 C++ 源码的编译和链...]]></description><category></category></item><item><title><![CDATA[编译 Unity 4.3.1 引擎]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/90295325</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/90295325</guid><author>linshuhe1</author><pubDate>Fri, 17 May 2019 16:15:38 +0800</pubDate><description><![CDATA[引言

从 2014 年参加实习便开始使用 Unity 3D 开发游戏，当时 Unity 还是完全闭源的，但那时候有些公司财大气粗的会直接跟 Unity 官方购买了引擎源码，似乎后来 Unity 就不卖给中国的企业了。Unity 官方从 Unity 2017.1 版本开始，开源了引擎和编辑器的C#源码（源码地址：UnityCsReference），但核心的 C/C++ 部分源码并未开源。



...]]></description><category></category></item><item><title><![CDATA[JavaScript 中 == 和 === 的区别]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/89638652</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/89638652</guid><author>linshuhe1</author><pubDate>Sun, 28 Apr 2019 15:10:30 +0800</pubDate><description><![CDATA[1. 引言

这是在 JavaScript 中用来进行数值和对象对比时常用的操作符，从定义上来看：


	== ：抽象相等，比较时会先进性类型转换，然后再比较值
	
	
	=== ：严格相等，会比较两个值的类型和值
	
测试例子：


console.log('10'==10);  // true
console.log('10'===10); // false



2. ECMA 规范

上...]]></description><category></category></item><item><title><![CDATA[Git SSH 方式无法 push 踩坑]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/87945154</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/87945154</guid><author>linshuhe1</author><pubDate>Tue, 26 Feb 2019 19:49:52 +0800</pubDate><description><![CDATA[引言

我们知道使用 git 管理的项目可以通过两种格式的 url 来获取，分别是 HTTP 和 SSH


	使用 HTTP 方式操作 git 工程需要输入对应的账号和密码，当然为了方便也可以使用诸如 TortoiseGit 这样的图形化工具来管理 Git 工程，而且其中自带记住账号和密码的功能，因此只需输入一次账号密码即可。
	
	
	使用 SSH 的方式拉取 Git 项目则需要提前配置好 S...]]></description><category></category></item><item><title><![CDATA[MySQL 字符集]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/87369066</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/87369066</guid><author>linshuhe1</author><pubDate>Fri, 15 Feb 2019 16:28:35 +0800</pubDate><description><![CDATA[引言

刚刚入门数据库开发的开发者估计没少被字符串“乱码”的问题所困扰，导致乱码的原因有很多，而最常见的原因可能是对字符集和排序规则没有概念，因此在创建数据库时便已早早埋下了地雷。

 

字符集和排序规则

同理，假如使用 Navicat for MySQL 这样的可视化管理工具来管理数据库，在创建数据库时会弹出如下弹窗，要求我们输入三项基础信息：数据库名、字符集和排序规则，其中字符集和排序规则...]]></description><category></category></item><item><title><![CDATA[Windows 下的 Vim 编程]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/87252393</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/87252393</guid><author>linshuhe1</author><pubDate>Thu, 14 Feb 2019 09:39:55 +0800</pubDate><description><![CDATA[引言

之前习惯了在 Linux 下使用 Vim 进行编程，最大的好处就是能摆脱鼠标进行编程，而在 windows 下 cmd 并没有办法直接安装 Vim ，Windows 下可以安装 gVim ，但要直接在 cmd 窗口中直接像 Linux 下输入 vim 进入编程，还是需要进行一些配置。



安装 gVim

直接在 vim 官网 下载最新的 Windows 版本的安装包 gvim81.e...]]></description><category></category></item><item><title><![CDATA[Maven 上手指南]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/86646601</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/86646601</guid><author>linshuhe1</author><pubDate>Fri, 25 Jan 2019 15:16:32 +0800</pubDate><description><![CDATA[引言

最近开始学习 Spring Boot ，由于选用 Maven 作为构建工具，这也是 Java 后端开发常用的构建工具，当然也可以选用 Gradle ，Gradle 之前在 Android 项目中使用居多，但近期也渐渐有取代 Maven 的趋势，后续可能会专门再写一篇关于 Gradle 的使用。这里先大致了解 Maven 管理项目的一些基础知识，这里主要参考官方的文档。

 

Maven简...]]></description><category></category></item><item><title><![CDATA[Flutter 1.0 正式版发布]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/84833009</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/84833009</guid><author>linshuhe1</author><pubDate>Wed, 05 Dec 2018 13:52:53 +0800</pubDate><description><![CDATA[

在昨晚（2018年12月4日）的 Flutter Live 2018 上，Google 宣布 Flutter 1.0 正式发布，这也是 Flutter 在第一个 Beta 测试版发布9个多月后发布的第一个正式版本。做移动端应用的人假如还没听过这个库，大概需要注意一下了，毕竟这可能会影响到移动端应用开发下一个方向。

 

关于 Flutter


Flutter 是谷歌的移动端 UI 框架，可...]]></description><category></category></item><item><title><![CDATA[IT 圈所谓的凛冬将至]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/84674121</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/84674121</guid><author>linshuhe1</author><pubDate>Sat, 01 Dec 2018 15:26:48 +0800</pubDate><description><![CDATA[

今天是 2018 年最后一个月的第一天，深圳的冬日一如既往地把人晒得有些烦躁和焦虑。从去年年底跳槽至今一年有余，中间倒是经历了不少事。

最近，在浏览各种技术群时，隐隐感觉到 IT 圈子，特别是游戏圈的寒冬将至的气息，坊间也不少传言各大巨头企业的裁员浪潮。身在游戏圈中的我，在这一年里，其实也或多或少地亲身体会到了这个行业的变化。

去年九月份，也正是我开始萌发离职想法的时候，原本公司对于个人成...]]></description><category></category></item><item><title><![CDATA[Windows 进程管理]]></title><link>https://blog.youkuaiyun.com/linshuhe1/article/details/84314563</link><guid>https://blog.youkuaiyun.com/linshuhe1/article/details/84314563</guid><author>linshuhe1</author><pubDate>Wed, 21 Nov 2018 10:25:25 +0800</pubDate><description><![CDATA[引言

在 Windows 下，有时候启动软件需要使用指定的端口，但此时端口可能被其他应用所占用，所以需要找到占用端口的应用并将该端口释放出来。



查询

几个常用的查询命令行窗口指令：


	netstat -ano

	查看所有进程
	
	
	netstat -ano|findstr [指定端口号]

	查询占用指定端口的任务进程 id ，例如：

	
C:\Users\Administ...]]></description><category></category></item></channel></rss>