
Unity3D
TinyHum
本人unity QQ群:291633884
展开
-
调试方法-Unity3D对各个target平台的模拟
根据几天对unity3D的摸索,发现其对Android的模拟还是不错的,当然因为摸到手里才几天,主要集中在渲染方面的信息。举例来说,如果在Android的手机或者平板电脑上发现有渲染bug,那么回到Unity的editor中,如果在setting中的target平台也是Android的话,那么,这个bug很多时候在editor中也能发现。这个信息给我们的方便之处是,你可以在PC上就完成相应的bug原创 2012-02-14 21:36:46 · 3298 阅读 · 0 评论 -
Unity的Resources.Load()在load同样的资源内存消耗是怎样的?
3D引擎内部为什么对资源使用共享指针的一个说明:资源是共享的,每个资源都有一个引用值,当有一个指针引用到它,这个指针就加一。反之,减去一。当引用值是0的时候,引擎就可以释放这个资源占用的内存。对于Unity来说,资源的引用值归0后,需要用Resources.UnloadUnusedAssets()来促使引擎释放所有引用值为0的资源。原创 2014-03-20 14:45:43 · 6060 阅读 · 0 评论 -
webplayer中截屏
因为webplayer的限制,在webplayer上运行unity程序的时候,截屏并不像本地运行程序那样。基本思路是:1、通过相应的接口把屏幕像素读取到内存,并且encode成png格式;2、通过wwwform类把png格式的流由服务器接收,并且存在服务器上,做成链接,然用户下载;unity官方相关的代码例子:// Grab a screen shot原创 2014-04-03 14:14:43 · 3009 阅读 · 0 评论 -
保存网格(mesh)到磁盘上
Unity提供了很方便的工具来保存mesh之类的,下面的代码挂在GameObject上后,按下F键能把mesh(该GameObject必须有mesh组件)保存到磁盘的Assets目录下。在磁盘上是.asset的文件,在project中看到的是一个mesh符号的文件。代码完全是示意作用,没有做严格测试。原创 2014-04-18 13:15:22 · 7825 阅读 · 3 评论 -
多场景下天空盒、雾、环境光的设置
项目中,因分工关系,美术的场景和程序的场景分开。美术的场景中主要负责整体的场景的布置,程序的场景注重交互、UI等。因为存在多个美术场景之间的跳转,而且在不同的美术场景里用了不同的天空盒,发现unity内部管理不是很清楚,所以采用了自己的方式。原创 2014-04-06 18:50:55 · 5509 阅读 · 0 评论 -
Unity利用双相机巧做水印功能
两个相机,都用正交,第一个depth比第二个小,第一个负责非水印图的渲染,第二个负责渲染水印。两个相机都渲染到同一个RenderTarget上。这样渲染出来的RenderTarget就是带水印的图。原创 2014-04-09 18:18:38 · 5424 阅读 · 0 评论 -
Unity的Coroutine
对于Coroutine,编译器需要产生一些代码,在每次的大循环中,Unity的Update()返回后,保证是yield后的代码被正确调用,这样就形成了我们看到的一个function能分段执行的机制。原创 2014-05-27 10:16:00 · 3495 阅读 · 0 评论 -
Unity的Cover flow的实现包(2个)
苹果的mac机上预览图片,有一个所谓的cover flow的效果,这里是2个相关的实现。原创 2014-05-28 13:34:54 · 4456 阅读 · 0 评论 -
Unity应用怎么暂停(Pause)
很多时候,应用程序或者是游戏需要用上暂停功能,unity提供了不少便捷的方式,列在下面:1、在editor中,按下pause按钮即可暂停2、如果在代码中控制,可以通过设置Time.timeScale = 0来实现暂停。3、如果你通过Time.timeScale = 0设置了暂停,但是你在某些地方还需要有动画之类的,那么可以在实现动画的地方用上Time.realtimeSince原创 2014-05-27 13:21:32 · 17645 阅读 · 0 评论 -
Unity shader教程-第二课:Shader的框架和Properties详细介绍
详细介绍Unity的Surface shader的Properties部分,案例形式讲解,步步到位。原创 2015-01-27 17:19:18 · 6941 阅读 · 0 评论 -
Unity shader教程-第三课:实践!同一个shader,多个material。
一步一步教你写的unity surface shader教程系列。原创 2015-01-29 13:04:46 · 6467 阅读 · 0 评论 -
Unity shader教程-第四课:自定义光照模型(方程)
Unity的自定义光照模型的使用。Unity默认的光照模型非常有限,在现实的使用中各种不同的材质和环境需要各种各样的光照模型,本篇介绍怎么在Unity shader中使用自定义的光照模型。原创 2015-02-02 13:09:12 · 4182 阅读 · 0 评论 -
Unity shader教程-第一课:写shader和应用shader的流程
这是我们Unity shader(着色器)教程的第一课,在这节课中,你会学到怎么样来用程序来编写一个在Unity中能使用的着色器:漫反射着色器。这节课的内容主要让我们熟悉创建shader和应用shader的流程。准备工作:安装Unity版本4.6以上创建一个新的工程菜单GameObject | 3D Object | Plane创建出一个平面,作为我们的地面菜单GameOb原创 2015-01-25 19:55:46 · 7540 阅读 · 1 评论 -
Unity shader教程-第六课:Ramp Texture
Ramp Texture在Valve公司的军团要塞2后开始成为一种控制漫反射的方法。 Ramp Texture是类似下图的一张贴图: 在一般的Blinn/Phong模型中,我们对漫反射的系数是基于入射光和击中的点的法线的角度。在这种情况下,系数的计算代码大致如下:float DiffuseCoeff(in float3 pos, in flo原创 2015-03-03 17:09:55 · 12882 阅读 · 0 评论 -
Unity shader教程-第五课:自定义光照模型之Half Lambert模型
Half Lambert光照模型是Valve公司在制作”半条命“游戏时发明的,用来给在比较暗的区域显示物体。总体来说,该光照模型提高了物体表面的漫反射光。下图是Valve的示例,左手边是Lambert模型,右手边是Half Lambert模型。使用我们原来的基础的shader,我们把LightingBasicDiffuse()方法改成如下:i原创 2015-03-02 11:07:00 · 4159 阅读 · 0 评论 -
UnrealEngine4(虚幻4)这次来真格的了
作为一个行内非常知名、而且的确牛逼(licence费用曾经高达传说中的千万RMB)的引擎。近日宣布开源并且免费供游戏开发者使用,对盈利的游戏,按照5%的毛利来分成即可。关键之处在于,对于教学、影视、建筑等也就是非游戏产品,虚幻4并不收取任何费用。 这下unity的licence费用就显的贵了! 那么unity的另外一个杀手锏“跨平台”呢?按照官方的公布,目前为止,u原创 2015-03-06 09:58:09 · 5622 阅读 · 0 评论 -
Unity中使用ios的plugin出现EntryPointNotFoundException错误
今天一朋友用unity,有功能需要写ios插件,遇上了不少问题,记录于此,希望能帮到同样问题的人。问题一:XCode编译出.a后,使用Unity编译出XCode工程,工程里没有.a文件解决方案:Unity对.a的放置目录有限制,需要把.a放置在Plugins/ios目录下(该目录自己新建)问题二:XCode模拟器出现EntryPointNotFoundException原创 2014-03-20 18:26:53 · 8043 阅读 · 0 评论 -
不使用引擎,如何开发游戏
一个游戏,还有物理引擎、AI引擎等很重要的几个引擎。而所谓的引擎,很大的程度上,是一个”专注于某个功能的模块“。软件中有很多的模块,为什么只有渲染、物理等才被成为引擎,跟汽车的引擎一样,因为这个模块可能比较核心,在所有的组件中功能更有决定性,所以才被叫做引擎。有人可能会说,现在的游戏,决定性的是游戏的内容、逻辑,那为什么没有逻辑引擎这个说法。这个的关键之处在于,逻辑不能成为一个很通用的模块。所以,才没有逻辑引擎这个说法。原创 2014-04-15 16:35:49 · 3688 阅读 · 0 评论 -
Unity3D的Mono是什么
初次接触unity3D,对程序,特别是C++程序来说,最不习惯的就是突然发现面向了所谓的脚本,C#本身不是问题(可能一天时间一本书浏览就够了),但是脚本最要命的是突然不知道整个程序的执行流程了。对于Unity3D来说,用到了mono框架,也就是每个脚本需要继承MonoBehavior的那个Mono。可能的真正流程是,Class Program{原创 2012-02-13 20:16:50 · 13282 阅读 · 6 评论 -
Android手机硬件信息的查看和软件安装方式
常见的信息,一般在Android手机上可以在 设置 | 关于手机 | 设备信息 中看到,一般包含手机的型号,如S710;设备序列号等。Android版本可以在 设置 | 关于手机 | 软件信息中看到,如2.3.2等。有的Android会把这些信息直接放在 设置 | 关于手机 下面,一般在大致的路径下都能看到手机型号和Android版本。手机的CPU、GPU等开发者会关心的问题,我们原创 2012-02-15 20:38:56 · 9075 阅读 · 0 评论 -
z-fighting在unity中的解决方式
如果在画面中,发现有画面闪烁的问题。那么大多数情况下是z-fighting引起的,解决方案:1, 在每个场景中,找到那个MainCamera,然后在Inspector上,找到MainCamera的属性,Clipping Planes,需要做的是尽量放大near的值,尽量减小far的值。根据我的实验结果,同样改动Near值的幅度比Far值的幅度相对来说效果会更好。如Near从原创 2012-02-13 20:17:20 · 9852 阅读 · 1 评论 -
Unity中制作trigger物件
1,GameObject | CreateEmpty创建一个组,这一步不是必须,但是可以帮助你归类。创建的object属性上相应的tranform信息可以修改,一半scale都填成1,1,1。2,GameObject | Create Another | Cube 我们假设这里的是一个cube型的物件3,选中上述cube的情况下,把这个Cube的尺寸、位置都调整原创 2012-03-05 20:58:37 · 2693 阅读 · 0 评论 -
Unity调试声音的一个小技巧
Unity对声音用AudioSource这个类来包装,整个类中有个name成员,可以用来做调试只用。如果你不对这个name赋值,那么默认值大多数应该是"LocalPlayer",所以在声音调试(往往是开始、暂停、终止是否匹配)的过程中,如果不改这个值就看不到有用的信息。可喜的是,这个值是可以被修改的,如下:myAudioSource.name = "background";原创 2012-03-08 20:47:45 · 3823 阅读 · 0 评论 -
Unity制作的应用在android平台上的发布步骤
在Android上发布应用需要签名,由于Android应用架在java之上,所以用java的一些列工具来签名1、keytool该工具用于根据你的输入信息来生成相应的keystore文件,用于后面的签名步骤。举例:$ keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -原创 2012-03-12 23:08:55 · 9312 阅读 · 2 评论 -
Unity对烘焙的支持
Unity对烘焙是支持的,烘焙入口:Windows | Lightmapping在弹出的对话框中,可以选择需要烘焙的物体,以及设置各种可以配置的参数,用于烘焙的效果配置。按Unity的官方文档解释,烘焙是基于Global Illumination,也就是全局光照的。原创 2012-03-16 21:16:19 · 2510 阅读 · 0 评论 -
Unity bundle的制作和使用
Unity有个很好的功能,大致是很多专注于PC的engine没有提供的(因为没有必要),就是能加载主包外的资源,这个主包外的资源,unity把它叫做bundle。这个功能的提供,主要是在web上或者是ios、android等设备上,主包太大的话,会遇上下载主包时间太长,体验不佳;或者是有些市场直接就限制了主包的大小。制作的bundle的方式,这里只讲bundle中连scene都带入的:原创 2012-06-18 21:22:02 · 17583 阅读 · 3 评论 -
NGUI制作显示tooltip需要注意的地方
NGUI中有代码UITooltip是用来做tooltip用的。这里不展示怎么样用这个东西,因为NGUI的Example中有例子,我们来看一下其中的原理,同时也说一下几个在使用中容易发生问题的地方。内部原理:1,UICamera的FixedUpdate()每帧运行的最后,会查看在当前鼠标下是否有带collider的控件,有的话就会给该控件发OnTooltip(原创 2013-06-10 10:20:53 · 6083 阅读 · 2 评论 -
Unity利用NGUI实现自定义鼠标
Unity4.0开始支持hardware鼠标,只要在setting中配置一下相关选项就可以。同时,官方文档上也说明了,hardware鼠标跟software鼠标的某个差别在于,hardware每个不同的平台会用不同的格式,大小也是限死的。所以,software鼠标就还具备很大的价值。方法一:1、在某个UIRoot(2D)的panel下面,利用NGUI的菜单创建出一个sprite,把原创 2013-06-06 21:25:02 · 2700 阅读 · 0 评论 -
让NGUI支持超链接(Hyperlink,彩色、可点击)
最近为了让NGUI支持这个功能,对NGUI内部做了一番加强,在不改变其设计思路的情况下,利用其原有的基础,加入了超链接功能,涉及的改动地方较多,无法一一叙述。文后会放出下载地址,有改动的代码,需要的可以用到自己的项目中。改动后的功能1、支持自定义消息。这个信息会在用户点击超链接后通过消息发送出来,用于应用代码判断超链接的性质、功能等。2、沿用Label本身的颜色代码,也原创 2013-06-19 20:04:58 · 6987 阅读 · 0 评论 -
Unity4.1.4f1在win7上monodevelop失效
好久没有用win7,因此原来的一台电脑上还是4.0的版本,今天升级到4.1.4f1,unity进入正常,但是monodevelop却打不开。在开启的时候,一个空白的mono窗口上叠加了两个空白的小窗口,其他一点提示都没有。想当然的认为是本机的.net framework有问题,重装后问题依旧。最后还是上官网查了一下,原来这个版本配置是有bug,更行一个文件就可以。更新的文件链接:原创 2013-08-24 16:43:44 · 2880 阅读 · 0 评论 -
Unity Point light(点光源)的个数问题
Unity 多个点光源时,前面的点光源失效原创 2013-12-02 16:53:29 · 8830 阅读 · 0 评论 -
unity3d,卸载,清除原先的licence
出于各种原因,我们有可能会遇上需要卸载unity3d,重新安装一个不同版本的licence。这个时候,新unity3d会在重新安装后出现无法激活的现象。下面是相关的步骤,能解决这个问题:1,卸载unity2,删除这个文件夹WinXP/Vista: C:/Documents and Settings/All Users/Application Data/Pace Anti原创 2013-03-18 19:28:43 · 14334 阅读 · 0 评论 -
unity3d缩短splash screen的时间
在unity3d中,splash screen的显示时间是由加载第一个场景(Build Setting中的0号)里面的资源的速度决定的,因此,如果要缩短splash screen的时间,我们能做的就是在0号场景中尽可能的少用资源。可以借鉴的方式如下1、在0号场景中放置一个empty game object;2、在该game object上挂一个脚本,这个脚本里有代码做 applicat原创 2014-04-04 09:35:14 · 6979 阅读 · 0 评论 -
我写的书:Unity Shader编程
我自己写的书,免费分享。原创 2015-04-23 09:59:43 · 3353 阅读 · 3 评论