8 河乐不为

尚未进行身份认证

我要认证

个人独立博客:https://linshuhe1.github.io/

等级
TA的排名 2k+

Lua 的元表

简述元表指的是 Lua 中的 MetaTable,它提供了一种重定义任意一个 Lua 中对象或值默认行为的公开入口,让 Lua 也能像许多面向对象语言一样实现操作符或方法的重载。原理解析在 Lua 中,每种类型的数据都有其默认的操作,如:number 有加减操作,string 的拼接操作,function 的调用操作,这些都是该类型的默认操作,而我们可以通过修改其原来来实现对这些默认操作进行修改。元表(MetaTable)和元方法用来定义对 table 或 userdata ..

2020-07-31 23:52:44

Unity Windows 路径长度限制踩坑

错误日志今天在 Windows 上打 PC 包时遇到了这样的报错:Console 输出的详细错误日志:IOException: Failed to Move File / Directory from 'Temp/StagingArea\bunny rummy_Data\StreamingAssets\lua\logic\ui\pnl_activity\first_add_...

2020-04-27 17:21:01

UGUI RectTransform 代码修改锚点和轴心

基本规律记住一个对应关系即可 Top => 1 Middle => 0.5 Bottom => 0 Left => 0 Center => 0.5 Right => 1 递增规律:从左到右(x),从下到上(y)无论是锚点还是轴心,当 x 或 y 的取值为: [0, 1] 时,表示点在对象区...

2020-04-24 13:14:48

UE4 接入 Protobuf(C++ 层)

引言在网络游戏开发中,我们通常使用 Google Protobuf 作为网络协议定制的格式,那么在 UE4 中如何集成 Protobuf 是我们接下来要做的事情。开源示例 code4game/libprotobuf_ue4 jashking/UE4Protobuf 看过很多篇文章,但这篇是写的最详细的 在UnrealEngine4中使用Google Protobu...

2020-02-28 12:55:07

UE4 移动端最小包

引言之前学习 UE4 的时候,常常使用提供的模板来创建项目,结果发现打包成 apk 后包体体积达到几百 M 甚至上 G。而在 Unity 最新的 2019 版本,一个空的 Unity 工程打出的 android 包,包体的大小约为 18 M。那么, UE4 打出的 android 最小包大约为多大呢?创建一个干净的工程1.设置内容包在创建项目时可以选择是否包含初学者内容包,正...

2019-12-27 15:10:07

Unity 接入 ILRuntime 热更方案

引言最近看了一下 ET 框架,本来只是研究一下网络模块,后来抽时间看一下热更框架。ET 的热更使用的不是像 tolua 这样基于 Lua 的方案,而是基于 ILRuntime 的纯 C# 热更实现方案。ILRuntime 的实现原理对 Unity 引擎有一定了解的开发者都应该知道: Unity 支持使用 C# 做脚本语言,是依赖 Mono 引擎运行 C# 编译后的 IL 中间语言...

2019-09-27 15:48:12

Unity Android Icons 配置

引言由于 Google 规定新上线的 App 的 TargetVersion 必须不低于28 ,而对于 API 级别高于 26(Android 8.0)又要求必须适配新的 Icon 方案,即自适应图标(Adaptive Icons)。因此,Unity 中的图标设置栏也发生了一些变化,在 Unity 的 Android 平台 PlayerSettings 中,Icon 设置由原来的一栏变为三栏...

2019-09-24 15:06:19

Hexo 和博客园添加 Live 2D 模型

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

2019-07-06 21:59:10

PhysX 物理引擎研究(一)源码编译

前言Unity 3D 中的物理引擎分为 2D 引擎和 3D 引擎两部分,其中 2D 引擎使用的 Erin Catto 写的是 Box2D,而 3D 引擎使用的的 NVIDIA 的 PhysX,在 Unity Editor 中打开 Help — About Unty 可以看到 "Physics powered by PhysX. (c) 2011 NVIDIA Corporation." 的字样...

2019-06-29 16:43:21

Windows 下的 OpenGL 开发环境配置(GLFW+GLAD)

引言最近在读 Unity 4.3 的源码,研究到 Unity 集成的物理引擎 PhysX 和 Box2D 部分,接下来还要研究渲染引擎方面的东西,想着直接倒腾一下,自己集成一遍写个小 demo 。当然这都依赖于 OpenGL 这个东西来渲染(因为物理引擎本身都是一些计算,没有可视化的东西,需要借助渲染层将其可视化),这里先搭一个可以在 Windows 下编写 OpenGL 程序的架子,然后再往...

2019-06-28 10:55:06

Windows下的 C++ 编译工具(MinGW-w64 + CMake)

引言假如想在 Windows 下进行 C++ 的开发,可以直接使用 Visual Studio 和相应的 C++ 插件来实现,但编译和构建过程是不可见的。为了更彻底地了解 C++ 工程的编译和构建,可以借助另外两个工具在 Windows 环境下实现。MinGW是 Windows 系统下的一个编译环境,包含了 C++ 代码编译所需的三方库、头文件等,用于完成 C++ 源码的编译和链...

2019-06-28 10:52:10

编译 Unity 4.3.1 引擎源码

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

2019-05-17 16:15:38

JavaScript 中 == 和 === 的区别

1. 引言这是在 JavaScript 中用来进行数值和对象对比时常用的操作符,从定义上来看: == :抽象相等,比较时会先进性类型转换,然后再比较值 === :严格相等,会比较两个值的类型和值 测试例子:console.log('10'==10); // trueconsole.log('10'===10); // false2. ECMA 规范上...

2019-04-28 15:10:30

Git SSH 方式无法 push 踩坑

引言我们知道使用 git 管理的项目可以通过两种格式的 url 来获取,分别是 HTTP 和 SSH 使用 HTTP 方式操作 git 工程需要输入对应的账号和密码,当然为了方便也可以使用诸如 TortoiseGit 这样的图形化工具来管理 Git 工程,而且其中自带记住账号和密码的功能,因此只需输入一次账号密码即可。 使用 SSH 的方式拉取 Git 项目则需要提前配置好 S...

2019-02-26 19:49:52

MySQL 字符集

引言刚刚入门数据库开发的开发者估计没少被字符串“乱码”的问题所困扰,导致乱码的原因有很多,而最常见的原因可能是对字符集和排序规则没有概念,因此在创建数据库时便已早早埋下了地雷。 字符集和排序规则同理,假如使用 Navicat for MySQL 这样的可视化管理工具来管理数据库,在创建数据库时会弹出如下弹窗,要求我们输入三项基础信息:数据库名、字符集和排序规则,其中字符集和排序规则...

2019-02-15 16:28:35

Windows 下的 Vim 编程

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

2019-02-14 09:39:55

Maven 上手指南

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

2019-01-25 15:16:32

Flutter 1.0 正式版发布

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

2018-12-05 13:52:53

IT 圈所谓的凛冬将至

今天是 2018 年最后一个月的第一天,深圳的冬日一如既往地把人晒得有些烦躁和焦虑。从去年年底跳槽至今一年有余,中间倒是经历了不少事。最近,在浏览各种技术群时,隐隐感觉到 IT 圈子,特别是游戏圈的寒冬将至的气息,坊间也不少传言各大巨头企业的裁员浪潮。身在游戏圈中的我,在这一年里,其实也或多或少地亲身体会到了这个行业的变化。去年九月份,也正是我开始萌发离职想法的时候,原本公司对于个人成...

2018-12-01 15:26:48

Windows 进程管理

引言在 Windows 下,有时候启动软件需要使用指定的端口,但此时端口可能被其他应用所占用,所以需要找到占用端口的应用并将该端口释放出来。查询几个常用的查询命令行窗口指令: netstat -ano 查看所有进程 netstat -ano|findstr [指定端口号] 查询占用指定端口的任务进程 id ,例如: C:\Users\Administ...

2018-11-21 10:25:25

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。