流彩飞霞的专栏

裸露无罪,性感由你!

unity各功能字段含义整理(持续更新)

1、防止重命名后旧变量aaa所关联的引用丢失 [FormerlySerializedAs("aaa")] public string bbb; 2、一般用于创建组件使用,防止一个对象上多次挂载同一组件 [DisallowMultipleComponent] 3、代表...

2019-06-11 21:05:22

阅读数 31

评论数 0

两种投影模式下Camera的size计算以及canvas的scale计算

Perspective透视模式 camera的默认投影模式为Perspective透视模式,该模式下默认的透视夹角为60度,如下图所示 canvas的设置如下: 由上图可知,canvas离相机距离为100单位,因此可计算出此时黄线部分所示高度h = tan(60/2)*100 =...

2019-05-28 21:26:17

阅读数 33

评论数 0

UGUI下Canvas宽高计算

当Canvas的渲染模式选为 Screen Space - Camera时,给定不同设备分辨率, canvas的宽度会根据我们设置的适配模式自行适配宽高值,如图所示 因为测试demo是以横屏游戏为例,因此设置以高度为准来是适配宽度。 当选择(2436 x 1125)分辨率时,canvas的宽...

2019-05-28 20:07:39

阅读数 49

评论数 0

归并排序算法

算法原理 归并排序思想就是假设初识序有n个记录,可以看成是n个有序的子序列,每个序列的长度为1,然然两两合并,得到n/2个长度为2或1的有序子序列,继续两两合并,如此反复知道得到一个长度为n的有序序列为止,称为2路归并排序 代码实现 void Merge(int a[], int temp...

2019-05-18 17:43:51

阅读数 11

评论数 0

堆排序算法

目录 数据结构定义 算法原理 代码实现 算法复杂度分析 数据结构定义 堆是具有如下性质的完全二叉树: 每个节点的值都大于或等于其左右孩子节点的值称为大根堆; 或者每个节点的值都小鱼或等于其左右孩子节点的值称为小根堆 算法原理 假定是构造大根堆(小根堆与此类似),基本思想是将待排...

2019-05-18 14:43:27

阅读数 8

评论数 0

获取摄像机的视口区域

常用的摄像机有两种、一种是正交摄像机,另一种是透视摄像机,由于正交相机的视口范围是固定不变的,因此这里只讨论透视摄像机,它是由原点向外扩散的视锥体,这里引用下雨松MOMO的一篇博客《Unity3D研究院之获取摄像机的视口区域》中代码如下: using System.Collections; u...

2019-03-12 16:53:38

阅读数 20

评论数 0

如何在c函数中保存状态

通常,我们在c函数中想要保存一些状态数据无非两种方式,全局变量或者静态变量,这些数据一般比程序本身生存期更久,但是在lua中这么做并不聪明,首选我们无法在c变量中保存一个lua对象,另外一旦使用了全局变量或者静态变量,那么该变量也就无法用于多个lua状态了。 熟悉的lua人都知道,对于非局部数据...

2018-12-27 11:16:16

阅读数 38

评论数 0

UGUI屏幕分辨率适配

在提及UI适配之前,我们再来回顾下其中要用到的Canvas组件,有不了解的可以移步这里 Canvas中的Render Mode属性,我们知道共有Screen Space-Overlay模式、Screen Space-Camera模式、World Space模式三种,对于这三种模式,我的使用理解是...

2018-12-24 17:50:45

阅读数 97

评论数 0

require加载模块

Lua 的模块是由变量、函数等已知元素组成的 table,因此创建一个模块很简单,就是创建一个 table,然后把需要导出的常量、函数放入其中,最后返回这个 table 就行,Lua提供了一个名为require的函数用来加载模块。要加载一个模块,只需要简单地调用就可以了,执行以下语句 requir...

2018-12-15 14:38:36

阅读数 149

评论数 0

table序列化成json格式文件

在游戏开中我们经常会有将数据转换为一个字节流或者字符流的需求,然后将其存储到一个文件或者通过网络连接发送出去, 在lua中对于保存在table中的数据我们可以简单序列化成json文件保存到本地 --无环table序列化为json格式保存到文件 local file = io.open(&...

2018-12-11 13:48:54

阅读数 94

评论数 0

双向队列的实现

c++中使用队列的话有queue(单项队列)、deque(双向队列),但在lua中并没有提供给我们可直接使用的这类数据结构,不过lua中有一个近乎万能的数据类型table,他可以实现其他语言中各种类型,今天在此先分享下双向列表的lua实现,原理就是保存一张表的首尾端索引,每次增删的时候修改下,并将...

2018-12-10 11:33:21

阅读数 107

评论数 0

宿主语言(c++)调用Lua原理(lua的堆栈)

本文主要介绍宿主语言是如何一步步调用lua的,这里选取c++作为宿主语言,以前使用cocos调用lua的时候只知道是通过lua虚拟机中的栈来实现的一直没有深入理解,借着这次重新使用的机会,深入理解并作出总结,做一记录(记性不好,可以常回来看看巩固下)先来理一理lua虚拟机的栈: 我画了一张表...

2018-12-04 22:23:04

阅读数 58

评论数 0

观察者模式实现(模仿CSharpMessenger扩展)

我们在游戏开发中经常会用到这种模式,用于模块之间的消息分发,来降低模块之间耦合性,基本原来就是利用字符串作为key值来存储回调函数(大多数观察者模式使用字符串作为消息队列中的key值),分发消息时检索key值来获取回调函数并执行来达到模块之间交互的功能,为了实现消息类型拓展,这里我使用了类模板来实...

2018-12-04 17:47:00

阅读数 42

评论数 0

观察者模式(基于CSharpMessenger扩展)

在使用c#中的事件时,经同事推荐看到了这个框架,它是c#消息传递的高级版本,代码不多,拜读之后对代码结构进行了重构,感觉更清晰点 /* * Advanced C# messenger by Ilya Suzdalnitski. V1.0 * * Based on Rod Hyde's ...

2018-12-04 15:01:13

阅读数 37

评论数 0

Lua中常用的便捷写法

大多数人在使用lua之前都可能学过别的语言,如c/c++, java, c#等, 使用lua像我一样都是现学现用, 对很多东西都是知其然而不知其所以然,近期决定深入挖掘lua相关知识,将一些lua的良好写法或者简洁的写法做一汇总关于变量: 1、变量初始化 学过c的人基本都有一个好的习惯,那就是变量...

2018-12-04 10:58:47

阅读数 119

评论数 0

数据的二进制转换

 二进制表示法。。。。     这是也是基础知识啦:    别急我们一点一点的讲解。正整数转二进制,负整数转二进制,小数转二进制     正整数转二进制:  正整数转成二进制。要点一定一定要记住哈:除二取余,然后倒序排列,高位补零。             21 /2    ------...

2018-12-03 21:53:21

阅读数 66

评论数 0

Lua面向对象实现

lua中没有类的概念,一般所说的类其实就是一个table实现的。关于lua类有两种实现方式 第一种是在cocos2d-x引擎目录下图示文件 function clone(object) local lookup_table = {} local function _copy...

2018-11-22 20:41:05

阅读数 42

评论数 0

Lua中rawset 函数使用

当我们只想单纯的调用table里的字段或者给table字段赋值时,我们可以通过rawget函数来忽略元表的__index作用,只从table中 查找例如: local father = { --house=1, sayHello = function() ...

2018-11-20 16:55:56

阅读数 100

评论数 0

Lua元方法__newindex

上篇博客我们讲了__index用于查询,这一节我们讲_newindex , _newindex 元方法用来对表更新,__index则用来对表访问 。当你给表的一个缺少的索引赋值,解释器就会查找__newindex 元方法:如果存在则调用这个函数而不进行赋值操作。 我们先来看下简单的赋值操作 ...

2018-11-20 16:21:33

阅读数 41

评论数 0

Lua元表理解

之前接触lua时看到了元表的使用,但是一直一知半解,借此机会对自己的理解做一下总结,方便日后回顾 元表本质上来说是一种用来存放元方法的table。我们可以通过对应的key来得到value值,作用就是修改一个值的行为(更确切的说,这是元方法的能力),需要注意的是,这种修改会覆盖掉原本该值可能存在的...

2018-11-20 15:19:48

阅读数 273

评论数 0

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