自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (6)
  • 收藏
  • 关注

原创 unity3d中mvvm框架的实践

简介         在wpf中,引入的一个比较新颖概念非xaml莫属,而xaml的,大概就是mvvm框架的最好的实践。虽然网络时代的兴起,wpf不会那么火热,了解的人不多。但这里面一些思想,如数据绑定,弱化界面层的逻辑等,被做程序的一群人发扬光大。用在了不同语言及环境下。在不久前还一直都只使用puremvc框架,当然很好的解决了不同程序模块的解耦合的问题,但一真有一块心病,那就是view层在厚。...

2018-04-27 21:49:10 6253 1

原创 C#模板生成

简要说明 创建代码有多种方式。最简单的,就按编辑器最初始的方法生成。稍微会点的就可以自己修改编辑器的模板。再深入一点的就可以自己定义一系列代码模板,保存到文本文件,再读出来,然后修改一些模板信息。用unity3d程序,我倒是习惯了在这程序中创建一个script而不是在vistual studio中去新建代码。这样的话,所有的代码类型,如Interface,struct,enum都需要在创建出一

2018-02-04 23:16:50 7000 2

原创 AddObjectToAsset [u3d-api]

正如果标题所示,本文的思路异常简单,就是应用这个方法,已表达官方api学习重要性.在不会这个方法的时候,想要在一个ScriptObject中嵌套一个ScriptObject,结果场景一切换,资源就不见了.原来内嵌的那个ScriptObject实际上记录在场景中.而这个方法就实际上就可以在一个Object中嵌套其他Object.下面详细说明一.在初始化时创建的资源会随场景关闭而丢失p

2018-01-09 19:05:25 1136

原创 生成中间代码实现跨工程资源加载

unity3d中的开发,最大的特点就是预制体,不是直接的图片,模型等资源.在一个工程中当然有利于开发,但有个需求这样是不太好的,那就是主逻辑不变,动态加载不同的资源出来.设计的思路也没什么要说的,非常简单,就是利用反射将你所写的Monobehaiver和ScriptObject类及内部用到的可序列化的字段与相关的类全部转换为只有可序列化的字段,删除方法及属性,删除接口等用不到的信息.然后导入到

2017-12-12 19:38:43 577

原创 BridgeUI-第二代综合性UGUI框架

BridgeUI-第二代综合性UGUI框架BridgeUI-第二代综合性UGUI框架接口任意脚本中打开一个面板在面板中打开面板为子面板强行关闭对应名称的面板强行隐藏对应的面板注册界面打开事件注册界面关闭事件注册界面信息回调定向发送信息图形化利用线来表示界面与界面之间的关系将节点信息记录独立于Prefab快速展开编辑和快速保存UML设计Facade及生成器界面类型信息模

2017-11-30 18:20:49 1084

原创 深入理解unity5.6版本ui布局功能

从表面上看,unity5.6的和unity5.3的布局功能没有太大的差别,其中VerticalLayoutGroup,只比unity5.3多两个参数即否控制子对象的宽度或高度.但在使用的时候可以实现的效果就远远超过默认控制宽度和高度的布局器强大多了.对于多层嵌套的布局来说,实际上难度还是有比较大的,毕竟一个组件多两个参数,多嵌套几层就复杂了不少.不过越复杂的东西往往灵活性也就越大.一.浮动

2017-11-02 20:10:56 1904 1

原创 讯飞文字转语音_unity3D

前言    讯飞语音是国内的智能语音前沿,有语音合成及语音识别还有一些其他高级的语音服务。前面已经写过一篇unity中使用在线语音的方式,不过由于是国外的网站不稳定,速度相对也慢,目前貌似已经不能用了。所以看好讯飞在线免费使用的优点,同时也看靠c++的而不是直接通过http请求的方式,在这里简要分享下在unity3d开发环境下,基于windows平台的在线语音生成。值得说明的讯飞的语音选择

2017-09-22 18:44:28 9597 9

原创 模型淡出Shader实现

一些特殊的动画,在unity中并不能使用。最近需要实现一种线条慢慢生长的过程,从无到有,还要掉头。这种动画貌似可以使用一些插件来使用,但想想更好的方案就是利用Shader来实现,虽然学习Shader很长时间了,但具体用它来做功能的项目还是比较少。这也算是个相对简单的Shader,其中用到的算法也比较初级,但基本功能也初步实现了,故mark一下。方案1.以空物体做标记记录关键点  如

2017-09-11 18:43:29 1504

原创 状态加载模块

前言        而达到项目优化的效果,在3维场景中漫游的时候,同大多的的2维场景游戏一样,需要在不同的区域需要加载出不同的资源对象。然而2维场景游戏和伪3D的类型的游戏由于视角有限及资源相对较小,加载资源基本都是计算视角区域,进行计算并并加载相关的资源。在3维场景中大多数还是整体加载为主以细节资源加载为辅助,一是能在进入场景后就可眼观全局,二是在进入一个小区域或房间后可以看到具体的资源。为

2017-08-26 17:12:36 393

原创 U3d跨场景开发解决方案

摘要     需要说明的是,本人也不确定跨场景开发这个词是会出现怎样的歧义。简单的说,就是多人合作的升级,不再是多个人在一个Project目录下各负责某个模块,而是一部分人负责某一个工程。将工程分为不同的类型,以便于程序的扩展和维护。有些时候调整其中一个工程就可以实现变化,这样的划分的意义将凸显。设想有如下的场景:你有一个逻辑完善的程序框架,其中部分资源经常需要调整,或则是这部分资源调整就可以

2017-07-06 19:14:07 746

原创 深度序列化的一种解决方案

说明:在unity3d中自己定义的scriptobject中使用了一个可以序列化的类,希望可以在界面上显示,但这个类的一个树型结构,其中包含了同类型的列表。这种情况下,利用unity自己的序列化方式虽然能够用,但官方强烈不让这样用,还直接报红:Serialization depth limit exceeded at '‘. There may be an object composition c

2017-06-15 20:15:08 4394 1

原创 列表生成器

在程序开发过程中难免要涉及到列表的生成,而程序总是相似的。虽然列表中每一条及列表的处理内容不相同,然创建列表,显示列表这个过程是可以抽象出来的。也就是说可以在其他业务逻辑的实现的基础上,将这个共用的列表生成器嵌入到程序中,以防止每次都去重复创建对象设置对象坐标这个繁琐的事情。前一段时间写过一个列表生成脚本,挺实用,应该初始化的时候指定预制体和父级,数据来的时候调用创建就可以实现一个列表显示。一

2017-04-27 20:32:07 292

原创 一种局部ui界面切换解决方案

前段时间开发的动态加载ui界面的功能,在程序面版不太多的情况下还是减少了不少工作量,但由于开发的程序日渐复杂,才终于理解了那些可视化编程插件的意义。毕竟程序再怎么精练也有太多的重复功能,少量的变化就造成了开发过程中无止境的劳动。为此目前也在研究相关的程序化开发程序的插件功能,这两天遇到的面板开发数量已经达到RunTimeUIPanel-ugui这个模块工作的极限 ---- ---- 面板分解粒

2017-04-19 19:47:36 5376

原创 unity启动高级.net功能模块

重要说明:首先,目前的unity3d只支持.net3.5的功能,最新的测试版貌似可以使用.net的高级功能,但也还不能发布使用。为此这里有一个可以实现类似功能的方案--利用unity3d,进程启动另一个微软的中间软件,在unity3d中向其传入参数,并利用反射将开发的dll加载到其中,最后将得到的结果返回到unity3d。这样的过程有点复杂,但我想如果封装的好,应该还是比较容易使用的。在说一个

2017-04-16 17:37:09 1955

原创 利用UnityEditor实现自己的代码生成器

在写了不少代码之后,才发现以前写的很多代码都是重复性的,虽然这样的重复劳动让程序员形成了自己的代码风格,但一直这样下去并不是十分明智的方式。-----------------------------------------------------写在前面本文将利用unity的编辑器扩展功能,结合开源的Rotorz列表生成器,实现一个简单但有意义的代码模板生成。其中生成时使用的模板来自于本人

2017-04-11 19:20:40 8349 1

原创 利用shader绘制矩形网格

实现说明:本文将使用geometry shader实现一类网格体的网格显示。mesh的组成单元为三角片,但实际应用中有时需要实现不显示网格的第三边的矩形网格,这时可以用c#来修改贴图实现这种效果,也可以直接对GPU进行编程,让其绘制指定的区域。本文编写的shader源码是基于AssetStore的免费shader:UCLA Wireframe Shader制作而来,感谢原作者效果预览:

2017-02-14 19:39:32 4693

原创 c#代码实现轴向镂空效果

适用说明:本文仅适用于模型比较简单,网格沿轴向分布的模型,如正方体,长方体等。效果说明:模型的贴图是完整的,但需要动态的按网格数来创建贴图实现指定效果,如下:(镂空前)(镂空后)实现步骤:一、获取网格数据[System.Serializable]public struct MeshStruct { public int[] triangles;

2017-02-09 17:17:50 762

原创 u3d网格编程-绘制多面片长方体

写在前面:unity3d中可以使用Mesh类,实现动态生成网格体,指定uv、法线等操作。本文将绘制一个指定长宽高的长方体,并在其内部划分指定距离的网格,多余的部分的顶底和uv也做了适当的使用。适合正在学习网格编程的同僚参考,下面是实现后的效果图:\本文目录按当时学习并制作的过程来划分如下:一、用脚本实现一个简单的cube绘制二、为cube指定法线和uv等三、用脚本绘

2017-02-08 18:05:39 2293

原创 关于unity3d发布webgl使用nodejs做服务器的实践

3d应用程序跑在浏览器上是一种不可阻挡的趋势,这方向的需求也越来越多,前一段时间发布了一个网页版的实验大厅,用自己电脑发布到iis一点问题没有,但在服务器上测试都不能实现,最后没办法,在外网的客户要看,也只能让iT做端口映射到我这台电脑了。最近发现其实这种小程序,没有很强大的后台系统,一个简单的nodejs服务器就可以实现我的所有需求了。说是服务器有点高了,其实也就是一个脚本,在实践过程中也发

2016-12-19 16:05:56 5940 2

原创 多个可执行程序协同工作

背景最近的项目涉及到一个漫游场景和多个小实验室,一开始是把小实验室和漫游场景放置在一个工程下面并且通过场景切换的方式来链接跳转。考虑到网络应用的大趋势和程序的扩展性,这样做下去实在是难以维护日渐增加的小实验室场景和逻辑。实现本文将实现一个大场景打开小场景并且可以跳转回大场景和功能,这个功能建立在window平台提供的Api的基础上,涉及到程序窗口的隐藏显示,初始进程参数的传递。还有

2016-12-07 20:17:43 447

原创 利用EditorWindow配制序列化数据表格

简介:程序开发中需要连接网络或在程序外部进行配制的数据,一般不保存在unity自身序列化的文件中。但一些固定的数据类型,利用unity3d自身的序列化功能,配合Editor编程可以方便快速的制作可扩展的数据加载模块,需要更换数据源也变得十分便利。本文就一个比较复杂的可序列化类,利用Editor窗口编程,实现数据的快速配制。一、数据模型1、准备一个数据类DataItem,需要为类添加

2016-11-22 17:11:46 3815

原创 用户数据-序列化

说起数据保存与加载,过去开发过程中直接想到的不是xml,json,sqlite就是csv这些可以直接在外部进行编辑的数据保存方式。实际软件中需要大量用户数据保存,而并不用直接用其他软件打开,只需要专用的软件也就是开发者自己做的界面显示。这种情况下,才突然回过神来,原来以前做的设置信息,用户使用过程中的缓存点这些基本的信息我居然用那么多浪费资源的保存方式。早用二进制序列化和反序列化不就好了,少了

2016-10-22 12:10:29 481

翻译 Networking_FpsDemo

一、创建场景。命名场景为Main二、创建NetWorkManager空对象。并添加脚本NetWorkManagerHUD(NetWorkManagerhttps://docs.unity3d.com/Manual/UNetManager.html?_ga=1.90521311.433409425.1476685957The High Level APIhttps:/

2016-10-21 13:34:02 486

原创 Text->AudioClip .Unity3D

简要说明利用在线的方式,实现在程序中将文本转换为语音貌似是非常简单的一个问题。可以参看这篇文章但要注意的是,Unity中并不支持将mp3通过WWW加载并转换为AuidoClip,所以要实现转换效果还必须要转换格式为Wav或者是ogg,还真有人这么做了,看NAudio是怎么实现的。我也试过这种方式,发现打包时会报没有system.window.form的问题。而且显然这种方式并不能用

2016-10-14 19:10:08 1898

原创 利用状态模式CSV文件序列化

简介:  在unity3d中可以使用使用继承自scriptObject类并添加CreateAssetMenu属性方便实现类的序列化,但值得注意的是这种方式并不支持程序打包之后数据的保存。  当然常用的还有xml和json的方式来保存类的信息,在需要的时候加载出来,这方面就不多说了。但是直观的来说,表最适合一些简单的数据类型的记录,键值对最简单。  特别是一个一些程序的配制或者标题对

2016-09-27 19:41:03 1093

原创 webGL平台Unity打开Color窗口

前一段时间写过一个windows平台下unity程序打开颜色窗口的方法

2016-09-22 20:22:05 2072

原创 Unity3D 调用 winform的颜色对话框

在Unity 的 安装目标(一般是”D:\Program Files\Unity\Editor\Data\Mono\lib\mono\2.0“)中有一些直接可以放置在Plugins文件夹下的动态连接库文件,其中System.Drawing和Sytem.Windows.Form是文本的核心。由于需要一个展示用的Demo,其中需要修改一些颜色的参数,最好能有个对话框。刚好前一段时间用到了选择文件和

2016-08-29 19:53:37 3892

原创 Unity-命令模式-UnDo

在调用一些简单的方法实现一系列的动作时,回退的问题比较重要。作为一款用户体验良好的产品而言,有回退功能将显得比较人性化,想想如果我们常用的window,在删除一个文件后无法恢复将变得多么的糟糕。更为直观的例子是在玩一些小游戏时,比如象棋、推箱子,提供了悔棋的功能,用户有了更多选择的余地。    本文主要将的将是在Unity中实现一个以常听说的命令模式为设计原理,实现一个可以撤销移动、旋

2016-07-28 19:00:04 2139

原创 unity3d TextMesh清晰字体

直接出效果如图所示,由于unity3d中字体在3d中显示十分的渣,要想在场景中显示比较清晰的字体比较困难。好在unity插件扩展性,让过去的不可能变成 了可能 。要使用的工具如下:  1、抽取文字软件:BMFont字体制作工具  2、免费插件:bitmapFontImpoter制作的原理是将文字转换为清晰的图片,将对应的坐标记录下来保存在一相指定格式的文件中,然后通过插

2016-07-15 14:59:35 3301

原创 泛型PureMVC--Unity3d

由于前期项目需要,在Unity3d开发程序中引入了PrueMVC架构,该架构对Unity3d界面和逻辑之前的解耦合起到了极大的作用。由于网上PureMVC相关的资源实在是多的不得了,而且本人是较晚的使用者,偶然用在了Unity3d,下面主要说一些和unity结合的部分以及对这个驾构的优化。为什么说要优化呢,其存在这么多年了,优化得还不够么?主要是考虑到和具体的语言和应用场合不同,做适当的修改以

2016-06-17 20:08:47 1692 2

原创 制作子弹痕迹(到shareMaterial)-Unity

本文将利用Texture2D的自身的方法在Unity中实现子弹痕迹的效果一、首先在网上down两张贴图(然后将弹痕背景透明化):1、墙2、弹痕二、将贴图导入Unity并修改参数1、保存可读可写2、格式要对三、在一个面片上挂载文章后面的脚本1、如果不用for循环而用注掉的方法效果是这样的2、而我们需要的是这样

2016-05-17 18:25:15 6176

原创 在Unity中实现TreeView

在Unity中要实现如下的树形状结构显示,是比较复杂的,相比于专门做二维的软件,效果也不咋样;但想想毕竟Unity主要是开发三维场景的工具,用来做二维界面确实有点可笑,但是也不是说不能实现,只要Unity有Image,那什么都是可以实现的...【Demo下载地址】如何实现这种效果呢,主要的难点在哪里?加载数据并保存到对象中不难,利用得到的数据进行UI动态生成才是关键。

2016-05-04 17:27:30 6639 2

原创 Camera

Camera的正确使用,进一步完善中

2015-09-09 21:03:41 520

NGUI Next-Gen UI 2022.06.08

NGUI Next-Gen UI 2022.06.08

2023-06-26

MeshBaker,合并插件

网格合并插件

2016-03-14

protogen-c#

将.protobuf文件转成.cs文件的工具,当然还有其他相关资源在里面

2016-03-04

UGUI画图脚本RadarChart.unitypackage

在UGUI上如何画饼图和线(需要自己改),脚本继承了图表

2016-02-23

SplineBend物体弯曲调节工具

实现模型的动态变形,拉伸,其中的Demo是一个火车轨道。

2016-01-27

UniWebView

好用的Andriod和ios网页插件,支持在unity中实现网页浏览效果

2016-01-27

Editplus程序开发利器

可以编译多少语言的程序,画面简洁明了,提供良好的工作环境

2015-05-08

空空如也

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

TA关注的人

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