03 2014 档案

摘要:前面说到我们要做一套一半尺寸的低分辨率图片,所谓一半,其实都是直接整数除法/2,然后发现前期美术做的资源,好多都是奇数尺寸的,一半之后除不尽,就会带来各种问题。于是就想先看看都有多少奇数的贴图,马上想到用python拉,但是python我不熟啊,纠结了一小时才弄好。问题1:要获取目录下所有的png文件,这个简单,直接os.walk所有文件再判断下endswith后缀就好。问题2:要获取图片的尺寸,这里我用了一个PIL库,可以读取图片,通过size获得尺寸。貌似问题到这里就解决啦?结果不是的,因为python本来我就自己随便看的,好久不用忘记了,结果遇到两个很纠结的基础问题。问题3:想把文件尺寸 阅读全文
posted @ 2014-03-10 16:18 unionfind 阅读(439) 评论(0) 推荐(0)
摘要:游戏初始的资源总是做到最高清的,但是其实低端设备没有那么好的分辨率,也没有那么多的内存支持,所以通常就会希望对这些设备做一套低清资源。前面谈到过Cocos2d-x结合CocosBuilder的解决方案,现在发现Unity+NGUI也有对应的做法。首先明确一个概念就是在这个解决方案中,不管是高分辨率还是低分辨率下,对于一个控件而言,控件自己的尺寸是固定的,变化的是两套atlas。对于atlas而言,首先png尺寸上是差了一半,然后所有sprite类似于uv这样的位置大小参数,也变化成一半,最后有一个叫Pixel Size的参数,要变成两倍。如果贴图缩小了一半,那么贴图里一个像素占的位置就应该增加 阅读全文
posted @ 2014-03-10 16:16 unionfind 阅读(534) 评论(0) 推荐(0)
摘要:前面那个Adaptor做好之后,为了练手,又给自己找了个新的需求。我们游戏很多地方都有用到相册一样的四角框,四个相同的sprite,通过scale翻转,然后嵌在大图片的四个角上。因为用到的场合大小不一样,所以每次四个角要调四次位置。于是我决定做成一个通用的prefab,提供一个vector2记录离中心点的偏移值,然后可以像在Unity其他地方一样,拖拽改变偏移值的大小,与此同时,屏幕上的四个角也会跟着移动。开始我有个土方法,就是在自己的这个类里面加一个[ExecuteInEditMode],然后在update里面更新,结果同事说,没事要少用这个东西,另外发现用了这个之后,就算场景里什么都不动, 阅读全文
posted @ 2014-03-06 16:09 unionfind 阅读(566) 评论(0) 推荐(0)
摘要:前面的propertydrawer准备好了之后,新写了UIAdaptor的类,在存放数据的4个Vector3变量前面加上[UIAdaptorAttribute]就大功告成了。然后这个类有个public的方法,可以根据当前的设备是phone还是pad,将所在gameobject进行相应的更新。这个代码只用在载入的时候跑一次就好了,问题是怎么让他跑呢?通常我们用的方法是GetComponentsInChildren,但是如果这个脚本本身不是active的,就没法得到,解决方法很简单,传入一个参数true就可以了,这样即使这个脚本前面的勾没勾上,也还是能获取到。但是实际上遇到的问题通常不是这个脚本自 阅读全文
posted @ 2014-03-05 17:46 unionfind 阅读(366) 评论(0) 推荐(0)
摘要:这个东西也没怎么用上,但是做的过程中用到不少东西,记一下。初始的需求是想在phone和pad上用同一套ui(不然都是累死的体力活),但是如果直接缩放pad上面的ui到phone上,可能出现按钮太小点不到,字太小看不清。我总结其实常见的需求也就是把个图片放放大啦,然后调个位置什么的。就想做个UIAdaptor的脚本,里面存放phone和pad对应的两套数据。也就是4个vector3:phone和pad用到的position以及scale。为了方便美术进行设置,想到EZGUI设动画的时候有类似的功能,就想给这四个vector3都添加两个按钮,一个是SaveTo,把当前用到的数据存到对应的变量里,一 阅读全文
posted @ 2014-03-05 17:35 unionfind 阅读(759) 评论(0) 推荐(0)
摘要:先build standalone,否则可能不准确。在build setting里面注意development build,autoconnect profiler,script debugging都勾上。如果游戏有用到额外的asset,需要一起拷过来。要获得CPU profiling出来比较详细的信息,把上方的deep profile勾上。要获得贴图信息,可以去Memory部分,把下方的simple改成detailed,然后点右边的take sample,就可以快照某一时刻用到的所有贴图啦。 阅读全文
posted @ 2014-03-04 13:29 unionfind 阅读(2062) 评论(0) 推荐(0)
摘要:刚刚要做个图标从选择面板飞到显示面板的动画效果,记录几个常用的函数。NGUI做动画很方便,直接tween就行,但是里面用到的具体数值,都是针对local坐标而言的。但是这里起始位置结束位置和要移动的物体本身不在同一个父亲下面,所以需要进行坐标转换。var worldPosition = trans.parent.TransformPoint(trans.localPosition);return gameObject.transform.parent.InverseTransformPoint(worldPosition);第一句把目标的local坐标转换成世界坐标。第二句把世界坐标转换成自己 阅读全文
posted @ 2014-03-03 16:02 unionfind 阅读(731) 评论(0) 推荐(0)