Unity3D
文章平均质量分 58
星空不语
时时想到可能被别人超越,才会用双倍的时间和精力去超越别人。(穆斯林的葬礼)
展开
-
[Unity3D]简单使用Protobuf-net(二)
上一节使用的是NuGet程序包的方式,在程序中简单的使用Protobuf-net,接下来换一种方式。 使用源码编译后的动态链接库,这样有个好处就是,你可以选择目标平台。 首先需要下载源码:https://github.com/mgravell/protobuf-net可以使用git克隆项目,也可以下载压缩包,本人使用的是git方式。 源码获取后,打开源码目录下的“Proto 2013.sln”原创 2016-05-01 16:55:00 · 17267 阅读 · 7 评论 -
[Unity3D]Shader学习笔记之点和矢量
简介点(point)是n维空间(游戏中主要使用二维和三维空间)中的一个位置,它没有大小、宽度这类概念。矢量(vector,也被称为向量)是指n维空间中一种包含了模(magnitude)和方向(direction)的有向线段。速度(velocity)就是一种典型的矢量。 矢量的模指的是这个矢量的长度。一个矢量的长度可以是任意的非负数。矢量的方向则描述了这个矢量在空间中指向。矢量的头(head原创 2016-08-31 21:47:04 · 1057 阅读 · 0 评论 -
[Unity3D]使用GL实现图案解锁功能
聊天是时候看到有人问如何在Unity3D的UGUI中实现图案解锁的功能,然后便试了一下。刚开始想用LineRender来实现,但又一想是要在UGUI中,然后就用了另外一种方法,即使用GL类来实现。 GL相关介绍及官方文档:https://docs.unity3d.com/ScriptReference/GL.html 实现后在Android手机上跑的效果如下: 主要实现Grap原创 2016-09-15 21:50:06 · 2049 阅读 · 2 评论 -
[Unity3D]单例的一种实现方式
有些类,整个程序运行中,只有一个实例,我们可将其设置为单例,方便程序中其他部分的使用。使用方式如下using UnityEngine;public class GameManager : Singleton<GameObject>{ public void Func(){}}//......GameManager.Instance.Func();//......using Unity原创 2016-11-28 22:33:51 · 506 阅读 · 0 评论 -
[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 · 3795 阅读 · 0 评论 -
[Unity3D]Shader编程之扫描显示2
上一篇使用的方式是对UV进行剪裁,如果用于模型的话,会出现一些问题。本片使用的方式是对模型进行模型空间的剪裁,可设置剪裁方向。效果如下:设置界面如下: mode用于设置剪裁方向。 clip用于设置剪裁值。shader实现如下:Shader "XM/ScanEffect2" { Properties { _Color ("Color", Color) = (1,1,1,1原创 2016-12-05 19:29:06 · 1466 阅读 · 5 评论 -
[Unity3D]Shader编程之腐蚀消失
本片shader实现的效果是模型腐蚀消失,且腐蚀的边缘大小可以调、颜色可调。效果图如下:设置面板如下: 使用时需要给ClipMask参数给一张噪点图,设置合适的cliplinesize和cliplinecolor,然后调整clipalpha就可以了。原理是通过获取噪点图上对应的颜色,转换成灰度,然后用灰度与clipalpha对比,如果大于则被剪裁掉。shader实现如下:Shader "XM/Co原创 2016-12-05 19:53:34 · 2284 阅读 · 1 评论 -
[Unity3D]ResourceManager类及其编辑器扩展
为了方便程序中动态加载resources目录中物体,编写了一个ResourceManager的单例类,使用时需要将其附加到一个游戏物体上。可以实现对物体的分类、重命名、异步加载。可用方法如下://通过名字和类型加载,类型为0时,不判断类型ResourceRes<T> Load<T>(string name, ResourceType type = 0) where T : UnityEngine.原创 2016-11-27 19:46:31 · 3362 阅读 · 3 评论 -
[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 · 5909 阅读 · 0 评论 -
[Unity3D]编辑器扩展之数组或List显示
之前一直使用循环的方式创建,现在找到了一种更简便的方法,效果和Inspector面板上是一模一样的。省事了ヾ(Ő∀Ő๑)ノ太好惹!原创 2017-02-05 22:48:27 · 24903 阅读 · 1 评论 -
[Unity3D]通用对象池类ResourcePool<T>
通用对象池,使用时会将常用的对象至于池顶,如果设置了池的大小,超出池的未经常使用的对象将被移除,并且执行回调,可在回调中对移除对象进行其他操作。 可对压入的对象进行命名,通过名字来进行查找和删除。使用方式//......ResourcePool<GameObject> _pool = new ResourcePool<GameObject>(OnRemove, 10);//......voi原创 2016-11-28 22:25:07 · 970 阅读 · 3 评论 -
[Unity3D]Shader编程之动态屏幕遮罩
屏幕可视范围跟随目标物体移动,可修改可视范围大小,边缘渐变大小、以及遮罩颜色,支持最高物体数量可在Shader中修改,当前版本支持最多9个物体。原创 2017-11-02 16:50:57 · 4977 阅读 · 9 评论 -
[Unity3D]适用于UWP的XmlDocument使用方法
本篇演示XmlDocument既可在UWP中使用又可在Unity3D编辑器中使用的方法。原创 2016-08-10 01:39:52 · 2811 阅读 · 0 评论 -
[Unity3D]使用右键菜单打开工程
Unity没有像Vs那样的“*.sln”的项目工程文件,不能通过这个文件来打开工程。但是原有的打开已有工程的方法太过于麻烦了,则现在来通过添加右键菜单的方式,通过项目工程目录右键打开对应的工程。 步骤如下:打开注册表,使用快捷键“Win + R”打开运行窗口,然后在输入框内输入“regedit”回车,即可打开。 依次打开目录树:“HKEY_CLASSES_ROOT\Folder\shell” 右原创 2016-09-11 22:52:03 · 2096 阅读 · 0 评论 -
[Unity3D]简单使用Protobuf-net(一)
Protobuf 是Google的一个开源序列化库,因为使用的数据压缩算法等优化,序列化的数据较Xml更小,速度更快,因为序列化后数据是以紧凑的二进制流形式展现的,所以几乎不可直接查看。由于Protobuf不支持.Net3.5及以下版本,所以如果要在Unity3D当中使用,则需要用到第三方的Protobuf-net库。原创 2016-04-21 21:18:57 · 8960 阅读 · 1 评论 -
[Unity3D]简单使用Protobuf-net(三)
前两篇讲解了如何使用导入NuGet程序包和动态链接库的方式来使用Protobuf-net。接下来将讲解如何直接在Unity中使用源码来进行序列化与反序列化操作。首先需要获取源码,获取方式上一篇已经说明,不清楚的可以看:[Unity3D]简单使用Protobuf-net(二)创建一个Unity工程,然后将源码中的“protobuf-net”文件夹导入到Unity工程中,“protobuf-net”文件原创 2016-05-01 22:46:06 · 6178 阅读 · 3 评论 -
[Unity3D]视频播放简单范例
空闲时间学习了一下Unity3d中播放视频的方法,特在此记录下来。 一共实现了两种方式:使用MovieTexture GUI实现MeshRenderer实现使用Handheld.PlayFullScreenMovie经测试 第一种方式可以在Windows、Windows Phone、编辑器模式下运行。 第二种方式只能在Android上运行。演示Demo下载地址:http://down原创 2016-05-24 20:48:30 · 1566 阅读 · 0 评论 -
[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 · 6327 阅读 · 1 评论 -
[Unity3D]C# 调用C++ DLL
本文主要演示一个简单范例及介绍相关知识。 先亮出演示代码,该程序演示的是在C#代码中传入结构体与委托,然后在C++代码中调用委托并将结构体传入以进行修改。原创 2016-02-17 23:28:59 · 3797 阅读 · 0 评论 -
[Unity3D]Window Phone代码通信
如果要在Unity3D中接入Window Phone(以下简称WP)的广告SDK,则需要用到WP与Unity3D之间的消息传递。 本文将创建一个简单工程,有需要的人可以以此类推。 本工程主要功能实现了Unity3D中按钮事件传递到WP工程中,且在WP工程中对该按钮的颜色进行随机调整。 接下来就是正文,一步步来!先创建一个Unity3D的工程,并导入NGUI(尝试了下UGUI,结果WP中不响应原创 2016-02-05 14:50:39 · 703 阅读 · 0 评论 -
[Unity3D]Shader学习笔记之渲染流水线
流水线的概念渲染流水线应用阶段 Application Stage几何阶段 Geometry Stage光栅化阶段 Rasterizer StageCPU和GPU之间的通信GPU流水线几何阶段顶点着色器剪裁屏幕映射光栅化阶段三角形设置三角形遍历片元着色器逐片元操作模版测试 Stencil Test深度测试 Depth Test混合 Blend双重缓冲 Doub原创 2016-08-27 16:22:05 · 1093 阅读 · 0 评论 -
[Unity3D]Shader学习笔记之图像编程接口与着色语言
图像编程接口 如果开发者直接访问CPU、寄存器、显存等硬件设备将会是一件非常麻烦的事情,为了方便使用在这些硬件的基础上实现了一层抽象,这就是图像编程接口。 OpenGL和DirectX就是这些图像编程接口,这些接口用于渲染二维或三维图形。这些接口架起了上层应用程序和底层GPU的沟通桥梁。 一个应用程序向这些接口发送渲染命令,而这些接口会依次向显卡驱动(Graphics driver)发原创 2016-08-29 21:51:39 · 969 阅读 · 0 评论 -
[Unity3D]Shader学习笔记之Shader与DrawCall
Shader是什么? Shader所在阶段是渲染流水线的一部分,具体的说就是:GPU流水线上一些可高度编程的阶段,而由着色器编译出来的最终代码是会在GPU上运行的(对于固定管线的渲染来说,着色器有时等同于一些特定的渲染设置)有一些特定类型的着色器,如顶点着色器、片元着色器依靠着色器我们可以控制流水线中的渲染细节,例如用顶点着色器来进行顶点变换以及传递数据,用片元着色器来进行逐像素的渲染原创 2016-08-29 23:13:57 · 1887 阅读 · 0 评论 -
[Unity3D]在UWP工程中使用的序列化方法
Unity3D开发中经常需要保存固化数据到本地,常用的数据序列化格式有XML、Json等,有时也会用到Protobuf。下面会依次讲解如何在UWP工程中使用Json及XML的序列化和反序列化。原创 2016-08-08 22:26:28 · 2094 阅读 · 4 评论 -
[Unity3D]Shader学习笔记之ShaderLab基础
简介 Unity Shader为控制渲染过程提供了一层抽象。如果没有它,开发者需要和很多文件设置打交道,才能让画面呈现出想要的效果;而在Unity Shader的帮助下,开发者只需要使用ShaderLab来编写Unity Shader文件就可以完成所有工作。 在Unity中,所有的Unity Shader都是使用ShaderLab来编写的。ShaderLab是Unity提供的编写Unity原创 2016-08-30 20:08:11 · 1145 阅读 · 0 评论 -
[Unity3D]动态生成平面网格
在编写几何着色器的时候发现默认的Plane无法满足需求,并且顶点顺序未知,于是便写了一个网格生成代码,便于生成指定大小的Plane,且顶点顺序可控。效果如下:一个单元格由4个顶点,两个三角面组成。四个顶点如下图则生成面的顶点顺序为:左上三角形:0 -> 1 -> 2右下三角形:2 -> 3 -> 0Unity中顺时针绘制为正面,逆时针绘制...原创 2018-09-03 15:40:22 · 7000 阅读 · 1 评论