自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

星空不语

思而不学则殆,学而不思则罔。

  • 博客(48)
  • 资源 (4)
  • 问答 (2)
  • 收藏
  • 关注

原创 [Unity3D]动态生成平面网格

在编写几何着色器的时候发现默认的Plane无法满足需求,并且顶点顺序未知,于是便写了一个网格生成代码,便于生成指定大小的Plane,且顶点顺序可控。效果如下:一个单元格由4个顶点,两个三角面组成。四个顶点如下图则生成面的顶点顺序为:左上三角形:0 -> 1 -> 2右下三角形:2 -> 3 -> 0Unity中顺时针绘制为正面,逆时针绘制...

2018-09-03 15:40:22 6877 1

原创 [UE4]UMG CheckBox Group实现

学习UE4的时候,发现UMG居然没有CheckBoxGroup,CheckBox分组需要自己管理。相比于Unity3D来说,UE4在UI方面确实欠缺很多。无奈之下只好自己实现一个。实现效果如下: 编辑界面如下: 代码实现如下:CheckBoxGroup.h// Fill out your copyright notice in the Description page of Project Se

2017-11-03 10:09:17 3359 2

原创 [Unity3D]Shader编程之动态屏幕遮罩

屏幕可视范围跟随目标物体移动,可修改可视范围大小,边缘渐变大小、以及遮罩颜色,支持最高物体数量可在Shader中修改,当前版本支持最多9个物体。

2017-11-02 16:50:57 4866 9

原创 [MYSQL]存储过程使用范例

存储过程封装了一系列的数据库操作,这样既方便了程序中调用,也加快了数据库访问速度。同时一些简单的逻辑修改也不用直接修改程序,直接修改存储过程即可。

2017-07-11 23:59:50 380

原创 [C++]MYSQL 数据库操作封装及连接池实现

Database类为单例类、线程安全、实现了连接池,并且封装所需要的操作。本代码在Ubuntu下测试可用,使用Mysql connector c++连接数据库,并启用C++11特性。

2017-07-11 23:44:45 3493 4

原创 [C++]类中的静态变量必须初始化

有一段时间不用c++了,突然用起来写了个类,编译居然报错了,怎么看都看不出问题出来=。=,不过最终还是找到原因所在了。类中的静态变量必须初始化

2017-04-01 15:59:22 848

原创 [Unity3D]编辑器扩展之数组或List显示

之前一直使用循环的方式创建,现在找到了一种更简便的方法,效果和Inspector面板上是一模一样的。省事了ヾ(Ő∀Ő๑)ノ太好惹!

2017-02-05 22:48:27 24624 1

原创 [Algorithm]随机抖动整数拆分

测试效果: 当number=101、size=6、wave=3时,可得到如下效果:17、19、16、18、13、1818、15、18、14、19、17可看到生成的随机数在16上下浮动,幅度不超过3,且总和为101。源码如下:using System.Collections.Generic;using UnityEngine;using Random = UnityEngine.Rando

2017-01-31 01:44:02 854

原创 [Unity3D]Shader编程之贴图切换

本shader实现基于世界坐标的贴图置换效果。效果如下: 设置面板如下: 可在面板上设置切换方向,与切换对象,及其切换速度。shader实现如下:Shader "XM/Effect/SwapTexture" { Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)"

2016-12-31 01:11:20 5844

原创 [Unity3D]Shader编程之腐蚀消失

本片shader实现的效果是模型腐蚀消失,且腐蚀的边缘大小可以调、颜色可调。效果图如下:设置面板如下: 使用时需要给ClipMask参数给一张噪点图,设置合适的cliplinesize和cliplinecolor,然后调整clipalpha就可以了。原理是通过获取噪点图上对应的颜色,转换成灰度,然后用灰度与clipalpha对比,如果大于则被剪裁掉。shader实现如下:Shader "XM/Co

2016-12-05 19:53:34 2238 1

原创 [Unity3D]Shader编程之扫描显示2

上一篇使用的方式是对UV进行剪裁,如果用于模型的话,会出现一些问题。本片使用的方式是对模型进行模型空间的剪裁,可设置剪裁方向。效果如下:设置界面如下: mode用于设置剪裁方向。 clip用于设置剪裁值。shader实现如下:Shader "XM/ScanEffect2" { Properties { _Color ("Color", Color) = (1,1,1,1

2016-12-05 19:29:06 1446 5

原创 [Unity3D]Shader编程之扫描显示

通过Shader实现,从左向右的扫描显示,可自定义扫描颜色、宽度、速度。效果图如下 编辑器界面如下 Shader源码如下Shader "XM/ScanEffect"{ Properties { _MainTex("Main Tex", 2D) = "white"{} _lineColor("Line Color", Color) = (0,0,0

2016-11-28 23:16:16 3752

原创 [Unity3D]单例的一种实现方式

有些类,整个程序运行中,只有一个实例,我们可将其设置为单例,方便程序中其他部分的使用。使用方式如下using UnityEngine;public class GameManager : Singleton<GameObject>{ public void Func(){}}//......GameManager.Instance.Func();//......using Unity

2016-11-28 22:33:51 488

原创 [Unity3D]通用对象池类ResourcePool<T>

通用对象池,使用时会将常用的对象至于池顶,如果设置了池的大小,超出池的未经常使用的对象将被移除,并且执行回调,可在回调中对移除对象进行其他操作。 可对压入的对象进行命名,通过名字来进行查找和删除。使用方式//......ResourcePool<GameObject> _pool = new ResourcePool<GameObject>(OnRemove, 10);//......voi

2016-11-28 22:25:07 954 3

原创 [Unity3D]ResourceManager类及其编辑器扩展

为了方便程序中动态加载resources目录中物体,编写了一个ResourceManager的单例类,使用时需要将其附加到一个游戏物体上。可以实现对物体的分类、重命名、异步加载。可用方法如下://通过名字和类型加载,类型为0时,不判断类型ResourceRes<T> Load<T>(string name, ResourceType type = 0) where T : UnityEngine.

2016-11-27 19:46:31 3330 3

原创 [gSoap]使用RESTful架构搭建简单跨平台Webservice

简介  原先是直接使用的Socket来进行网络编程,但遇到高并发我就难以招架了,与是在网上找了一下,发现了开源的gSoap跨平台库,于是就开始尝试使用起来。   官方主页:https://www.genivia.com/products.html   说明文档:https://www.genivia.com/doc/soapdoc2.html   源码下载:https://sourceforg

2016-11-07 22:43:23 3766 2

原创 [Algorithm]二分法查找算法

简介二分法查找(Binary Search)又称为折半查找(Half-Interval Search),是一种针对有序数列的查找方法。时间复杂度每次把搜索区域减少一半 最差:O(logn)O(logn) 最优:O(1)O(1)空间复杂度迭代: O(1)O(1) 递归: O(logn)O(logn)工作原理如下:判断查找范围最大值与最小值是否相等: 如果相等,则取查找范围下标的中间值,并与所

2016-10-08 23:07:52 636

原创 [Algorithm]排序算法

闲来无事回顾一下原来所学的排序算法,包括冒泡、选择、插入、希尔、快速、归并排序,这六种。   首先依次讲解原理,最后放出实现及测试速度源码。冒泡排序  我想大部分人学习的第一个排序算法就是这个。   顾名思义,如泡泡般,越到水面就越大,即经过连续不断的判断,选取大(或小)的值进行交换,一轮结束后,未排序数据最后面的就是最大(或最小)的值。    工作原理比较相邻的元素,如果前一个比

2016-09-22 01:38:23 775

原创 [Unity3D]使用GL实现图案解锁功能

聊天是时候看到有人问如何在Unity3D的UGUI中实现图案解锁的功能,然后便试了一下。刚开始想用LineRender来实现,但又一想是要在UGUI中,然后就用了另外一种方法,即使用GL类来实现。   GL相关介绍及官方文档:https://docs.unity3d.com/ScriptReference/GL.html   实现后在Android手机上跑的效果如下:     主要实现Grap

2016-09-15 21:50:06 2022 2

原创 [Unity3D]使用右键菜单打开工程

Unity没有像Vs那样的“*.sln”的项目工程文件,不能通过这个文件来打开工程。但是原有的打开已有工程的方法太过于麻烦了,则现在来通过添加右键菜单的方式,通过项目工程目录右键打开对应的工程。 步骤如下:打开注册表,使用快捷键“Win + R”打开运行窗口,然后在输入框内输入“regedit”回车,即可打开。 依次打开目录树:“HKEY_CLASSES_ROOT\Folder\shell” 右

2016-09-11 22:52:03 2017

原创 [Unity3D]Shader学习笔记之点和矢量

简介点(point)是n维空间(游戏中主要使用二维和三维空间)中的一个位置,它没有大小、宽度这类概念。矢量(vector,也被称为向量)是指n维空间中一种包含了模(magnitude)和方向(direction)的有向线段。速度(velocity)就是一种典型的矢量。 矢量的模指的是这个矢量的长度。一个矢量的长度可以是任意的非负数。矢量的方向则描述了这个矢量在空间中指向。矢量的头(head

2016-08-31 21:47:04 976

原创 [Unity3D]Shader学习笔记之ShaderLab基础

简介  Unity Shader为控制渲染过程提供了一层抽象。如果没有它,开发者需要和很多文件设置打交道,才能让画面呈现出想要的效果;而在Unity Shader的帮助下,开发者只需要使用ShaderLab来编写Unity Shader文件就可以完成所有工作。   在Unity中,所有的Unity Shader都是使用ShaderLab来编写的。ShaderLab是Unity提供的编写Unity

2016-08-30 20:08:11 1125

原创 [Unity3D]Shader学习笔记之Shader与DrawCall

Shader是什么?  Shader所在阶段是渲染流水线的一部分,具体的说就是:GPU流水线上一些可高度编程的阶段,而由着色器编译出来的最终代码是会在GPU上运行的(对于固定管线的渲染来说,着色器有时等同于一些特定的渲染设置)有一些特定类型的着色器,如顶点着色器、片元着色器依靠着色器我们可以控制流水线中的渲染细节,例如用顶点着色器来进行顶点变换以及传递数据,用片元着色器来进行逐像素的渲染

2016-08-29 23:13:57 1863

原创 [Unity3D]Shader学习笔记之图像编程接口与着色语言

图像编程接口  如果开发者直接访问CPU、寄存器、显存等硬件设备将会是一件非常麻烦的事情,为了方便使用在这些硬件的基础上实现了一层抽象,这就是图像编程接口。   OpenGL和DirectX就是这些图像编程接口,这些接口用于渲染二维或三维图形。这些接口架起了上层应用程序和底层GPU的沟通桥梁。   一个应用程序向这些接口发送渲染命令,而这些接口会依次向显卡驱动(Graphics driver)发

2016-08-29 21:51:39 949

原创 [Unity3D]Shader学习笔记之渲染流水线

流水线的概念渲染流水线应用阶段 Application Stage几何阶段 Geometry Stage光栅化阶段 Rasterizer StageCPU和GPU之间的通信GPU流水线几何阶段顶点着色器剪裁屏幕映射光栅化阶段三角形设置三角形遍历片元着色器逐片元操作模版测试 Stencil Test深度测试 Depth Test混合 Blend双重缓冲 Doub

2016-08-27 16:22:05 1063

原创 [C++]C++/CX 编程简述

C++/CX 是windows运行时的C++语法。它是属于Native C++,不使用CLR也没有垃圾回收机制,与.Net平台下扩展的C++/CLR有本质的区别,虽然两者语法比较类似,但是这两者是完全不同的。C++/CX是基于Windows运行时而诞生的,它运行在Windows运行时上,比在.Net平台上的托管C++具有更高的效率。Windows运行时中不支持标准C++的long型。访问器publi

2016-08-10 21:28:33 6305

原创 [Unity3D]适用于UWP的XmlDocument使用方法

本篇演示XmlDocument既可在UWP中使用又可在Unity3D编辑器中使用的方法。

2016-08-10 01:39:52 2789

原创 [Unity3D]在UWP工程中使用的序列化方法

Unity3D开发中经常需要保存固化数据到本地,常用的数据序列化格式有XML、Json等,有时也会用到Protobuf。下面会依次讲解如何在UWP工程中使用Json及XML的序列化和反序列化。

2016-08-08 22:26:28 2057 4

原创 [Python]爬虫,正则表达式解析网页及Json序列化

无意间发现一个有免费VPS的网站,但是密码时常更新,需要经常访问这个网站去获取最新的密码。作为一个喜欢偷懒的程序猿,怎么能容忍不断做这种有规律重复的事情呢?妥妥的可以交给程序去做嘛~所以突击学习了以下Python3,写了一个小爬虫工具,在此做下总结,以防忘记了,毕竟遇到了许多问题,哈哈。一步步来! 需要读取网页,所以我使用了自带的urllib.request模块,在开头用import导入,这点到和

2016-05-30 23:17:16 8115 2

原创 [Unity3D]视频播放简单范例

空闲时间学习了一下Unity3d中播放视频的方法,特在此记录下来。 一共实现了两种方式:使用MovieTexture GUI实现MeshRenderer实现使用Handheld.PlayFullScreenMovie经测试 第一种方式可以在Windows、Windows Phone、编辑器模式下运行。 第二种方式只能在Android上运行。演示Demo下载地址:http://down

2016-05-24 20:48:30 1543

原创 [Other]1/0.0f Error?

今天无意间发现了一件有意思但从未注意的事,常理中“0”是不能作除数的,然而在程序猿的世界中还是这样的吗?今天特地的去测试了以下,结果如下。

2016-05-07 14:06:49 612

原创 [KBEngine]安装及第一次启动

用Unity3d写了一段时间的单机游戏,觉得还是多人联机好玩有挑战一些,而游戏服务器从头开始写又是很麻烦的,于是在网上查了一下游戏服务器引擎后发现了几个免费开源的,如KBEngine、Pomelo等。对比了一下,觉得KBEngine的资料详细一些,便开始着手学习起来。 这篇文章主要讲解的是如何在Ubuntu上布置引擎环境及首次启动。如果需要详细了解KBEngine的可以在http://kbengi

2016-05-03 00:27:15 6547

原创 [Unity3D]简单使用Protobuf-net(三)

前两篇讲解了如何使用导入NuGet程序包和动态链接库的方式来使用Protobuf-net。接下来将讲解如何直接在Unity中使用源码来进行序列化与反序列化操作。首先需要获取源码,获取方式上一篇已经说明,不清楚的可以看:[Unity3D]简单使用Protobuf-net(二)创建一个Unity工程,然后将源码中的“protobuf-net”文件夹导入到Unity工程中,“protobuf-net”文件

2016-05-01 22:46:06 6118 3

原创 [Unity3D]简单使用Protobuf-net(二)

上一节使用的是NuGet程序包的方式,在程序中简单的使用Protobuf-net,接下来换一种方式。 使用源码编译后的动态链接库,这样有个好处就是,你可以选择目标平台。 首先需要下载源码:https://github.com/mgravell/protobuf-net可以使用git克隆项目,也可以下载压缩包,本人使用的是git方式。 源码获取后,打开源码目录下的“Proto 2013.sln”

2016-05-01 16:55:00 17188 7

原创 [MySQL]远程访问数据库设置

第一步,需要取消MySQL的IP绑定。 方法是注释配置文件中的“bind-address”这一段: Ubuntu中打开配置文件方法如下:sudo vim /etc/mysql/my.cnf修改完成后重启MySQL,方法如下:sudo /etc/init.d/mysql restart第二步,创建远程访问用户。 方法如下: 用root用户打开数据库,然后执行以下操作。//切换到mysql数据库

2016-04-23 00:25:26 876

原创 [Unity3D]简单使用Protobuf-net(一)

Protobuf 是Google的一个开源序列化库,因为使用的数据压缩算法等优化,序列化的数据较Xml更小,速度更快,因为序列化后数据是以紧凑的二进制流形式展现的,所以几乎不可直接查看。由于Protobuf不支持.Net3.5及以下版本,所以如果要在Unity3D当中使用,则需要用到第三方的Protobuf-net库。

2016-04-21 21:18:57 8895 1

原创 [Unity3D]Unity Remote4 远程调试

Unity Remote4支持Android与IOS(iPhone, iPad and iPod touch)设备的调试。 调试Android程序需要在Windows或OSX系统下使用USB连接设备。 调试IOS程序需要在OSX系统下使用USB连接设备。调试时,Unity3D Game视图上的画面会推送到设备上,而设备中的以下数据则会返回到编辑器之中。触摸输入加速计陀螺仪摄像头GPS

2016-03-13 18:11:30 6286 1

原创 [Unity3D]C# 调用C++ DLL

本文主要演示一个简单范例及介绍相关知识。 先亮出演示代码,该程序演示的是在C#代码中传入结构体与委托,然后在C++代码中调用委托并将结构体传入以进行修改。

2016-02-17 23:28:59 3749

原创 [ShellExtension]属性页扩展-IShellPropSheetExt实现

还是先亮源码下载地址:https://git.oschina.net/xiangmu110/template_IShellPropSheetExt以下所讲与提供下载的源码不同,但都是一个模子出来的。下面代码实现的是在所有类型的文件的属性中添加一页,用于显示该文件的完整路径。支持同时选择多个文件并查看。

2016-02-09 00:30:30 1764

原创 [ShellExtension]上下文扩展-IContextMenu实现

还是先亮源码下载地址:https://git.oschina.net/xiangmu110/template_IContextMenuExt以下所讲与提供下载的源码不同,但都是一个模子出来的。下面这段程序实现的是在所有类型文件的右键扩展菜单中添加“获取文件大小”和“显示全路径”两个菜单,并实现其功能并支持多文件。

2016-02-07 14:54:43 3316 3

DemoPlayMovie

Unity3d 播放视频的实例包。包含了三种播放视频的实现。

2016-05-24

Unity3D LeanTween 编辑器扩展及扩展类

LeanTween的编辑器扩展和扩展类。 可通过Inspector面板通过一个脚本分组控制单个或多个对象的一个或多个动画。 总之非常方便! Custom目录下为主要文件,其他为依赖的Leantween文件,如果工程中存在可删除。

2016-03-25

Unity Remote 4 远程调试

用于Unity3D远程调试用App与源码。 使用方法见:http://blog.csdn.net/u012741077/article/details/50879188

2016-03-13

Unity Remote4_unitypackage_apk

用于Unity3D远程调试,Unity Remote4的资源包和生成好的Android应用程序。 使用教程见:http://blog.csdn.net/u012741077/article/details/50879188

2016-03-13

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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