- 博客(34)
- 资源 (52)
- 收藏
- 关注
原创 C# 之 类复制 MemberwiseClone与Clone(深 浅 Clone)
MemberwiseClone方法创建一个浅表副本,具体来说就是创建一个新对象,然后将当前对象的非静态字段复制到该新对象。如果字段是值类型的,则对该字段执行逐位复制。如果字段是引用类型,则复制引用但不复制引用的对象。因此,原始对象及其复本引用的是同一对象。 为了实现深度复制,我们就必须遍历有相互引用的对象构成的图,并需要处理其中的循环引用结构。这无疑是十分复杂的。幸好借助.Net的序列化和反序...
2018-07-21 16:02:55 1727
转载 UGUI ScrollRect 高效复用
最近忙于性能优化,深切体会到二八法则真是指导高(tou)效(lan)工作的有力武器。这个礼拜花了几天解决了一个实际问题:UGUI的ScrollRect加载太多物体的时候,第一次弹出界面会非常卡顿,而且不在界面里的内容依然会参与绘制(毫无意义的浪费…)。ChangeLog: v1.01 重构了好几遍,基本算重写了份…优化了拖动手感和回收部分的计算,增加了反方向滑
2017-03-13 15:32:33 2160
翻译 如何给你的函数变量命名
原则1:尽量少用泛指词汇,如flag,tmp等,应该使用特指词汇 在初学者眼中,flag是个很常用的命名词汇,它用来表示一个志标。它的值通常是0或1,表示是否已打上标记了。其实打上标记的原因是多种多样的,是由于在链表中查找到指定的结点了,还是某个功能已使能了等。0/1可以任何具有两种状态所有逻辑的抽象,使用flag对这些状态命名都可以行得通,但它的意义过于空泛。在不同的情况下,换成具体状态
2017-03-08 11:53:16 559
原创 VS 插件 ProPowerTools
这个插件尽量不要和Recharper 或VA插件一起使用,容易出现崩溃现象Visual Studio 2010新增“扩展管理器”的功能,可用于添加、移除、启用和禁用Visual Studio扩展。我们可以从Visual Studio Gallery(Visual Studio库)网站上安装扩展,这些扩展一般是VSIX包格式,包括项目模板、项模板、工具箱项、托管扩展框架(MEF)组件和VSP
2017-02-10 10:23:52 2162 1
翻译 单元测试 Unit Test Generator
一般vs2010后的都已经集成了对应的单元测试工具Unit Test Generator,如果没有就可以去“扩展和更新”上下载1 打开 工具--自定义2 选择 上下文菜单--编辑器上下文菜单|代码窗口3 在这里我们可以看到“创建单元测试”这个菜单了,将它移到运行测试菜单下面4 关闭VS并重启 重启后再对着类名,
2017-02-10 10:22:40 2447
翻译 单元测试 Visual Studio 2013
1.打开VS2013 --> 新建一个项目。这里我们默认创建一个控制台项目。取名为UnitTestDemo2.在解决方案里面新增一个单元测试项目。取名为UnitTestDemoTest创建完毕后项目结构大概如下: 3.进入控制台项目UnitTestDemo的Program类,创建一个Add方法。namespace UnitTestDemo{
2017-02-10 10:20:11 570
翻译 Unity 插件 缓存PoolManager
PoolManager5 介绍: https://www.assetstore.unity3d.com/en/#!/content/1010为什么Unity实例化对象慢的原因请看我之前的文章 http://www.xuanyusong.com/archives/2925缓存池我们主要关注的几个事情 1.怎么把游戏对象保存进缓存池 2.怎么把游戏对象从缓存池里面去出来 3.如何智能删
2017-02-09 18:28:15 1136
翻译 如何在Unity编辑器中添加你自己的工具
在这篇教程中你会学习如何扩展你的Unity3D编辑器,以便在你的项目中更好的使用它。你将会学习如何绘制你自己的gizmo,用代码来实现创建和删除物体,创建编辑器窗口,使用组件,并且允许用户撤销他们所作出的任何动作,这些全部都是用编辑器脚本来实现的。这篇教程假设你已经熟悉Unity的基本工作流程。如果你知道如何在编辑器中创建物体、预设、场景并且知道如何移动它们,知道如何添加组件,那么你可以开
2017-02-09 18:21:08 6938 2
原创 Unity3D 快捷键技巧
Windows系统Unity3D中的快捷键Ctrl N New Scene 新建场景Ctrl OOpen Scene 打开场景Ctrl BBuild and run 编译并运行Ctrl DDuplicate 复制Ctrl PPlay 播放Ctrl Shift P Pause 暂停Ctrl Alt P Step 停止Ctrl Shift
2017-02-09 17:54:46 858
原创 如何去除复制的代码前面的行号
网上类似的例子很多.1.一个很懒的方法2、文本编辑器中正则表达式替换(一)一种情况是行号后带. 输入输入^[0-9]+[.] 或者输入 ([0-9][0-9])/.|[0-9]/. (二)第二种情况是行号数字后带空格,用ultraEdit的替换功能。正则表达式 %[ 1-9][0-9] 。注意:[ 1-9]中[后有空格,[0-9]后也
2017-02-09 17:16:20 12564 2
翻译 _Net代码生成器
1.Code Smith 国外最著名的商业代码生成器官方网站:http://www.codesmithtools.com/2.MyGeneratoe国外最著名的免费代码生成器官方网站:http://www.mygenerationsoftware.com/portal/default.aspx3.动软.Net代码生成器国内人气最旺的免费代码生成
2017-02-09 17:11:49 415
翻译 超实用技能!特种兵教你能救命的9种绳结
结绳技术:又称结绳方法,是户外运动爱好者必须掌握的基本技术之一,是指通过打结使绳索之间、绳索与其他装备之间互扣连接的方法。
2017-02-09 17:09:15 3586
翻译 UE3 性能分析及优化
概述 使游戏可以正常运行的同时符合内存约束条件是个大问题,它涉及了很多系统和很多学科。该页面集成了大量可以帮助您正常运行游戏的工具和技术。即使使用世界上最好的工具,您仍然需要灌输确保人们在创建他们想要的东西时使用的是少量的数据 / cpu 循环的思维方式。在这里显示的工具和技术将完全可以帮助您做到这一点。 要做到这一点,我们需要将这个大问题划分成一些小问题,使我们可以尽量使
2017-02-07 11:14:08 445
翻译 UE3 性能、分析及优化
概述 使游戏可以正常运行的同时符合内存约束条件是个大问题,它涉及了很多系统和很多学科。该页面集成了大量可以帮助您正常运行游戏的工具和技术。即使使用世界上最好的工具,您仍然需要灌输确保人们在创建他们想要的东西时使用的是少量的数据 / cpu 循环的思维方式。在这里显示的工具和技术将完全可以帮助您做到这一点。 要做到这一点,我们需要将这个大问题划分成一些小问题,使我们可以尽量使用截然不
2017-02-07 11:10:17 972
翻译 Unity3D 之 FX Maker
FX Maker是Unity3d一款非常流行的效果制作插件。不但有超过300种效果预制体, 还可以自己制作效果。包含Mesh Effect 和Particle Effect。优点:资源库大,可以将消耗资源非常多的粒子效果 转换为帧动画效果。当然也可以直接用不转帧动画的效果,这种效果是画面最好的,但是对显卡开销大。帧动画显卡开销小,占内存大,适合移动平台。Fx Maker还能自动保存。
2017-01-26 11:53:43 3772
原创 C# 操作符??和?:
先看如下代码:string strParam = Request.Params["param"];if ( strParam== null ){ strParam= "";} string strParam=Request.Params["param"] == null ? "": Request.Params["param"];你发现,尽管实现的同一个功能,但第二段代码要比第
2017-01-25 14:59:55 369
翻译 Unity3D研究院之使用Animation编辑器编辑动画
Unity提供了Animation编辑器,它可以为我们编辑物理动画。举个例子比如场景中有一个来回摇动的秋千,这个秋千在项目中完全只起到衬托作用,它不会与别的游戏对象有任何交互。如果这个秋千也用代码来写控制它来回摇动,会感觉小题大做。此时完全可以使用Animation编辑器来完成。但是它目前还不能编辑 FK 和 IK动画,所以编辑器中编辑动画的种类还是有限的,如果有一天FK 和 IK动画都可以在Un
2017-01-25 13:29:37 883
原创 Tortoise SVN 创建 Externals 外部引用目录
在使用 SVN 的时候,偶尔会遇到这样的场景:有一份公共代码或数据需要所有分支共享,如果存储在普通的目录下,切分支之后各个分支该目录可能会出现差异,为了避免这种差异,应该使用 SVN 的 externals 属性,确保在任意分支下的更改在所有分支下都能够生效。这种场景其实很常见,例如有好几个 project 都使用同一份 framework 的代码,且需要同步更新,这时候就得将 frame
2017-01-16 18:20:48 834
原创 Unity3D FPS帧数修改
1、在Quality(质量)设置里把帧数设定关闭之后才能在代码中修改游戏运行的帧数2、在Unity中新建脚本UpdateFrame.cs ,编写如下代码targetFrameRate = Application.targetFrameRate3、把该代码及ShowFPS.js绑定在层次视图的任一GameObject上,运行游戏,即可以Game视图中看到当前的FPS,
2017-01-16 18:12:24 2349
翻译 NGUI UISprite和UITexture 的遮罩思路
UITexture遮罩新建一个UItexture。然后选择一个材质。用上代码Shader。然后设置一个Mask。这个Mask图片为可以看到Alpha通道里面是一个白色的圆圈。记得这个Mask图片的导入设置如下:那么可以看看运行效果:Shader "Unlit/Transparent Colored Mask
2017-01-16 16:06:29 5273
翻译 WebGL 3D 数百个 HTML5 例子学习 HT 图形组件
《数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇》一文让读者了解了 HT 的 2D 拓扑图组件使用,本文将对 HT 的 3D 功能做个综合性的介绍,以便初学者可快速上手使用 HT 构建例如电信网管 3D 机房应用、水务燃气 SCADA 监控应用及智能楼宇等应用场景。HT for Web 的 3D 是完全基于 WebGL 技术实现的渲染引擎,但开发者几乎不需要了解 3D
2017-01-16 14:49:21 2111
翻译 Axure 原型设计工具画业务流程图
软件行业从业6年,流程图看过太多,大部分流程图是在考验阅读者的理解能力,近期在设计公司新版APP,对流程图的绘制也有点体会心得。 用Axure绘制流程图好处是可以随时预览,比较灵活。不过就是没有Visio那么多模板和强大的功能。 Axure默认的流程图控件: 其实我们最常用的是:矩形、菱形、箭头。因为这些基本图形其实并没有形象的表明它们是什么,更多的还是需要使用者
2017-01-12 15:49:54 9012 2
原创 Unity NGUI 高效的战斗飘字
这周有网友提到用NGUI做战斗冒血,冒伤害等文字性能太差。确实如此,我之前(NGUI 3.8.2,1000块的Android机器上)在Profile中也发现UIPanel占用CPU奇高。因此最终自己在战斗飘文字这一块没有使用NGUI,而是自己创建Mesh来处理。优化前后在手机上每秒大概增加了10帧。可以看到DrawCall和NGUI一样都为1,这个 MeshText 就是我
2017-01-12 14:27:20 1555
原创 工具 设计宝刀-墨刀
墨刀是国内团队提供的一个基于的手机原型设计工具justinmind是JustinMind公司出品的原型制作工具从使用的角度和流行程度看,justinmind得用户更多一些。国内有越来越多的团队正在使用它构建手机原型。有一些博客也在介绍justinmind的使用以及提供一些学习的案例墨刀可以制作简单的设计方案,包含了基础和较合理的原型操作界面可导出这些操作资源链接
2017-01-12 14:09:19 638
翻译 Unity3D 脚本 编译器属性详解
JS中使用 @script 属性方法();C#中使用 [属性方法()] ------------------------------------------------------------------------------------1 AddComponentMenu 在菜单里往GameObject里添加组件实例用法:@script AddComponentMenu (
2017-01-11 14:00:47 575
翻译 Unity 获取游戏对象
我觉得Unity里面的Transform 和 GameObject就像两个双胞胎兄弟一样,这俩哥们很要好,我能直接找到你,你也能直接找到我。我看很多人喜欢在类里面去保存GameObject对象。解决GameObject.Find()无法获取天生activie = false的问题。private GameObject root;我觉得你最好不要保存GameObject ,而是去保存Tran
2017-01-11 10:31:04 514
翻译 定时器-Vision Timer源码分析
vp_Timer 一共有3个class,都各司其职:vp_Timer,Event,Handle 1)vp_Timer:提供的使用接口,通过静态方法vp_Timer.In(),加入定时器事件(函数,这里将传入的函数称为事件) 2)Event:用来封装传入的事件(函数),保持事件的状态 3)Handle:对事件状态提供查询接口(事件执行了多长时间,结束时间,是否还是A
2017-01-10 19:43:16 1358
原创 Unity 粒子特效
最近给UI添加粒子特效时,总是被UI遮挡解决方法是: 因为粒子系统的渲染顺序列默认为3000,而NGUI的渲染顺序默认也是从3000开始,当有嵌套的panel时或者Depth更高的panel时,GUI的渲染顺序会高于3000,解决办法是,1.修改Ngui中的UIPanel脚本中的默认的RenderQueue, 调整到3000以下,这样就不会遮挡住粒子特效了,当有的
2017-01-09 17:50:17 1656
原创 NGUI 翻牌效果
效果图如下: 思路:两个对象。默认选中角度一个旋转角度为0 。一个为90。点击旋转 角度为0的至90度。然后回调。让90度的另外一张旋转至0度。既实现翻牌效果。同时两张内部的显示类型不受相互影响 using UnityEngine;using System.Collections;public class TweenFlipCARDS : MonoBehavio
2017-01-09 17:38:17 2601
原创 NGUI 图片无缝衔接
如下图所示美术给我两张255X255的图片让我来拼接。第二张图的X坐标明明是X偏移255的为什么中间有一像素呢? 此时如果你不加思索的就把X偏移改成254。仔细看看下面这个位置明显图片没有被拼接上?如果两张图片都是纯色的话可能这样可以被拼上,但是这是不解决核心问题的。。 如果你看NGUI的源码你会发现NGUI会自动把奇数宽高的图片补起成偶数的宽高图片
2017-01-09 17:18:57 519
原创 Unity 编辑器开发 知识点 持续更新
1 Unity中的Inspector都是Editor类的子类别,所以你应该从这里开始。但是,我对编辑器类处理样式的方法不是很喜欢。里面有个“Target”用来提及检查器正在编辑的物体,但是只是基本的“Object”样式,所以你要不断将其转变成更有用的样式。为避开这个问题,我使用了一个非常简单的类别,具体如下:public class InspectorBase : Editor wher
2017-01-09 17:13:09 472
翻译 ReSharper 配置及用法
1:安装后,Resharper会用他自己的英文智能提示,替换掉 vs2010的智能提示,所以我们要换回到vs2010的智能提示2:快捷键。是使用vs2010的快捷键还是使用 Resharper的快捷键呢?我是使用re的快捷键3:esharper安装后,会做几件事情,这几件事情对于除此使用者,比较麻烦,因此归纳总结一下,以资参考。(1)、会将选项——文
2017-01-09 17:02:37 1998
原创 JAVA运行原理
Java语言在程序编译后生成的不是某种cpu指令码,而是Java独有的字节码(byte- code).Java字节码运行在Java虚拟机上。Java虚拟机类似一个小巧而高效的cpu。Java虚拟机底层的运行系统把字节代码转换成实际的硬件调用。这里要注意一点的是,Java虚拟机未必非要运行在操作系统之上。它的下面可以直接是各种cpu芯片。 每一种操作系统的Java解释器是不同的,
2013-10-12 12:53:58 579
UISprite扩展强化
2017-02-10
最新 APK Helper(apk信息查看器)
2017-02-05
Unity高效的战斗飘字
2017-01-12
protobuf开发平台
2016-09-21
奔跑系列源码cave-run-3d-unity-game-starter-kit
2014-05-18
Unity-Resource-Checker-master
2014-05-18
Android Game Examples
2014-05-18
Unity3D网页显示【嵌入网页】
2014-05-18
VC++6.0行号显示
2013-09-06
JavaScript 网页开发实例教程(PDG)
2013-03-03
晴窗中文大侠
2013-02-28
VA_2013_2015
2018-03-02
TortoiseSVN-1.7.6.22632-x64-svn-1.7.4 64位中文语言包
2017-04-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人