- 博客(85)
- 收藏
- 关注
原创 导出预设体的缩略图工具
在Unity中,美术如果没有时间给每一个预设体对象做对应的预设体图片,这种方式可以有效的节约美术的时间成本生成的缩略图在UI效果要求不高的前提下,生成的图片可以直接使用的using System.Collections.Generic;using System.IO;using UnityEditor;using UnityEngine;public...
2019-11-25 16:59:00
285
原创 顶点处理机制
在计算机体系结构中,管线定义为数据序列并用于处理元素。其中,某一元素的输出内容将用作下一阶段的输入内容。 相应地,GPU渲染管线接收3D场景的表达内容,并将作为输入数据。随后,将计算2D多边形的像素颜色,并输出场景图像。渲染管线主要由以下各阶段组成: 顶点处理阶段,光栅化阶段,片元处理阶段和输出合并操作顶点处理阶段:针对存储于顶点缓冲区内的各个输入顶点执行各种相关操作...
2019-06-10 15:53:00
495
原创 面向对象
--对于一个对象来说,是有属性和方法的person = {name = "chenquanlong",age=18};--第一种--[[person.eat = function() print(person.name.."在吃饭")end--]]--当使用:定义一个值的时候,我们可以在这个方法里面使用selffunc...
2019-05-28 11:45:00
110
原创 文件读取
1.简单模式: -- 以只读方式打开文件 file = io.open("test.lua", "r") -- 设置默认输入文件为 test.lua io.input(file) -- 输出文件第一行 print(io.read()) -- 关闭打开的文件 io.close(file) -- 以附加的方式打开只写文件 ...
2019-05-28 11:44:00
100
原创 协同程序
什么是协同(coroutine)? 协程是针对函数来说的,本来是一个普通的函数,我们只是让这个函数有协程的功能,可以理解为一个协程函数Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。 协同是非常强大的功能,但是用起来也很复杂。线程和协同程序区别 线程与协同程序的主要区别在于,...
2019-05-28 11:42:00
179
原创 元表
tableA = {"lua","java","c++"}tableB = {"PHP","lua"}tableA = setmetatable(tableA,tableB);--设置tableB为tableA的元表,返回的为普通表for k,v in pairs(getmetatable(tableA)) do print(k,v);endprint(setmetatable(ta...
2019-05-28 11:40:00
150
原创 模块与包
模块就相当于C#中的命名空间创建模块: module = {}; module.var = "longlong"; module.func1 = function() print("这个是模块里面的函数"); end return module使用模块: require "module";--引用模块 module.func1();...
2019-05-28 11:37:00
84
原创 Lua表
mytabel = {"lua"}mytabel[1]=nil;--将这个键值对进行销毁,该表的一号位置为nilmytabel = nil;--释放表占用的内存拼接: mytabel = {"lua","C#","java",1}; print(table.concat(mytabel,“ ”,2,4));--对表中的字符串进行一个拼接,第二个参数为分隔符,第三个和第四个参数为指定拼...
2019-05-28 11:36:00
133
原创 Lua循环
While循环:a=1;while(a<20) do if(a%2==1) then print(a); end a=a+1;endfor循环:1、数值for循环for var = start,end,step do --循环体end这里var会从start开始变化到end,每次变化加一个step进行,step不写默认为1for i=1,10 do p...
2019-05-28 11:35:00
208
原创 Tabel表—数组和迭代器
#取得tabel(键值对)表中的最大索引,不是tabel的个数Lua中的数组:array={"lua","C#"} 1、索引默认从1开始的2、索引可以为负数的(表为键值对的形式)array = {};for i=-2,2 do array[i] = i*3;endfor i=-2,2 do print(array[i])endLua中的多维数组:array = {{"a","...
2019-05-28 11:33:00
317
原创 Lua字符串操作
1、string.upper(argument):字符串全部转为大写字母。2、string.lower(argument):字符串全部转为小写字母。3、string.gsub(mainString,findString,replaceString,num): 在字符串中替换,mainString为要替换的字符串, findString 为被替换的字符,replaceString 要替换...
2019-05-28 11:31:00
173
原创 Lua语法
1.注释:--:单行注释--[[ --]]: 多行注释2.命名规则:区分大小写 Lua标示符用于定义一个变量,函数获取其他用户定义的项。标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上0个或多个字母,下划线,数字(0到9)。最好不要使用下划线加大写字母的标示符,因为Lua的保留字也是这样的。保留字:lua为一些关键词添加一些功能,一般约定,以下划线开头连接一...
2019-05-28 11:29:00
222
原创 变量
--对于一个对象来说,是有属性和方法的person = {name = "chenquanlong",age=18};--第一种--[[ person.eat = function() print(person.name.."在吃饭") end--]]--当使用:定义一个值的时候,我们可以在这个方法里面...
2019-05-28 11:26:00
80
原创 获得预设体缩略图工具
MenuItem命令(特性)MenuItem属性可以把任意静态函数变成一个菜单命令,在Unity3D中仅静态函数能使用这个属性。在创建菜单时,可以指定特定的字符来为菜单添加快捷键,如下所示:字符%表示Windows上的ctrl键, OS X上的cmd键字符#表示shift键字符&表示alt键字符_表示单键(非组合),例如_g,表示快捷键G。...
2019-05-27 15:30:00
233
原创 C#高级特性
常用的异常类型: System.ArgumentException:当使用不恰当的参数调用函数时抛出,这通常表示程序有Bug System.ArgumentNullException: ArgumentException的子类,当函数为null时抛出 System.ArgumentOutOfRangeException:ArgumentException的子类,属性太...
2019-05-10 22:01:00
114
原创 C#基础(二)
静态构造: 静态构造方法是每个类执行一次,而不是每个类实例执行一次。一个类只能定义一个静态构造方法,并且必须没有参数,必须和类同名, 运行时在使用类之前自动调用静态构造方法,下面两种行为可以触发静态构造方法: 1、实例化类 2、访问类的静态成员 静态构造方法只有两个修饰符:unsafe和extern 注:如果静态方法抛出一个未处理异常,类在整个...
2019-05-10 10:16:00
92
原创 C#基础(一)
编译: C#编译器把一系列.cs扩展名的源代码文件编译成程序集。程序集是.NET中的最小打包和部署单元。一个程序集可以是一个应用程序,或者一个库。一个普通的控制台程序或Windows应用程序是一个.exe文件,包含一个Main方法。一个库是一个.dll文件,它相当于一个没有入口的.exe文件。库是用来被应用程序或其他库调用的。.NET Framework就是一组库标识符和关键字...
2019-05-09 17:19:00
128
原创 C#语言基础
编译:C#编译器把一系列.cs扩展名的源代码文件编译成程序集。程序集是.NET中的最小打包和部署单元。一个程序集可以是一个应用程序,或者一个库。一个普通的控制台程序或Windows应用程序是一个.exe文件,包含一个Main方法。一个库是一个.dll文件,它相当于一个没有入口的.exe文件。库是用来被应用程序或其他库调用的。.NET Framework就是一组库标识符和关键字:如果使用...
2019-05-08 21:55:03
461
原创 最大子数组问题
求哪一天买入和哪一天卖出收益更高?1.暴力求解遍历所有的子数组的和进行比较,求出最大值,耗费性能,很耗时间//价格数组int[] pricesArray = new int[] { 100,113,110,85,105,102,86,63,81,101,94,106,101,79,94,90,97};//价格波动数组int[] priceFluctuationAr...
2019-05-08 15:26:00
103
原创 选择排序和冒泡排序
private int[] array = new int[] {89, 45, 68, 90, 29, 34, 17}; /// <summary> /// 冒泡排序(蛮力法) /// </summary> public void BubbleSort() { for (int...
2019-05-08 14:41:00
72
原创 使用十二面体画球体
当做一个地球的时候,可以使用六面体,八面体和20面体来画一个球体,它们的算法都是相同的,下面是20面体画球体的代码欧拉定理(欧拉公式) V + F- E = 2 (简单多面体的顶点数 V,棱数 E 和面数 F).1、这种方法的原理是: 对每一个三角面进行一次 public GameObject GetSphere(int subdivision = 5, fl...
2019-05-08 13:23:00
693
原创 C#基础(三)
访问权限修饰符: 为了提高封装性、类或类成员会在声明中添加五个访问权限修饰符之一。 public:完全访问权限,枚举类型成员或接口隐含的访问权限 private:仅在包含类型可见,类和结构体成员的默认访问权限 友元程序集: 在C#中,有public,private,internel和protected集中权限限定符,其中跨程序集编程时,经常出现不想让A程...
2019-05-07 13:22:00
63
原创 堆栈和托管堆
引用博客:https://www.cnblogs.com/shenfengok/archive/2011/09/06/2169306.html
2019-05-05 13:33:00
117
原创 变量的生命周期
1)全局变量: 作用域:全局作用域(只需要在一个源文件中定义,就可以作用于所有的源文件); 生命周期:程序运行期一直存在; 内存分布:全局(静态存储区)。 注意:如果再两个文件中都定义了相同名字的全局变量,则连接错误:变量重定义。2)全局静态变量: 生命周期:程序运行期一直存在; 作用域:文件作用域(只在被定义的文件中可见:st...
2019-05-05 11:03:00
236
原创 光照模型
要模拟真实的光照环境来生成一张图像,需要考虑三种物理现象: 1、光线从光源中被发射出来 2、光线和场景中的一些物体相交:一些光线被物体吸收了,而另一些光线被散射到其他方向 3、摄像机吸收了一些光,产生了一张图像在光学里,我们使用辐射度来量化光。BRDF:当给定入射光线的方向和辐照度后,BRDF可以给出在某个出射方向上的光照能量分布漫反射:漫反射光照符合兰伯特...
2019-04-24 14:27:00
75
原创 UniRX简述
UniRX:是一个Unit3D的编程框架,专注于解决异步逻辑,使得异步逻辑的实现更加简单优雅。 例如:实现“只处理第一次鼠标点击事件”: Observable.EveryUpdate() .Where(_=>Input.GetMouseButtonDown(0)) .First() .SubScribe(_...
2018-10-22 17:25:00
339
原创 Json压缩工具
一般的json文件拥有很多的空格和注释,虽然读起来比较方便,但是在运行的时候是要占一些内存的。于是json压缩工具就应运而生了,这个工具是用java做的,原理是:1:在Eclipse中导出一个可运行的jar文件2:用python运行这个jar文件,并向这个jar文件的运行程序传一些main方法的参数(一般只传路径就可以了)//bat文件的代码如下:set asse...
2018-08-05 17:23:00
592
原创 原生内存泄漏检测
1.首先配置好SDK,需要一个root的手机2.打开cmd 进入SDK中的platform-tools cd F:\tools\android-sdk-windows\platform-tools3.执行adb.exe F:\tools\android-sdk-windows\platform-tools>adb.exe4.进入手机 F:\tools\...
2018-08-01 13:36:00
69
原创 安卓适配
隐藏软键盘:清除消息标志 FLAG_KEEP_SCREEN_ON getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 软件全屏: 1.DEFAULT_FEATURES:系统默认状态,一般不需要指定 2.FEATURE_CONTEXT_MENU:启用ContextMenu,默认...
2018-07-30 11:34:00
55
原创 ApplicationListener接口的生命周期
create:游戏初次创建时被调用,一般在这里创建ApplicationListener对象,初始化布景信息,将数据或UI布局绑定到监听器等,执行完该方法后会执行resize方法,是游戏创建立即执行的方法。resize:每次游戏屏幕尺寸改变并且没有处于暂停状态时,该方法会被调用。在create函数执行完成之后,也会调用一次该方法。两个参数分别是尺寸调整之后的屏幕的宽和高,以像素为单位...
2018-07-01 19:09:00
185
原创 Blender软件基本介绍(3D建模软件)
1、Blender的好处: 1>、开源免费 2>、体积比较小 3>、和Unity的交互比较好(一般建模软件需要导出FBX的文件,然后用到Unity中,而Blender不需要导出,只需要把工程导入到Unity中就可以了)2、Blender的设置: 1>界面的汉化、File-->System-->InternationalFon...
2018-05-21 11:55:00
3561
原创 Unity中建立文本保存数据
public void CreateYunYD() { GameToolsManager.Instance.effectType = EFFECTTYPE.YunYD; CreateYunOrWu("Effect/yunwu-yd", Vector3.zero); } public void CreateYun...
2018-04-08 16:53:00
499
原创 UGUI脚本添加Btn回调的方法
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;using UnityEngine.EventSystems;//对添加这个脚本的对象添加EventTrigger组件[RequireComponent(typeo...
2018-03-05 14:19:00
117
原创 碰撞体速度过快穿透的问题
问题:假设现在A物体以非常高的速度移动,而unity每一帧的检测时间大概是0.02秒,也就是说如果物体A速度过快,在不用0.02秒的时间就已经穿过了其他物体,那么这个时候是无法检测A与其他物体之间的碰撞信息的主要原因是:1.未设置好更新位置的代码位置2.碰撞盒太小3.物理碰撞检测间隔太长。总之,根本原因就是在执行一次碰撞检测之前,移动的位移超过了碰撞本身的大小。...
2018-01-26 18:31:00
12131
原创 Unity中的点击,长按,划动
public void GetClickType(){ if(Input.GetMouseButtonDown(0)) { if(isGetBeginPos) { beginPosition = Input.mousePosition; isGetBeginPos = false; } if(isCheckCollider) ...
2018-01-20 17:39:00
433
原创 在对话系统中实现打字机效果
using DG.Tweening;public bool isDoTweenEnd;public void SetShowFont(Text text, string context, float timer, bool richText = true){ DoTweenAnimation doTween = text.transform.GetCompon...
2018-01-17 14:11:00
198
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人