- 博客(32)
- 资源 (7)
- 收藏
- 关注
原创 实时渲染技术之一-------渲染管线
什么是渲染: 简单的说渲染就是把绘制的3D物体通过可编程流水线绘制在2D的屏幕上的过程。渲染速度的表示是FPS或Hz,什么是渲染管线: 渲染管线也称为渲染流水线,是显卡内部处理图形信息相互独立的并行处理单元,形象的比喻就是工厂流水线。渲染管线一个显著的特点是处理是并行的,这样能最大化利用显卡资源。渲染分为几个阶段: 实时渲染为了能够提升渲染效...
2019-06-25 22:32:09 1257
原创 区块链技术之一-----了解区块链
为什么会出现区块链: 一直以来我们所处的社会信用体系很大一部分都是中心化的:如货币是政府发行的,政府决定着货币价值的升涨,如我们的钱存于银行,钱不翼而飞我们也不得原因;这里政府和银行就是中心地位的管理者,也许我们不信任中心地位的管理者,但是在中心化的信用体系下我们也无可奈何,传统的数据库有一个中央管理系统,管理员可以在权限范围内任意更改数据库,处于中心地位的管理当局有太大权限,可以...
2018-07-31 22:57:14 1171
原创 EventManager的两种简单实现方式
在进行unity相关开发过程中我们总是要响应很多事件,如果没有一个集中的管理,那么代码就会变得很混乱,这时EventManager就变得很需了。Unity事件管理器可以有两种方式实现,第一种是调用Unity的事件系统来进行封装,另一种可以使用C#的事件与委托机制实现,两种方式其实都很简单,也各有优缺点,具体的性能差异这篇文章已经总结的很好了http://blog.csdn.net/su9257/a
2018-01-13 14:44:01 7648
原创 模板方法模式
1:什么是模板方法 定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 2:为什么要使用模板方法 在程序设计中,有时很多对象有共同的操作,比如一个汽车对象,发动汽车需要启动->行驶->鸣笛->停车等程序化步骤,不同的车辆类型都有这些步骤,如果在每个对象都定义一次,那么就会造成代码的重复,此时我们就需要模板方法来解决这个问题。模
2017-12-21 15:57:33 364
原创 单例模式
1:什么是单例模式 单例模式的定义是一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 2:为什么要用到单例 Singleton模式主要作用是保证在应用程序中,一个类Class只有一个实例存在。在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。一些资源管理器常常设计成单例模式。一些外部资源:譬如每台计算机可以有若干个打印机,但只能有一个Printer Spool
2017-12-21 10:26:00 409
原创 Unity 中的4X4矩阵
1:为什么模型的变换是4X4而不是3X3的矩阵变换? 我们知道,在空间里的点的坐标是vector3类型的,即是三维的,那为什么要用4维矩阵才能进行旋转平移和缩放呢?要解决这个问题就要从变换的本质来谈起。我们知道,在变换里分为线性变换和非线性变换,比如: 我们対模型进行缩放,那么缩放后的点坐标是 Pn=aPo (Po是以前的坐标空间,Pn是新的坐标空间,a是缩放比例) 好的,
2017-11-17 14:43:24 11753 1
原创 threejs基础一
1.什么是webGL? WebGL是在浏览器中实现三维效果的一套规范 2.什么是threejs? threejs是一个开源项目。three表示3D的意思,js表示javascript的意思。那么合起来,three.js就是使用javascript 来写3D程序的意思,threejs是对webgl的封装。 3.threejs的下载。 threej的官方网站是:https://threejs.
2017-10-11 16:58:40 2426
原创 Itween之音频操作
1:AudioFrom方法: AudioFrom(GameObject target, float volume, float pitch, float time) AudioFrom(GameObject target, Hashtable args)参数名称 类型 功能name string 一个用于通过name来停止itween的特有名称audiosource Aud
2017-09-13 14:38:58 347
原创 Unity从UI拖物体到场景中以及鼠标拖动物体
当我们做一些农场游戏或者类似可编辑战场类游戏时经常会遇到从UI上拖动物体在3D场景里生成,要实现这种从UI上拖物体的效果其实挺简单,代码不复杂,主要是想法很重要,一个优秀的程序员不只是技术扎实,更重要的是要多思考,不思考的程序员只是一个码农。
2017-07-25 15:10:26 14689 7
原创 Unity调用Win32的打开和保存文件对话框
在window平台下,有时我们需要打开或则保存一些东西到指定目录下,这时我们不需要再重复造轮子,完全可以调用系统的文件窗口,
2017-06-20 16:10:02 5815 7
原创 Unity发布时设置窗口遇到的坑
1:发布客户端时经常不能全屏,发布设置也不起作用。 解决办法: 如果发布设置不能正常全屏,那么可以通过代码强制全屏,设置全屏的代码经常是在Awake()中执行。代码为: void Awake() { //获取设置当前屏幕分辩率 Resolution[] resolutions = Screen.resolutions; //设置当前分辨
2017-06-06 16:23:44 9306 1
原创 游戏掉落概率算法
游戏开发中我们经常会用到物品掉落概率这个算法,比如打怪掉不掉宝物,掉落的是何种宝物,这个都需要概率来控制的,在实际项目中抽奖系统有的也会采用跟掉落概率相似的算法。并且,抽奖系统的概率可能还会随着抽奖人数的变化而不断调整,这个虽然看起来有点复杂,其实只是多了逻辑,如果知道普遍的掉落概率算法,那么我相信这种可控的概率算法也是很简单的。掉率概率的原理很简单,就是基本高中概率知识,原理如下:假设有Blue...
2017-05-10 10:40:27 24694 1
原创 WCF教程二之WCF架构
WCF是一个分层次的架构,可以充分支持分布式程序的开发,在开发过程中WCF服务和应用程序之间的层次关系如下: 契约 WCF利用契约这个概念将服务和服务的操作定义为一个整体,以解释通过网络传输的数据,WCF主要区分数据契约,服务契约,消息契约以及Policy&Binding。Service contract - 服务契约 服务契约定义了服务向外界公开的功能,
2017-05-02 20:06:51 568
原创 unity打印日志到文件
对于打印日志到文件,我们可以选择使用Log4NET插件,这个插件有很强大的功能,但是经常我们并不需要这么多的功能,有时我们可能只想输出一下异常而已,所以我推荐自己写DLL来实现这个功能。 具体做法如下: 在VS里新建类库项目,粘贴下面的代码:using System.IO;using UnityEngine;namespace Unity{ public class Logout
2017-04-28 16:37:58 7605
原创 Unity webGL以及HTML与unity通信
1;什么是Unity webGLwebGL 的编译选项允许unity发布像使用了HTML5和webGL渲染API技术来使unity程序可以跑在浏览器中的javascript 程序。想要编译和测试WebGL程序,只需要在Build Playersetting里选择WebGL编译平台即可。 2:unity是怎么样发布为webGl程序的为了运行webgl,需要我们的所有代码都是采用JavaScript编
2017-04-28 16:23:37 22638 2
原创 AssetBundle打包和各种加载方式
1:什么是AssetBundle。 AssetBundle是从unity项目中打包出来的资源文件,可用于资源的更新等。AssetBundle支持3中格式的压缩选择,分别是LZMA,LZ4,无压缩。默认是LZMA格式的压缩,但是这样虽然可以使资源文件大小大大缩小,利于下载,但是也有不利的一面,在使用时会先解压再使用,所以会造成加载时间过长。 不压缩格式资源包会比较大,但是加载时不需要解压,所以加载
2017-03-31 14:59:11 19145 1
原创 Unity自带NavMesh寻路组件及摄像机跟随主角
在游戏中,角色的自动寻路功能很常见,当我们点击地图中的某个位置时角色自动走到该位置点,并且还自动绕过障碍物,这个功能看起来很高大上,但是通过Unity自带的寻路组件很容易实现。废话不说,先上效果,觉得效果不是想要的可以不用继续看,毕竟时间是最重要的。 具体实现分为3步: 1:创建游戏物体,本次物体主要有cube表示主角,pointlight照亮鼠标点击的位置表示选取的位置,Terrain
2017-03-16 16:56:25 2058
原创 拖尾特效的制作
在游戏制作中我们经常会有物体拖尾特效的需求,比如子弹拖尾,飞机拖尾,这些拖尾看似很漂亮,但是制作起来很容易。主要技术就是Trail Renderer组件。效果图如下: 主要步骤为: 1:创建一个空物体,给空物体添加Trial Renderer组件。 2:创建一个材质球,给材质球添加你想要的贴图。 3:将材质球赋予这个空物体,则材质球自动变成了Trial Renderer的材质。如图:
2017-02-09 15:41:36 9286
原创 unity虚拟摇杆的实现
在游戏中,虚拟摇杆是很常见的,这里我主要是制作第一人称的虚拟摇杆,第三人称的实现原理也是类似的。废话不说,直接说实现方式。 最终效果图如下: 实现方式分为3步: 1:在canvas下创建一个空的子物体,名称为yangan或者你想要的其他名字,这里为yaogan。给子物体添加image组件,添加的方式是Component->UI->Image,给image组件绑定一个图片作为摇杆的背景图片。
2016-12-28 09:56:21 2012 1
原创 C#委托
委托的意思跟它的本意是一样的,就是我不直接处理一件事情,我委托别人帮我处理。 在委托别人帮忙时,我们需要做以下的几件事情。 首先,这件事我自己做不了,我开始决定委托别人做了,做出委托决定,就是委托中的委托定义。委托的定义采用Delegate关键字定义。 例如:Delegate String Sayname(string name); 这就定义了一个委托。它的语法跟方法的定义类似,但是没有方法
2016-10-13 15:15:56 653
原创 unity水下模糊效果
我看到网上大部分帖子都是通过景深(depth of field)实现,但是我自己在用的过程中发现并不好用,虽然能实现水下模糊,但是模糊的太假,不像是在水下,我这里采用的是浅蓝色的雾加blur实现,先上效果图: 水面图 水下图 实现方法如下:
2016-10-09 17:25:51 8789
原创 unity避免相机穿墙
当采用第一人称相机时相机穿墙是一件很烦人的事情,避免相机穿墙有几种方法,比较常见的是采用characterController的第一人称角色控制器,但是这个比较麻烦的事情是它有3个子物体,还要有好几个的脚本,有时我们仅仅就是为了使相机具有刚体特性而不需要其他功能,显然使用第一人称角色控制器有点大材小用。所以这里我们可以换以一种方法,例如我们场景里的普通相机,我们如果想避免相机穿墙,可以给相机添加Ch
2016-10-09 17:10:02 6555
原创 unity小地图制作和方向导航
一:unity方向导航制作: 设计要求是方向导航随着鼠标旋转转换方向,效果图如下: 具体的实现方法主要有两个步骤,分别为UI设计和脚本编写。我的设计思路是这个控件分为两层,第一层为东西南北指示层,第二层为图标指示层,这里我的图标采用圆形图标,方向指示这里采用控制图标旋转的方式实现,层级关系如下: 首先创建父节点1,然后在父节点下创建子节点2,3;最后调整好位置。 第二步脚
2016-08-25 17:24:59 6705 1
原创 Unity创建按钮点击实现菜单显示和隐藏
在游戏的UI界面制作中我们经常会用到使用菜单来选择或则开关一些东西,具体的样式如图所示: 具体的效果是点击按钮前没有显示图层开关菜单,点击后显示,并可以进行开关操作,下面我就展示如何制作这个UI控件。 这个功能很常见,但是UGUI上并没有这个控件,我们可以通过简单的控件组合来实现这个看似高级的控件。 第一步: 在Hierarchy面板下创建一个button,
2016-08-10 15:13:15 49717 11
原创 Unity 动态改变button图标
我们在做UI时经常会用到通过按钮来控制UI菜单的显示和隐藏,在显示和隐藏Ui的过程中通常又需要改变按钮的图标,如下示例所示: 由图可以看到,当隐藏菜单时按钮图标指向左面,点击后显示菜单并按钮图标指向右边。 这一过程通过代码很容易实现。我们先来关注一下button的inspector面板,面板如下: 通过inspector面板我们可以发现,控制butt
2016-08-10 10:33:05 21616 2
原创 openstack常用命令
openstack的常用命令1、查看rabbitmq 队列:rabbitmqctl list_queues2、查看keystone的用户:keystone user-list3、查看keystone endpoint:keystone endpoint-list4、查看keystone的role:keystone role-list5、查看keystone 服务:keystone service-l
2016-08-05 09:00:48 1902
原创 Unity GUI自适应屏幕分辨率的方法
1:GUI自适应屏幕方法. 由于屏幕尺寸的问题,我们设计的UI在不同尺寸屏幕上不能很好的工作,因此我们的工程需要适应不同屏幕的要求,unity新版本中已经可以设置屏幕自适应而不需要我们自己去设置,在设置之前我们先了解一下Canvas的inspector属性都有什么。 A: render Mode 渲染模式选择,这里有三种模式分别为:Screen Space – overlay,Scree
2016-08-05 08:51:15 21836 1
原创 opencv学习之一简单的图片显示
#include "stdafx.h"#include using namespace std;//#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")int main(){ const char *pstrImageName = "C:\\Users\\huangchuang
2015-10-03 16:16:20 412
UniPatcher2019v3.zip
2019-07-14
UniPatcher2019_v3.rar
2019-07-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人