![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
unity3d
Aimar_Johnny
这个作者很懒,什么都没留下…
展开
-
unity 获取深度图(drawcall不翻倍)
原文地址:https://blog.csdn.net/SnoopyNa2Co3/article/details/114090245深度图基础深度图里存放了[0,1]范围的非线性分布的深度值,这些深度值来自NDC坐标。在延迟渲染中,深度值默认已经渲染到G-buffer;https://www.jianshu.com/p/80a932d1f11e这里已经有详细说明没优化前深度图获取在C#中设置Camera.main.depthTextureMode = DepthTextureMode转载 2021-07-26 21:42:00 · 2812 阅读 · 0 评论 -
Unity 几种优化建议
最简单的优化建议:1.PC平台的话保持场景中显示的顶点数少于200K~3M,移动设备的话少于10W,一切取决于你的目标GPU与CPU。2.如果你用U3D自带的SHADER,在表现不差的情况下选择Mobile或Unlit目录下的。它们更高效。3.尽可能共用材质。4.将不需要移动的物体设为Static,让引擎可以进行其批处理。5.尽可能不用灯光。6.动态灯光更加不要了。转载 2017-12-05 22:48:07 · 679 阅读 · 0 评论 -
Tiled结合Unity实现瓦片地图——Tiled2Unity篇
前段时间应公司需求做瓦片地图,cocos与瓦片地图的结合案例很多,但unity的却少之又少,做瓦片地图少不了Tiled Map Editor(下载地址),这个教程很多,也自带例子,关于怎么拼地图,这里就不介绍了,先看看我们的美术小哥拼的地图,效果很赞,我截取一部分原创 2017-07-19 17:45:53 · 26546 阅读 · 8 评论 -
Tiled结合Unity实现瓦片地图——Unity实战篇
上文说道,Tiled2Unity可以方便的把Tiled编辑器做的地图文件导出到Unity中,这方面文章不少,可是这个地图文件我们在Unity中怎么用,这方面的介绍太少了,这篇是Unity实战篇,如果觉得对您有用,就请看完后点个赞吧。原创 2017-07-20 15:11:46 · 28604 阅读 · 11 评论 -
Unity 脚本生命周期流程图
渲染OnPreCull: 在相机剔除场景之前调用此函数。相机可见的对象取决于剔除。OnPreCull 函数调用发生在剔除之前。OnBecameVisible/OnBecameInvisible: 在对象对于相机可见/不可见时调用此函数。OnWillRenderObject: 如果对象可见,则为每个相机调用一次此函数。OnPreRender: 在相机开始渲染场景之前调用此函数转载 2017-07-14 21:25:17 · 728 阅读 · 0 评论 -
unity3d学习笔记(十九)--ngui制作人物头顶的头像和血条
先上张图,自己做的一个demo。这里的人物头像和血条是在3d世界生成的,所以有真正的纵深感和遮挡关系,废话不多说,看我是怎么实现的。第一步,先在UI Root里制作头像和血条。这个制作步骤基本和我前面一篇文章介绍头像血条的制作步骤一致,下面我截个图。就是上面的HeroPanel,东西很简单,创建一个主面板HeroPanel,然后在里面创建一个Slider,用原创 2014-01-26 17:01:27 · 20534 阅读 · 13 评论 -
unity3d学习笔记(二十)--利用JSON读取和保存游戏数据
前面转载的文章介绍过如何利用c#解析json,但实用性有些差,对于游戏大量数据的保存和读取很不方便。这里着重介绍下JsonMapper的使用,可以很简单就实现json格式的数据保存与读取。以游戏中的建筑举例,假如我的游戏可以建造很多建筑,建筑公有的数据结构如下:public class BuildingSaveData { public string strID; public int原创 2014-02-15 16:45:27 · 26753 阅读 · 5 评论 -
【NGUI】屏幕自适应(不用UIStretch,用UIRoot)
这篇文章是转载的,之前用UIStretch做屏幕自适应,但一直有两个硬伤让我难受,一是屏幕被随意拉伸后,里面的UI就不是我想要的比例了,明明一个圆形变成椭圆了,一个高挑的美女变成一个肥姐了,好吧,这如果还能忍,那第二条真是让我尝尽了各种方法,那就是panel的裁剪用不了了,想做Scroll View做不了了,然后百度才知道要Panel做裁剪必须要求其scale和其父一直到根节点的scale都是(1转载 2014-01-27 14:59:07 · 8770 阅读 · 2 评论 -
Unity3D插件详细评测及教学下载
转载自风宇冲Unity3D教程学院引言:想用Unity3D制作优秀的游戏,插件是必不可少的。工欲善其事必先利其器。本文主旨是告诉使用Unity3D引擎的同学们如何根据需求选择适当的工具。为此我写了插件的经验及理论讲解,涉及插件的 学习/辨别/选择/配合。也写了插件的 评测/教程/下载。关于评测,带有一定的主观性,仅供参考。关于教程,热门插件网上已经有很多教程了,本文提供链接转载 2013-12-13 11:29:45 · 5337 阅读 · 0 评论 -
Unity移动端性能优化
1.渲染利用reflect probe代替反射、折射,尽量不用RTT、GrabPass、RenderWithShader、CommandBuffer.Blit (BuiltinRenderTextureType.CurrentActive...)建立统一后处理框架(bloom、hdr、DOF等)代替多后处理,可以共用模糊函数,减少多次blit;另外要注意RTT的尺寸。空气折射、热浪扭曲等使转载 2017-12-16 16:24:47 · 5840 阅读 · 0 评论 -
Unity优化之GC——合理优化Unity的GC
在游戏运行的时候,数据主要存储在内存中,当游戏的数据在不需要的时候,存储当前数据的内存就可以被回收以再次使用。内存垃圾是指当前废弃数据所占用的内存,垃圾回收(GC)是指将废弃的内存重新回收再次使用的过程。 Unity中将垃圾回收当作内存管理的一部分,如果游戏中废弃数据占用内存较大,则游戏的性能会受到极大影响,此时垃圾回收会成为游戏性能的一大障碍点。 本文我们主要学习垃圾回收的机制,垃圾回收如何被触发以及如何提GC收效率来提高游戏的性能。转载 2018-01-03 11:36:13 · 873 阅读 · 0 评论 -
Unity Shader-热空气扭曲效果(多种实现方案,包括移动平台)
原文地址:https://blog.csdn.net/puppet_master/article/details/70199330简介千等万等终于等到了《耻辱2》打折,本以为可以爽一发了,然而各种出问题,先是steam下载速度奇慢无比,下了三天晚上好不容易下完的游戏,第一次打开给弹了个3D11CreateDeviceAndSwapChain Failed,折腾半天装了个补丁算是能打开游戏...转载 2019-05-21 17:50:57 · 6037 阅读 · 4 评论 -
Batching Static的打包容量问题(StaticBatchingUtility自动合批)
转自:https://blog.csdn.net/liweizhao/article/details/81937729最近我一直在解决项目里面打包AssetBundle的容量问题,还是比较有成果。包体容量从原来的800M减少到400M左右。其中一个可以减少容量的地方,是Batching Static。这其实是有历史原因的,由于上一个项目的失败,这个项目被老板指定使用其他某个项目组的框架代...转载 2019-04-26 17:16:05 · 2693 阅读 · 0 评论 -
Batch(合批)全面讲解(二)
在前面的文章中我介绍了Batch对于渲染效率的影响,这次来说说在Unity开发过程中常用的几种合批技术。ResourceMerging我们可以在美术资源生产的过程中做很多渲染批次方面的优化。通常我们可以将一些使用相同材质的物体模型合并成一个模型,在游戏渲染的时候一次提交给渲染API进行绘制,降低了Draw call的数量。但是这样带来了一个问题,所有合并的模型必须一次全部绘制。哪怕...转载 2019-04-26 17:08:09 · 3693 阅读 · 0 评论 -
Batch(合批)全面讲解(一)
批处理(Batch)就是对某对象进行批量的处理,本篇文章给大家介绍一下Batch的基本概念、Batch的特点和导致Draw call性能开销的主要原因。什么是BatchBatch翻译成中文一般我们称之为“批次”。我们经常用引擎每帧提交的批次数量来作为衡量渲染压力的指标。调用一次渲染API的绘制接口(如:Direct3D的DrawPrimitive/DrawIndexedPr...转载 2019-04-26 17:06:38 · 21837 阅读 · 3 评论 -
针对移动端TBDR架构GPU特性的渲染优化
本文转自https://gameinstitute.qq.com/community/detail/123220真是篇好文章,解释了我一直以来的好多疑惑!TBDR(Tile-Base-Deffered-Rendering)是现代移动端gpu的设计架构,它同传统pc上IR(Immediate-Rendering)架构的gpu在硬件设计上是差别很大的。手游正是运行在这些移动端的TBDR架构上,...转载 2019-04-04 21:12:48 · 888 阅读 · 0 评论 -
gpu instancing animation代替骨骼动画的做法
文章转自:https://blog.csdn.net/yxriyin/article/details/83018985最早是在Unity推出gpuinstancing后,马上有人做了一个顶点动画代替骨骼动画的方案,当时自己也测试了一下,红米2一千人可以跑60帧,确实非常不错。后来发现UWA群里也有人在讨论这个东西的做法,当时M神说可以用烘焙骨骼的方式代替烘焙顶点,这样子烘焙出来的贴图大小只和骨...转载 2019-03-04 16:05:48 · 2671 阅读 · 1 评论 -
unity的gpu instancing技术
原文地址:http://gad.qq.com/program/translateview/7213959译者: 崔嘉艺(milan21)审校:王磊(未来的未来)渲染一大堆的球体。 添加对图形处理器实例化技术的支持。 使用材质属性块。 让实例化技术和LOD组一起工作。这是关于渲染基础的系列教程的第十九部分。在前面的部分里我们涉及了全局光照,体积探测器还有LOD组。这一次,我们将...转载 2019-03-04 15:28:37 · 13911 阅读 · 0 评论 -
Unity5 如何做资源管理和增量更新
工具Unity 中的资源来源有三个途径:一个是Unity自动打包资源,一个是Resources,一个是AssetBundle。Unity自动打包资源是指在Unity场景中直接使用到的资源会随着场景被自动打包到游戏中,这些资源会在场景加载的时候由unity自动加载。这些资源只要放置在Unity工程目录的Assets文件夹下即可,程序不需要关心他们的打包和加载,这也意味着这些资源都是静态加载的。...转载 2019-03-06 10:37:38 · 546 阅读 · 0 评论 -
将场景导出XML或JSON并且解析还原场景
导出Unity场景的所有游戏对象信息,一种是XML一种是JSON。本篇文章我们把游戏场景中游戏对象的、旋转、缩放、平移与Prefab的名称导出在XML与JSON中。然后解析刚刚导出的XML或JSON通过脚本把导出的游戏场景还原。在Unity官网上下载随便下载一个demo Project,如下图所示这是我刚刚在官网上下载的一个范例程序。 接着将层转载 2013-10-31 15:15:48 · 3302 阅读 · 0 评论 -
将场景导出二进制文件并且解析还原场景
这是上一篇文章的补充最近在做客户端与服务器的交互,使用JSON 和XML会感觉数据量太大,影响效率。最后使用二进制的方式来完成。如下图所示,使用二进制可以把空间节省到803K ,是不是很不错呢? 下面我们开始学习如何制作吧。 导出场景时增加导出二进制文件选项,代码如下。 01 [MenuItem (转载 2013-10-31 15:19:55 · 3235 阅读 · 0 评论 -
unity3d学习笔记(五)--结合Mecanim实现怪物AI
前面的文章我为我的世界增加了夏娃,但是夏娃好孤独,扛着把大剑连个怪都找不到,于是怪物诞生了。接着找资源吧,最终在Asset Store里找到了它,免费的,所以丑了点。不过虽然丑,还是用unity4.0以后支持的Mecanim做的呢,Animator见下图:不熟悉Mecanim的童鞋,建议看看英宝通的公开课,一个非常非常强大的工具,我给个公开课的地址:英宝通公开课地址原创 2013-10-11 18:47:46 · 11608 阅读 · 1 评论 -
unity3d学习笔记(三)--不用一句代码快速加载并控制第三人称主角
我们的世界不能只有水流山川,花草树木,让我们的主角正式登场吧。这篇文章将介绍怎样加载人物,并赋予第三人称视角,第三人称控制,很简单哦。制作模型是美术童鞋的事,俺是个程序,偷下懒,到网上找资源吧,于是我邂逅了我们的主角,是个prefab,不知道prefab是什么的童鞋请好好的学习基础教程,把她拖到我们的场景中来吧,整体放大了2倍,来,跟大家见个面(其实网上很多教程都是用的这个资源)原创 2013-10-10 17:29:53 · 15723 阅读 · 6 评论 -
unity3d学习笔记(十三)--如何拦截射线碰撞界面的消息
这一篇是纯技术讨论,看过我前面文章的童鞋应该清楚,我的奔跑是靠鼠标响应的,鼠标点到哪就跑到哪,后来又有了界面,麻烦就来了,我的界面竟然能点穿,我不希望点界面的时候还能点到界面后面的地面上,角色傻不拉几的往那跑,那肿么办呢,总不能每次点击都要判断点击的物体名称吧,那界面多了会累死的,好在我们有标签和层这两个神器,所以我这里介绍两种方案,都能达到效果。方案一:利用标签(Tag)拦截射线消息原创 2013-10-18 16:52:54 · 11149 阅读 · 1 评论 -
unity3d学习笔记(十八)--利用C#的代理和事件结合NGUI的按钮实现施放技能
对C#还不是很熟,在学习的过程中了解到C#有种代理和事件的机制很方便,之前用cocos2d的时候也用过代理,虽然此代理非彼代理,但他们的作用有相似之处,都是触发者只是告知事件,并不调用相关类和方法实现,而是由代理方法实现,可能有些难懂,下面我用之前的demo中英雄施放技能这里做个试验。本篇涉及三个知识点,一个是最重要的代理,一个是NGUI的按钮,一个是施放技能特效。1、NGUI制作原创 2013-10-24 17:18:56 · 8340 阅读 · 4 评论 -
unity3d学习笔记(十二)--刀光剑影的制作
看网上有很多关于刀光的文章,然后也就学着给我们的侠女配上了,这下挥刀更带感了,先上张效果图吧:截图看着有瑕疵,不过动起来效果还不错。乍一看有点复杂,其实刀光的算法已经有人做好了,我们只需要站在巨人的肩膀上就可以了。1、在Asset Store里搜索MeleeWeaponTrail,第一个就是,不知道怎么进Asset Store的我告诉你,Window->Asset St原创 2013-10-18 15:10:35 · 9847 阅读 · 5 评论 -
unity3d学习笔记(十)--NGUI制作中文字体
终于写到第十篇了,庆祝一下。哈哈。这一篇我讲一下如何用NGUI做中文字体,先声明一下,我的NGUI版本是2.6.4,操作系统是mac os,版本不同或系统不同的话请自行体会哈。先在mac下的应用程序里找到字体册,然后在里面选一个你喜欢的中文字体,我选的是Kai,就是楷体啦,在电脑中找到它对应的ttf文件:Kai.ttf,然后把它存到unity的资源中,好,下面开始制作了。选择NGUI->O原创 2013-10-15 16:43:27 · 12352 阅读 · 0 评论 -
unity3d学习笔记(八)--NGUI制作游戏界面
有关NGUI的介绍我这里就不多说了,由于unity3d自带的界面绘制工具GUI效率低下,所以NGUI被广泛使用,它的原理也很简单,就是把UI绘制到一张plane上,然后摄像机用平行投影垂直摄像,这样就和处理一般的3d物体一样了,不了解NGUI的朋友可以从雨松大神这里入门:NGUI研究院之开始学习制作第一个例子(一)好了,我这里重点介绍的是怎么在我们的3d世界中加入NGUI的界面,我这里用的是N原创 2013-10-14 15:03:40 · 15346 阅读 · 1 评论 -
unity3d学习笔记(六)--单例脚本和单例类
要写到英雄与怪物之间的攻击交互了,在这之前,有必要插播一下单例脚本和单例类,因为我的交互都是在单例脚本上交互的。这样有什么好处呢,降低耦合度,这是任何一个程序员都关注的事情,编程也是一门艺术吗,试想想,如果你的交互总是建立在两个或多个脚本之间,我用你的脚本实例,你用他的脚本实例,他用不知道谁的脚本实例,反正越多就越乱,到最后你都不想维护了,尤其是公司项目,你拍拍屁股走人了,后面维护的人就要骂娘了,原创 2013-10-12 13:48:00 · 12729 阅读 · 4 评论 -
unity3d学习笔记(一)Demo及相关技术介绍
第一次写博客,主要是想记录下自己学习unity3d的轨迹,如果能帮助观看的人,当然更好。做移动互联网开发也将近两年了,先后用过cocos2d,cocos2d-x,一直在搞2d游戏,最近比较闲,自学了unity3d,unity3d对于我这种没有深厚的3d基础,却想开发3d游戏的人确实是不小的福音,好了,闲话少叙,基于所学的东西,我搞了个简单的demo,把能试验的技术都在这个demo里试验了一遍。原创 2013-10-08 17:19:45 · 12815 阅读 · 6 评论 -
unity3d学习笔记(十四)--NGUI用Sprite动画和屏幕自适应制作游戏开始场景
通过前面十三篇文章的介绍,我的游戏场景基本搭建完成了,我们在玩任何一款手游产品时,都是先上来个logo界面,游戏欢迎界面等,这就意味着我们要做一款游戏需要多个场景,场景之间来回切换实现游戏逻辑,unity也不例外,所以从本篇开始将会介绍如何搭建多个场景,本篇先看游戏logo界面的制作,先上图:再次用时空领地的logo了,这里的时空领地的logo是个动画,全部是用NGUI实现的,重点是做原创 2013-10-19 15:24:42 · 11971 阅读 · 2 评论 -
使用 C#合成解析XML与JSON
XML与JSON在开发中非常重要, 其实核心就是处理字符串。一个是XML的字符串一个是JSON的字符串,尤其是在处理网络请求的时候,肯定是要用的。另外现在JSON非常的流行,我写了一个简单的例子融合了XML与JSON的合成与解析,希望大家喜欢! 首先注意头文件,LitJson是处理JSON的第三方库,最后我会给出下载地址。1usin转载 2013-10-30 17:58:18 · 3000 阅读 · 0 评论 -
unity3d学习笔记(十七)--unity3d读取csv文件
在mac os下写过手游程序的应该都清楚csv文件,它类似于excel表格文件,但csv文件里的数据是以逗号分隔的。unity3d并未提供直接读取csv文件的方法,所以要我们人工处理一下,很简单,像上一篇文章一样,粗暴的把csv的扩展名改成txt吧,谁让unity3d比较亲txt呢。原创 2013-10-23 17:02:21 · 14151 阅读 · 8 评论 -
unity3d学习笔记(十六)--unity3d读取plist或xml文件
前一篇文章介绍了协同异步加载游戏场景,但前台没干活,浪费了。有的游戏在loading的时候会把一些游戏的Tips(小提示)介绍给玩家,我这里说一下是怎么实现的。说到小提示,其实是后台有个配置文件,里面有很多提示语句,程序以一定的时间间隔随机读取一条,显示在界面上,很简单。这里说到配置文件,花样就多了,以前做cocos2d-x游戏时,用的最多的是plist文件和csv文件,unity用的都是xm原创 2013-10-22 17:43:52 · 16073 阅读 · 0 评论 -
unity3d学习笔记(十五)--利用Loading界面异步过渡游戏场景
前一篇文章介绍了游戏开始场景的制作,可还没有任何交互,按理说,我的设计是点击界面然后直接到游戏场景,但看到了雨松的这篇文章--Unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条后,决定尝试下用Loading界面异步加载游戏。先看一下我的Loading界面:像我这种小demo,从开始场景到游戏场景其实用Application.LoadLevel就可以了,但对于一个正常的游戏,原创 2013-10-22 16:07:42 · 21028 阅读 · 6 评论 -
unity3d学习笔记(十一)--NGUI结合Shader制作小地图
在做这个demo的过程中,制作小地图着实刁难了我一把,花了好几天的时间,需要的知识点实在太多了,尤其是shader语言,好在最后成功把它啃下来了,接下来我把这个过程分享给大家,下面上一张截图:看右上角,那个就是小地图,也许有点不太好看,没办法,谁让我不是美术啊,需要的图素都是自己用Photoshop做的,记得有人说过,不会美术的程序不是好策划,所以自己来吧。先说一下原理,我原创 2013-10-17 19:56:11 · 16259 阅读 · 23 评论 -
unity3d学习笔记(九)--NGUI制作英雄和怪物的头像和血条
本系列文章由Aimar_Johnny编写,欢迎转载,转载请标明出处,谢谢。http://blog.csdn.net/lzhq1982/article/details/12710797上一篇讲了NGUI如何制作游戏界面,这一篇来点干货,重点讲NGUI制作头像,血条。先上一张图。OK,这个就是我实现后的结果。先看看英雄的头像血条部分。看图说话,我的英雄头像和原创 2013-10-15 15:40:06 · 16738 阅读 · 2 评论 -
unity3d学习笔记(七)--利用单例脚本实现英雄与怪物的攻击与受击
我们的世界有了怪物,那么你怎么忍心不去虐他们一下,勇士,挥舞你的大刀,去砍他们吧。呃,有点血腥,少儿不宜。如上一篇所说,我这里的交互全是在单例脚本中实现的。单例脚本负责事件的分发和传递,Hero和Monster脚本负责触发和接收处理消息,设计理念是在Hero脚本中你绝对看不到Monster,同样,Monster脚本中,你也看不到Hero,他们都在单例脚本中,单例脚本中有这么一段核心的消息传递代原创 2013-10-14 10:52:03 · 16775 阅读 · 5 评论 -
unity3d学习笔记(四)--自定义角色控制脚本及平滑转身
上一篇文章介绍了怎样加入我们的主角,并实现其简单的动作行为,但有几点我不满意,首先是我需要固定视角,尤其是做移动上的游戏,让场景随着角色转来转去的会让玩家晕的,然后是我希望鼠标控制主角奔跑,点到哪跑到哪,并且要平滑转身,这篇文章就算是角色行为的进阶教程吧,我们来实现上述要求,我的脚本都是用C#写的,本来就一直是C++程序员,看着这个舒服一些。先让我们锁定视角吧,这个相对简单一些:打开之前加原创 2013-10-11 15:03:05 · 16982 阅读 · 6 评论 -
unity3d学习笔记(二)水(water)和瀑布的创建
本系列文章由Aimar_Johnny编写,欢迎转载,转载请注明出处,谢谢。http://blog.csdn.net/lzhq1982/article/details/12558475unity3d里有关地形的创建教程很多,在这里就不介绍了,但水的创建介绍的不多,百度了很多文章,最终参考了这篇文章:http://hi.baidu.com/next2_me/item/3d77da9ef原创 2013-10-10 17:26:10 · 45108 阅读 · 8 评论