自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鬼眼邪神

如果你每天比别人慢半步,一年以后就是180步,十年后就是十万八千里!

  • 博客(82)
  • 资源 (3)
  • 收藏
  • 关注

原创 Unity3d热更新(四):压缩文件

之前提到过通过AssetBundle.CreateFromFile读取本地AssetBundle,因为该方法只能读取未压缩的AssetBundle,所以打包AssetBundle时,需要选择BuildAssetBundleOptions.UncompressedAssetBundle未压缩模式,然后使用LZMA或GZIP压缩后上传服务器。本地下载后需要解压缩保存在Application.persi

2015-05-10 22:39:28 2489

原创 Unity3d热更新(三):更新资源流程

1.生成配置文件 在资源打包AssetBundle后,需要计算资源文件的MD5值,生成配置文件。下面给出一个例子: // 获取Res文件夹下所有文件的相对路径和MD5值 string[] files = Directory.GetFiles(resPath, "*", SearchOption.AllDirectories); St

2015-05-10 17:40:48 3411 1

转载 Unity3d热更新(二):资源打包AssetBundle

创建AssetBundle 1.新建一个cube,将其拉倒Project视图里创建预设。 2.在Assets目录下创建Scenes文件夹,创建场景scene1.unity。 3.新建ExportAssetBundles.cs,保存在Assets/Editor目录下。代码如下: using UnityEngine; using Uni

2015-05-10 17:40:44 1660

原创 Unity3d热更新(一):更新思路

目前Unity手游的热更新基本采用如下思路: 首先将资源打包成AssetBundle。如果有两个对象共同依赖于同一个对象,需要采用依赖关系打包。AssetBundle需要根据不同的平台打包,各平台之间不能混用,如IOS和Android。 为打包后的资源生成MD5值,上传服务器后,通过比对服务器端和客户端文件的MD5值,找出改变的文件,下载到本地。 通过AssetBundle.C

2015-05-10 17:40:41 1273

原创 NGUI控件说明——UIButton

NGUI版本:3.0.x Button是一个非常简单的组件,有以下功能:接收hover、pressed、click事件,修改指定的sprite颜色。Image Button组件可以和Button同时加到一个game object上,Image Button用来切换sprite。 Button组件可以挂在任何有collider的game object上。不需要一定挂在widget上。 但是一般情

2015-05-10 17:40:37 546

原创 NGUI控件说明——UIKeyBinding

NGUI版本:3.0.x UIKeyBinding会产生一个指定的按键事件,比如你按下‘1’后,绑定了这个脚本的game object就好像被点击了一样(就像快捷键上的魔法释放按键)。 也可以选择input filed后开始输入(就像敲回车一样)。 你是否想不写任何代码,通过按下“I”就可以打开玩家的仓库?现在你可以了。用Key Binding脚本绑定到它上面,之后把Key Code设置成“

2015-05-10 17:40:34 827

原创 NGUI控件说明——UITexture

NGUI版本:3.0.x UITexture是最基本的NGUI渲染组件。继承了UIWidget的所有功能,增加了可视化的部分——一个纹理——通过dimensions进行缩放。 指定一个Texture用来渲染。指定后会自动生成一个材质(material)。如果没指定Texture的话,会使用material的texture。 可以指定自己的Material 。但是会优先使用Textur

2015-05-10 17:40:31 1022

原创 NGUI控件说明——UIPopupList

NGUI版本:3.0.x 把UIPopupList脚本挂到一个button上,就可以在你点击按钮的时候弹出选项列表,之后选择你想要的选项。 想要创建一个有很多选项的popup list,首先你要挂一个UIPopupList脚本到一个Button上,然后指定Atlas和Font属性。你可以选择指定的sprite当做Background和Heighlight。Background用来当做弹出列表的

2015-05-10 17:40:27 934

原创 NGUI控件说明——UISprite

NGUI版本:3.0.x UISprite是NGUI里面最实用的。使用atlas纹理的一部份用来绘制sprite,继承UIWidget的所有功能。 sprite首先需要一个Atlas。点击Atals按钮会列出当前项目中已有的atlas。创建新的atlas要通过Atlas Maker工具(NGUI -> Open -> Atlas Maker)。 你可以点击Sprite选择按钮旁边的E

2015-05-10 17:40:23 643

原创 NGUI控件说明——UIPanel

NGUI版本:3.0.x UIPanel用来收集和管理它下面所有widget的组件。通过widget的geometry创建实际的draw call。没有panel所有东西都不能够被渲染出来。如果你对Unity熟悉,你可以把UIPanel当做Renderer。 所有panel都有一个Depth值,会影响所有它包含的widget。如果你的UI有很多窗口,那么最好每个窗口有一个panel。Panel

2015-05-10 17:40:20 670

原创 NGUI控件说明——UIWidget

NGUI版本:3.0.x UIWidget是NGUI的基础组件。简单来说,就是一个你可以放在屏幕任意位置的矩形框。widget会有一定的面积(如下图的白色框范围),但是在运行的时候(Game View)是完全不可见的,所以非常适合当做其他组件的容器(让所有的sprite或者label等以它进行各种对齐)。 UIWidget 也被用来当做所有NGUI元素的基类——所有你创建的sprites和la

2015-05-10 17:40:16 825

原创 NGUI控件说明—— UICamera

NGUI版本:3.0.x UICamera这个名字不是很合适,保留的原因仅仅是为了兼容以前的版本。 UICamera真正做的事情是发送NGUI事件给所有被当前camera渲染的object,camera是UICamera脚本所在的那个。 其实这个脚本做的事情和UI无关。事实上如果你想让游戏里面的object接收OnPress、OnClick、OnDrag等这类事件,你需要把UICamera挂在

2015-05-10 17:40:13 470

原创 NGUI控件说明——UIRoot

NGUI版本:3.0.x UIRoot总是放在NGUI UI层级的最上层。 它用来使UI的缩放变得更容易。widget通常使用的是以像素为单位的坐标,但是一个800*400(dimensions的值)的widget会占用800*400个单位(Unity中的单位),这相当大。UIRoot通过屏幕高度的反比来进行缩放,因此widgets都会很小,并且操作起来更容易。 UIRoot有几种缩放方式。

2015-05-10 17:40:09 485

原创 【转载】独行冰海 ~讲述我自己的故事~

独行冰海 ~讲述我自己的故事~ 题记:突然想写写自己的故事,一来回首过去,二来和大家分享自己的故事 基本信息  姓名:刘  -  国利 独行冰海 网名确定时间:2008年 年龄:九〇不前不后注:1990年 籍贯:河北保定注:保定,紧挨北京,被称为北京的南大门 座右铭:为了自己心底的梦、珍重的事、守护的情而奋斗!注:2011年确定的座右铭 信念: 白色,是我的世

2015-05-10 17:40:06 2310

翻译 WebApp 的 meta 标签

apple-mobile-web-app-capable 设置Web应用是否以全屏模式运行。 语法: 说明: 如果content设置为yes,Web应用会以全屏模式运行,反之,则不会。content的默认值是no,表示正常显示。你可以通过只读属性window.navigator.standalone来确定网页是否以全屏模式显示。 兼容性: iOS 2.1 +

2015-05-10 17:40:02 370

原创 Cocos2d-html5之TintTo&TintBy

Cocos2d-html5测试用版本:2.2.1。 TintTo:将 cc.Node 对象的色调变化到某一值。 TintBy:将 cc.Node 对象的色调变化某值。 使用cc.TintTo.create(duration, deltaRed, deltaGreen, deltaBlue)和cc.TintBy.create(duration, deltaRed, deltaGreen, de

2015-05-10 17:39:57 1917

原创 Cocos2d-html5之SkewTo&SkewBy

Cocos2d-html5测试用版本:2.2.1。 SkewTo:将 cc.Node 对象倾斜到一个特定的角度。 SkewBy:将 cc.Node 对象倾斜一个特定的角度。 使用cc.SkewTo.create(duration, deltaAngleX, deltaAngleY)和cc.SkewBy.create(duration, deltaAngleX, deltaAngleY)来创建

2015-05-10 17:39:54 618

原创 Cocos2d-html5之RotateTo&RotateBy

Cocos2d-html5测试用版本:2.2.1。 RotateTo:将 cc.Node 对象旋转到一个特定的角度。 RotateBy:将 cc.Node 对象旋转一个特定的角度。 使用cc.RoateTo.create(duration, deltaAngleX, deltaAngleY)和cc.RotateBy.create(duration, deltaAngleX, deltaAng

2015-05-10 17:39:49 999

原创 Cocos2d-html5之ScaleTo&ScaleBy

Cocos2d-html5测试用版本:2.2.1。 ScaleTo:将 cc.Node 对象缩放到某一比例。 ScaleBy:将 cc.Node 对象缩放某一比例。 使用cc.ScaleTo.create(duration, sx, sy)和cc.ScaleBy.create(duration, sx, sy)来创建动作。 duration 运动周期,单位为s。 sx 水

2015-05-10 17:39:45 1052

原创 Cocos2d-html5之MoveTo&MoveBy

本文测试所用Cocos2d-html5版本:2.2.1。 MoveTo:移动到某个位置,是绝对距离。 MoveBy:移动一段距离,是相对距离。 使用cc.MoveTo.create(duration, deltaPosition)和cc.MoveBy.create(duration, deltaPosition)来创建动作。 duration 运动周期,单位为s。 delta

2015-05-10 17:39:41 2027

原创 Cocos2d-html5中的坐标系统

在cocos2d-html5中,Scene和Layer的默认锚点是(left,bottom),而其它节点(Node)的默认锚点是(center,center)。无论是Layer还是其它节点,其坐标原点都是父节点的左下角,即(left,bottom)。只是有一个例外,cc.MenuItem是以cc.Menu的锚点为坐标原点。 首先测试Layer: // 获取尺寸 this.winSiz

2015-05-10 17:39:37 499

原创 Class.js 源码

JS 没有 Class 的概念,而是使用 prototype 来实现继承机制。基于此,JQuery 的作者 John Resig 提供了一个library ,可以在JS中使用 Class 以及 extend。 /* * Simple JavaScript Inheritance * By John Resig http://ejohn.org/ * MIT Lic

2015-05-10 17:39:34 518

转载 JS对象机制深剖—— new 运算符

其实关于 new 的讨论,早有众多前辈做了先行。然而作为 JS 对象机制系列的一个重要成员,这一篇不可少,而且按照自己的惯例,我将首先引用语言规范的内容。另外,本篇引用到的规范内容比较多,不过我会做详细的说明,读者朋友可自行选择阅读规范内容。 考察 ECMAScript 语言规范中 new 运算符的定义: The new Operator The production NewExpressi

2015-05-10 17:39:31 438

原创 JS:连续赋值运算

首先来看一段代码: 1 2 3 var o = {a:1}; o.b = o = {a:2}; alert(o.b); // undefined 以上第二句 o.b = o = {a:2} 是一个连续赋值表达式。那么在这个过程中究竟发生了什么呢? 在ECMAS

2015-05-10 17:39:27 970

原创 如何查看智能手机的IP地址

当你试着将智能手机当做媒体中心或者无线文件服务器时,总有一些手机应用和电脑上的应用程序需要知道你手机的IP地址是什么。在某些系统的智能机上找出IP地址比其他一些系统的智能机要更麻烦一些。本文将针对包括Android、iPhone、Windows Mobile以及黑莓等主流智能手机给出详尽的教程,告诉你如何找到手机的外网以及内网的IP地址。 1. 外网IP IP地址可简单分为两类。外网IP或称

2015-05-10 17:39:24 4183

原创 jQuery:eq()与get()的区别

有很多人都会把这两种方法搞错,根据官方文档可以知道,eq( )返回的是jQuery对象,而get( )返回的则是DOM对象。以下是官方对eq( )解释的原文:Given a jQuery object that represents a set of DOM elements, the .eq( ) method constructs a new jQuery object from one

2015-05-10 17:39:20 663

原创 JavaScript编码规范

转载自WADE JavaScript文件JavaScript程序应该作为一个.js文件存储和发布。JavaScript代码不应该嵌入在HTML文件里,除非那些代码是一个单独的会话特有的。HTML里的JavaScript代码大大增加了页面的大小,并且很难通过缓存和压缩来缓解。 不要让一行代码超过80个字符。当一条语句不能在单独一行写完时,可能有必要拆分它。在操作符后进行拆分,

2015-05-10 17:39:16 450

原创 让IE6实现min-width效果

由于恶心的IE6不支持 min-width 属性,所以只能采用迂回的方法来实现。具体有以下四种方法:方法一:.wrapper { width:auto !important; width:500px; min-width:500px;}方法二:.wrapper { min-width:500px; _width:500px;}方法三:.wrapper { min-w

2015-05-10 17:39:12 380

原创 jQuery:each()和$.each()的区别

1. each(callback)说明:以每一个匹配的元素作为上下文来执行一个函数。意味着,每次执行传递进来的函数时,函数中的 this 关键字都指向一个不同的 DOM 元素(每次都是一个不同的匹配元素)。而且,在每次执行函数时,都会给函数传递一个表示作为执行环境的元素在匹配的元素集合中所处位置的数字值作为参数(从零开始的整型)。 返回 'false' 将停止循环 (就像在普通的循环中使用 'break')。返回 'true' 跳至下一个循环(就像在普通的循环中使用'continue')。

2015-05-10 17:39:08 478

原创 JavaScript中的JSON

JavaScript 是一种通用的编程语言, 从一开始就被作为Netscape Navigator浏览器的页面脚本执行语言. 它仍然被广泛的认为是Java的一个子集, 尽管事实并不是这样. 它是一种类 Scheme 的语言, 同时有着类 C 的语法和 弱对象. JavaScript在ECMAScript的 ECMAScript Language Specification, Third Editi

2015-05-10 17:39:04 357

原创 jQuery代码优化:选择符篇

毫无疑问,jQuery的独到之处就是它以集合为中心的操作。为了取得DOM对象集合,jQuery利用JavaScript不仅实现了(它诞生时)很多浏览器不支持的CSS选择符,还实现了不少独到的自定义选择符,为在文档中查找元素提供了极大的便利。本文就从选择符的角度简单探讨一下优化jQuery代码的问题。Sizzle的运行机制jQuery从1.3开始把根据选择符表达式查找元素的代码独立出来,也就是S

2015-05-10 17:39:01 241

原创 jQuery代码优化:事件委托篇

随着DOM结构的复杂化和Ajax等动态脚本技术的运用,事件委托自然浮出了水面。jQuery为绑定和委托事件提供了.bind()、.live()和.delegate()方法。本文在讨论这几个方法内部实现的基础上,展示它们的优劣势及适用场合。事件委托事件委托的事例在现实当中比比皆是。比如,有三个同事预计会在周一收到快递。为签收快递,有两种办法:一是三个人在公司门口等快递;二是委托给前台MM代为签收

2015-05-10 17:38:57 335

原创 JavaScript中的事件委托

传统的事件处理事件委托就是在一个页面上使用一个事件来管理多种类型的事件。这并不是一个新的想法,但对于把握性能来说却很重要。通常情况,你会在web应用程序中看到这样的代码:document.getElementById("help-btn").onclick = function(event){ openHelp(); };document.getElementById("save-btn")

2015-05-10 17:38:54 328

原创 JS:放大镜效果

实现效果:所用图片:代码: 放大镜效果 * { margin:0; padding:0; } .magnify { float:left; } .left { float:left; position:relative; width:190px; height:240p

2015-05-10 17:38:50 419

转载 JavaScript的单线程性质以及定时器的工作原理

原文地址:http://ejohn.org/blog/how-javascript-timers-work/How JavaScript Timers Work从基础的层面来讲,理解JavaScript的定时器是如何工作的是非常重要的。计时器的执行常常和我们的直观想象不同,那是因为JavaScript引擎是单线程的。我们先来认识一下下面三个函数是如何控制计时器的。 var id = set

2015-05-10 17:38:46 377

原创 JS:Function类

Function类可以用来创建函数。语法var functionName=new Function([arg1,arg2,...,argn,]functionBody);参数 functionName 创建的函数名称 [arg1,arg2,...,argn,] 参数列表,可选项 functionBody 调用该函数时被执行的JS代码块的字符串。示例var fn=new F

2015-05-10 17:38:42 435

原创 JS:this关键字的指向

关于this的指向有两点判断原则: 当函数被直接调用时this指向全局对象(window)。 当函数被当作某个对象的方法来调用时(即通过“.”或“[]”来调用时),this指向该对象(调用方法的对象)。总结起来就是一句话:永远指向其所在函数的所有者。如果没有所有者时,指向window。此外,可以通过call和apply来强制改变this(new运算的过程中包含call)。实例分析

2015-05-10 17:38:39 385

原创 各浏览器处理空白和换行的差异

所有现代浏览器都支持 W3C DOM 规范。不过,浏览器之间是有差异的。重要的区别有两点: 加载 HTML 的方式 处理空白和换行的方式本文主要讲解各浏览器处理空白和换行的方式。IE6、7、8忽略标签之间的空白和换行字符。其它浏览器对于标签之间的空白和换行字符会作为文本节点来处理。示例代码 HTML5 window.onload=function(

2015-05-10 17:38:35 432

原创 【转载】各浏览器加载资源的方式区别

本文转载自:各浏览器加载资源的方式区别这个总结来源于一次优化的请求,最初某个页面的加载十分缓慢,load事件迟迟无法触发,因此希望可以通过对静态文件分域名等方式对页面的外部资源进行优化,拿得load事件尽可能早地触发。于是我查看了页面的源码,并对外部资源进行了整理,基于下面2个理念画出了一个推测的瀑布图: 浏览器对同一个域只能并发2个HTTP请求 - 网上盛传已久。 Javascript文

2015-05-10 17:38:31 441

原创 JS:appendChild()和insertBefore()

appendChild()该方法可以将节点添加到给定节点的子节点列表的末尾,并返回对插入的节点的引用。如果所添加的节点是文档片段,则将文档片段的全部内容移至该节点的子列表中。语法childNode = elementNode.appendChild(newNode)参数 newNode 要添加的节点。 elementNode 要为该节点添加一个子节点。 childNode 返

2015-05-10 17:38:28 600

程序员之路——一个老程序员对刚上大学的学弟学妹的忠告.docx

程序员之路——一个老程序员对刚上大学的学弟学妹的忠告.docx

2021-07-16

Unity NGUI 3.7.7

HTML Engine for NGUI Unity GUI

2015-05-09

空空如也

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

TA关注的人

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