转载自风宇冲Unity3D教程学院
http://blog.sina.com.cn/s/blog_471132920101crh3.html
引言:想用Unity3D制作优秀的游戏,插件是必不可少的。工欲善其事必先利其器。本文主旨是告诉使用Unity3D引擎的同学们如何根据需求选择适当的工具。为此我写了插件的经验及理论讲解,涉及插件的 学习/辨别/选择/配合。也写了插件的 评测/教程/下载。关于评测,带有一定的主观性,仅供参考。关于教程,热门插件网上已经有很多教程了,本文提供链接,网上资料少的插件本文提供了使用方法的简单介绍。至于下载,主要是学习交流为主,下载速度还是比较快的。
(PS:本文主要起一个抛砖引玉的作用。欢迎同学们积极留言交流,大牛不吝指教。本文用武侠功夫这个大家比较感兴趣的内容来描述游戏开发,借此描述Unity插件学习的道理,同时激发同学们的学习兴趣,没兴趣的可以跳过相关内容。我的新浪微博 @风宇冲)
本文一共分为三个部分,第一部分是插件的下载,第二部分是插件的评测,第三部分是插件的学习方法。
第一部分 插件的下载
第二部分 插件的评测
四:插值缓动 (Tween tool)- 风宇冲推荐iTween / HOTween
综述:iTween和HOTween各有各的优势,核心功能就是对位移,缩放,颜色等数值进行插值。iTween和HOTween并不冲突,可以同时在一个工程里使用。建议做路径的话最好用iTween, 做非位移,缩放,颜色的数值时只能用HOTween。其他情况最好用HOTween,因为管理更具有可操作性。
【HOTween Editor】(要求Unity 3.5.6以上)
using Holoville.HOTween;
using System.Collections.Generic;
(10)调用该tween
HOTweenComponent tweenComponent = myGameObject.GetComponent();
if (tweenComponent != null)
{
// Do something with the Tweeners
List tweeners = tweenComponent.generatedTweeners;
if(tweeners[0].id == "tweenerName")
{
tweeners[0].Play();
}
}
【UniSky】
使用建议:
风:Unity的Windzone
雨:Unity官方Demo《AngryBot》 里面的雨
使用方法:链接
本文一共分为三个部分,第一部分是插件的下载,第二部分是插件的评测,第三部分是插件的学习方法。
第一部分 插件的下载
下载所有插件 (下载时逐个下载比较快)
注:所有付费插件下载仅用于学习和交流用途,请在下载后24小时内删除,商业用途请购买正版。(你懂的)
第二部分 插件的评测
Unity插件本文分以下九个类别介绍,后面跟的是风宇冲的推荐插件:
一 界面制作 推荐:NGUI
二 2D游戏制作 推荐:2D Toolkit
三 可视化编程 推荐:PlayMaker
四 插值缓动 推荐:iTween,HOTween
五 路径搜寻 推荐:Simple Path
六 美术及动画制作 推荐:RageSpline,Smooth Moves
七 画面增强 推荐:Bitmap2Material,Shader Forge
八 摄像机管理 推荐:Security Camera
九 资源包 推荐:Nature Pack
十 其他类
一 界面制作 推荐:NGUI
二 2D游戏制作 推荐:2D Toolkit
三 可视化编程 推荐:PlayMaker
四 插值缓动 推荐:iTween,HOTween
五 路径搜寻 推荐:Simple Path
六 美术及动画制作 推荐:RageSpline,Smooth Moves
七 画面增强 推荐:Bitmap2Material,Shader Forge
八 摄像机管理 推荐:Security Camera
九 资源包 推荐:Nature Pack
十 其他类
一: 界面设计(UI) - 风宇冲推荐NGUI
综述:所有UI插件可以实现的功能和效果最后都是差不多的,区别是最终游戏的运行效率和内存占用量不一样,开发的速度也不一样。 NGUI和EZGUI是属于一类,核心是将UI元件图合并到一张大图(atlase)上,再根据uv去找对应的小图,最后使用2D camera绘制。 iGUI是另外一种UI插件,它可以说是Unity自带UI的升级版,也就是OnGUI的延伸。了解OnGUI()的同学都知道,它的运行效率是比较低的,没有Drawcall合并,iGUI也一样。中文等字体制作一般是用Glyph Desginer 或者 Bmfont, 这点NGUI和EZGUI是通用的。总体来说, GUI插件的功能还是略微有限, 无论是什么GUI插件想做复杂点的功能就必须得用脚本。学习维护起来还是稍微有点麻烦的,故依然建议一个团队只一个人或几个人专门负责UI。
补充对比:
补充对比:
12: UI部件嵌套 支持 不支持
【NGUI】
细节功能 ★★★★★
运行效率 ★★★★★
内存占用 ★★★★★
开发速度 ★★★★★
掌握时间 ★★★★
跨越平台 ★★★★★
文档教程 ★★★★★
综合评价 ★★★★★
优点:UI合成图(atlas)管理方便,字体RGB压缩,持续更新,支持Flash,支持语言本地化即多语言,支持图像高低清配置。
缺点:卷屏界面(ScrollList)的实现稍微麻烦。
介绍:目前Unity最好用的UI 插件。重点是 NGUI应该会一直更新,跟着Unity的脚步。 NGUI也更方便于管理atlas,至少每个Sprite在atlas中都有名字来管理可以很方便的添加删除共用,并且Sprite的位置大小信息可见也 可适当调整。
介绍:目前Unity最好用的UI 插件。重点是 NGUI应该会一直更新,跟着Unity的脚步。 NGUI也更方便于管理atlas,至少每个Sprite在atlas中都有名字来管理可以很方便的添加删除共用,并且Sprite的位置大小信息可见也 可适当调整。
使用注意:
NGUI的图集管理工具不错,不过还有不足,比如不能批量删除。推荐NGUI的图集使用TexturePackerGUI软件管理。
(0)ui元件的本地缩放,也就是localscale对应元件的像素尺寸。
(0)ui元件的本地缩放,也就是localscale对应元件的像素尺寸。
(1)ui元件是不能嵌套的,可以用空GameObject,table,panel等容器来装。
(2)任何同一张图集(atlase),控制前后显示顺序用Depth。不同图集用坐标Z值。
当涉及不同图集时,Scene窗口下的显示并不正确,而Game窗口下的显示是正确的,所以此时用Game窗口来调整UI.
(3)记得Camera下的Even Receiver Masek一定要与UI对应,不确定的话就选Everything。
(4)UIRoot的Automatic选项:
勾选:所有UI按像素尺寸显示。(Game窗口小的话显示不全整个界面)
不勾选:填满整个区域。(对屏幕小的电脑尤其有用,可以用小Game区域来制作ui内容)
(4)UIRoot的Automatic选项:
勾选:所有UI按像素尺寸显示。(Game窗口小的话显示不全整个界面)
不勾选:填满整个区域。(对屏幕小的电脑尤其有用,可以用小Game区域来制作ui内容)
(5)包含字体的图集加新图进去后,字体经常容易错乱。解决的办法就是在选中该图集后,再点字体图,最后在“Atlas Maker”界面update一下即可。 其他类似的也可以这么做。选该图集下的所有原图,然后对图集update一下,效果即可恢复正常。
如果还不正确,则选Font Maker,然后把txt赋给FontData,图赋给texture,然后"or select"选择字体,之后'replace the font'即可。
(6)UIAnchor的Bottom、Left等定位是根据当前屏幕的实际尺寸决定的,和UIRoot的框不存在对应关系。
UIAnchor可以嵌套,但是定位的效果恒定。
(7)UIPanel可以嵌套,在涉及多图集的UI时,可以用UIPanel的嵌套的实现不同图集的层级关系。注意:单一Panel下的属于某图集的所有元件必须为统一Z值。如果Localz 不统一的话,则取panel下使用该图集的元件中z绝对值最大的z值为图集在该panel的z值。例如有UISprite A的local.z为 -301,UISprite B的local.z为 300,那么该Panel该图集的z值为-301。有UISprite A的local.z为 51,UISprite B的local.z为 -49,那么该Panel该图集的z值为51.
(8)NGUI的事件,如UIEventListener.Get (obj).onClick 。不能用 空GameObject+collider,否则会得不到事件。必须是已添加(或曾经添加过,空的也行,如UISprite的Atlas完全留None都可以)NGUI组件的物体才能带Collider监听。当碰撞体 重叠时候。首先比较UIPanel的深度,然后比较组件的深度。
【FastGUI】
细节功能 ★★★★
运行效率 与NGUI相同
内存占用 与NGUI相同
开发速度 ★★★★
掌握时间 ★★★★
跨越平台 与NGUI相同
文档教程 ★★★★★
综合评价 ★★★★
NGUI插件的补充,必须先在工程里导入FastGUI。主要用途为对Photoshop的支持,可以利用Photo的分层快速制作NGUI的UI部件,直接在Unity里使用psd即可。
细节功能 ★★★
运行效率 ★★★★
内存占用 ★★★★
开发速度 ★★★★★
掌握时间 ★★★★
跨越平台 ★★★
文档教程 ★★★★★
综合评价 ★★★★
比较经典的UI插件,目前已经基本不更新了。
优点:Unity的元老级UI插件,方便实现快速开发
缺点:已基本不更新,UI合成图不能单图调整。
使用中注意的几点:
1:如果是Prefab中有EZGUI的东西的话,每次修改完最好Apply一下,然后点击Build Atlases
2:如果贴图合成图(atlase)都默认在Sprite Atlases文件夹下,如果图错乱的话,直接删除贴图重新点击Build Atlases生成贴图合成图即可。
3:位于scrolllist 下的一切物体必须为 EZGUI的组件 , 否则下拉的时候会不被切图。
scroll item 显示不完整 : 调整scrollist视口x尺寸
4:假如 点pixel perfect后 仍不显示尺寸则 点击运行则尺寸恢复正常
5:Panel只 build atlas 精度不够: 把atlas的分辨率调高 然后删掉 重新build
6:如果是移动平台开发切记EZ GUI组件选项不能钩 pixel perfect,因为其有auto resize会使在iphone 尺寸错误。
7:EZ脚本里很多有用函数,其默认为protected,建议将有用函数改成public,方便调用。
3:位于scrolllist 下的一切物体必须为 EZGUI的组件 , 否则下拉的时候会不被切图。
scroll item 显示不完整 : 调整scrollist视口x尺寸
4:假如 点pixel perfect后 仍不显示尺寸则 点击运行则尺寸恢复正常
5:Panel只 build atlas 精度不够: 把atlas的分辨率调高 然后删掉 重新build
6:如果是移动平台开发切记EZ GUI组件选项不能钩 pixel perfect,因为其有auto resize会使在iphone 尺寸错误。
7:EZ脚本里很多有用函数,其默认为protected,建议将有用函数改成public,方便调用。
细节功能 ★★★★
运行效率 ★★★
内存占用 ★★★
开发速度 ★★★★★
掌握时间 ★★★★★
跨越平台 ★★★★★
文档教程 ★★★★★
综合评价 ★★★☆
优点:快速开发,可视化
缺点: 效率低
iGUI是所有UI制作插件里最牛的可视化工具了。它的口号是 WSYIWYG(What you see is what you get),翻译成中文就是 所见即所得。其UI的实现核心是和Unity自带UI也就是OnGUI()是一样的。所以导致了做到后期一整套UI可能会有几十甚至上百的Drawcall。
二:2D游戏制作 - 风宇冲推荐2D Toolkit
综述:
U3D 4.3版本出的Unity2d功能是很强大的,建议做2d用Unity2d就好。2d插件的话在以前是必须的,2d插件用习惯的继续使用无伤大雅,新接触Unity的同学无需理会这些2d插件。
这些插件核心都是 2d精灵(Spritte)以及帧动画骨骼动画的管理和使用。
【2D Toolkit 】
细节功能 ★★★★☆
运行效率 ★★★★★
内存占用 ★★★★★
开发速度 ★★★★☆
掌握时间 ★★★★
跨越平台 ★★★★★
文档教程 ★★★★★
综合评价 ★★★★☆
优点:专业,靠谱
缺点:精细的碰撞实现较麻烦
你想做2D游戏?没错,就是它了!笔者也做过一些2D游戏,棋牌的飞行的RPG的都有,2D Toolkit还是很靠谱的。缺点是碰撞检测要么是简单的多边形(三角形四边形神马的)之间碰撞,或者是简单多边形和复杂多边形之间。复杂多边形和复杂多边形之间的碰撞是不支持的。而且复杂多边形的碰撞体需要自己去画。想做出类似像素碰撞检测的效果也是可以的,沿着图形本身的边缘去画,如果你不嫌麻烦的话。
【EasyMotion2D】
也是比较不错的2D Skeleton插件。有大公司的商业游戏是拿它做的,可以用。
【Ex2d】
笔者接触了一点,看了其官方提供的示例,感觉比较娱乐。不多评价了。
三:可视化编程(Visual Scripting) - 风宇冲推荐PlayMaker
综述:可视化编程在商业游戏开发里可以辅助编程开发而不是替代编程。PlayMaker可以用来做状态管理。uScript可以用来做简单游戏的开发。
【PlayMaker】
可视化程度★★★★☆
细节功能 ★★★
运行效率 ★★★★
开发速度 ★★★★★
掌握时间 ★★★★★
跨越平台 ★★★★★
文档教程 ★★★★★
综合评价 ★★★★
优点:状态管理
缺点:实现其宣扬的无编程做游戏不靠谱,多状态功能难管理
Asset Store上面很火的插件,官方说可实现无编程制作完整的游戏。这个个人感觉,你要做个类似俄罗斯方块或者弹弹球之类的小游戏是可以的,但是完全不编程制作商业级的游戏真心不靠谱。举个例子,游戏要赚钱你要嵌入广告sdk或者是IAP等付费sdk,那么你就得写脚本去实现。 不过PlayMaker也还是有可取的地方,其核心在于 将例如站立行走死亡等等状态通过状态机简称FSM(finite state machine)来管理。简单来说一个物体就是一个FSM,一个状态对应一个state。游戏过程中能在物体上方实时显示该物体的状态。并且有很方便的图表管理。缺点在于:所有功能必须对应状态。有很多共同状态都需要的功能用Playmaker做会极其麻烦,比方说,你有一个人物,有5个状态,还有行走攻击等控制输入,每个状态都要控制输入的话,同样的代码你就要有5份,很麻烦。而正常代码的话只需要简单的一段代码几个状态的与运算就可以了。
可视化程度★★★★★
细节功能 ★★★
运行效率 ★★★★
开发速度 ★★★★★
掌握时间 ★★★★★
跨越平台 ★★★★★
文档教程 ★★★★★
综合评价 ★★★★
优点:流程清晰
缺点:功能不够细致
如其宣传的,uScript模仿了UDK和CE3的开发形式,注重逻辑流程,所见即所得,逻辑性直观紧凑。但是模块还不够全面功能不细致,例如你可以给材质赋贴图,但是要改变材质颜色就找不到对应功能了,类似情况挺多的。
四:插值缓动 (Tween tool)- 风宇冲推荐iTween / HOTween
综述:iTween和HOTween各有各的优势,核心功能就是对位移,缩放,颜色等数值进行插值。iTween和HOTween并不冲突,可以同时在一个工程里使用。建议做路径的话最好用iTween, 做非位移,缩放,颜色的数值时只能用HOTween。其他情况最好用HOTween,因为管理更具有可操作性。
至于easeIn,easeOut,cubic之类的缓动参数,可以参考Tween算法及缓动效果
【HOTween】
(2)使用HOTween的脚本里添加using Holoville.HOTween;
Start()里添加HOTween.Init();
(3) TweenParms tmp = new TweenParms();
tmp.Prop("position",new Vector3(5,0,0));
tmp.Ease(EaseType.Linear);
HOTween.To(obj.transform,1,tmp);
其中 position如果换成自定义变量,obj.transform就要换成对应的脚本对象即可。注意自定义变量依然需要在两端加引号。
序列tween使用方法:
(1)
注意:(1)HOTween.To 等方法是低效的,储存返回的结果tweener,然后反复使用例如tweener.Play()更高效
(2)Tweener及TweenParms相当于一个容器, 下面填的变量才是真正要改变的内容。
【iTween】
实用性 ★★★★☆
简易度 ★★★★☆
综合评价 ★★★★☆
优点:免费,通用,实用
缺点:不够稳定,不能返回改变目标tweener
介绍:免费的经典tween插件。Tween,包括位移,缩放,颜色变换等。NGUI,EZGUI,PlayMaker等很多插件都使用它来实现tween部分。缺点是tween的过程中,如果物体被销毁等情况,容易产生不可预制的错误。
【iTweenPath】可视化 ★★★★★
实用性 ★★★★★简易度 ★★★★★
综合评价 ★★★★★
优点:免费,路径清楚,实用
介绍:iTween的补充插件,主要是可视化的绘制路径,然后在iTween里使用生成的路径。可以用于TD地图怪物的路径移动。
使用方法:(1)导入插件后 (2)随便任何一个物体,把iTweenPath拖上去 (3)inspector里设置路径点数量 (4)在选中该物体的前提下,在Scene View里拖拽各个点绘制路径 (5)给路径起名例如 'xyz' (6)代码里使用即可,例如iTween.MoveTo(obj, iTween.Hash("path",iTweenPath.GetPath("xyz"),"time",10f));【HOTween】
实用性 ★★★★★
简易度 ★★★★☆
综合评价 ★★★★★
优点:免费,管理比iTween更方便,使用范围更广
缺点:可视化补充件HOTween Edtior作用position时不能像iTweenPath那样显示路径。
缺点:可视化补充件HOTween Edtior作用position时不能像iTweenPath那样显示路径。
介绍:类似iTween的 tween插件,功能更为强大。目标类型不再仅仅为position,color等固定类型,任何你在脚本里定义的public, non-static的 numeric 即 color/vector/int/float/double/string 变量都可以作为目标。并且调用函数后会返回tweener,如果储存tweener可以随时 监测/停止本次tween。
使用方法:(1)导入插件(2)使用HOTween的脚本里添加using Holoville.HOTween;
Start()里添加HOTween.Init();
(3) TweenParms tmp = new TweenParms();
tmp.Prop("position",new Vector3(5,0,0));
tmp.Ease(EaseType.Linear);
HOTween.To(obj.transform,1,tmp);
其中 position如果换成自定义变量,obj.transform就要换成对应的脚本对象即可。注意自定义变量依然需要在两端加引号。
序列tween使用方法:
(1)
mySequence = new Sequence(new SequenceParms().Loops(3,LoopType.Yoyo));
(2)
mySequence.Append(HOTween.To(myGameObject1.transform, 1, new TweenParms().Prop("position", new Vector3(10,20,30)).Prop("rotation", new Vector3(0,720,0)).Prop("localScale", new Vector3(4,4,4)).Ease(EaseType.EaseOutBounce)));
有Append /
Prepend / Insert三种方法,Append是加在序列最后,Prepend是最前,Insert是即将到来的目标
注意:(1)HOTween.To 等方法是低效的,储存返回的结果tweener,然后反复使用例如tweener.Play()更高效
(2)Tweener及TweenParms相当于一个容器, 下面填的变量才是真正要改变的内容。
小技巧:
像Particle类的Shader里的颜色是‘_TineColor’,在Material里是取不到该属性的,故不能直接用HOTween去改变它。但是可以用Material.SetColor(string colorName)设置。故可以把材质和‘_TineColor’包一下。如下:
public class iMat
{
public Material mat;
public Color color {
get {return mat.GetColor ("_TintColor");}
set {mat.SetColor ("_TintColor", value);}
}
public iMat (Material _mat){
mat = _mat;
}
}
{
public Material mat;
public Color color {
get {return mat.GetColor ("_TintColor");}
set {mat.SetColor ("_TintColor", value);}
}
public iMat (Material _mat){
mat = _mat;
}
}
就可以对iMat.color进行操作。一切用函数改变的属性都可以用这个方法来让HOTween可以操作。
【HOTween Editor】(要求Unity 3.5.6以上)
可视化 ★★★☆
实用性 ★★★★☆简易度 ★★★★☆
综合评价 ★★★★☆
优点:高效,快捷
缺点:插值作用于position时,无路径显示。
使用方法:
(1)选中目标物体 (2)Component->HOTween->HOTweenComponent (3)在Inspector下的界面点击 蓝色的‘+Add Tween’(4)选择tween目标 (5)点击蓝色的‘+’,注意你想要改变的变量点这一步才会出来。(6)选择要插值的变量 (7)填Tween To等值即可
(8) 关闭'AutoDestroy'和‘Autoplay ’ (9) 脚本加缺点:插值作用于position时,无路径显示。
使用方法:
(1)选中目标物体 (2)Component->HOTween->HOTweenComponent (3)在Inspector下的界面点击 蓝色的‘+Add Tween’(4)选择tween目标 (5)点击蓝色的‘+’,注意你想要改变的变量点这一步才会出来。(6)选择要插值的变量 (7)填Tween To等值即可
using Holoville.HOTween;
using System.Collections.Generic;
(10)调用该tween
HOTweenComponent tweenComponent = myGameObject.GetComponent();
if (tweenComponent != null)
{
// Do something with the Tweeners
List tweeners = tweenComponent.generatedTweeners;
if(tweeners[0].id == "tweenerName")
{
tweeners[0].Play();
}
}
五: 路径搜寻(Path Finding)- 风宇冲推荐SimplePath
综述:路径搜寻主要用于怪物的AI行走,以及人物点击移动。这两个路径算法核心思想都是:先将地图划分成方格区域(像棋盘一样),然后根据方格内是否有障碍物对方格进行赋值,最后生成 单位位置 与 目标位置间的格子路径。想具体学习的童鞋可以百度 A star等算法。
掌握时间 ★★★★★
文档教程 ★★★★
综合评价 ★★★★
官方介绍说支持500+agent,即支持500个单位同时寻路,下方提供的对应插件中带有展示Demo。
【A* Pathfinding Project】
运行效率 ★★★★☆
掌握时间 ★★★★★
文档教程 ★★★★
综合评价 ★★★★
使用标准的A star算法,下方提供的对应插件中带有展示Demo。
另外:Apex Path是新出的一款不错的路径找寻插件
另外:Apex Path是新出的一款不错的路径找寻插件
六:动画制作 - 风宇冲推荐RageSpline,Smooth Moves
介绍:神马?你们团队没有做动画的人?那么就用它吧!2D骨骼动画制作插件,不支持Flash。骨骼动画文件可以复用。比帧动画省空间占用。
【Smooth Moves】
实用性 ★★★★☆
简易度 ★★★★
掌握时间 ★★★★☆
文档教程 ★★★★
综合评价 ★★★★☆
优点:动画文件复用,省空间
缺点:
使用简介:
一:制作Atlase (1)Project栏下创建Smooth Moves Texture Atlase Data (2)选中atlase 文件,点击open atlase Editor (3)把素材图往里拖。
二: 制作Animation (1)Project栏下创建Smooth Moves Texture Atlase Data (2)选中animation文件,点击open animation Editor (3)点击Bone下面的 ‘+’图标,创建骨骼节点(腰,头,腿,足等等,支持中文)(4)点击Animation Clips下的‘+’,创建动画(站立,行走,攻击等)。(5)选中帧序列界面里的 黄色方块 (6)Type选择Image(Transform就是隐藏,所以通常设置为Image)(7)选择图 (8)选择任意同行的黑块,右键选择Duplicate First Key Frame (9)执行 6-7 (10)然后设置pivot,rotation等信息(11)搞定了!点击play看效果吧!
【RageSpline】
实用性 ★★★★☆
简易度 ★★★★★
综合评价 ★★★★☆
介绍:矢量绘图工具,矢量的好处大家应该都知道,就是不会因为放大而损失质量。 适用于矢量风格的2D游戏以及2D UI的制作。程序会了这个美术就要失业了!
使用方法: (1)新建一个空的GameObject (2)贴上RageSpline脚本,然后基本形状就出来了 (3)调整形状,具体是 鼠标双击=创建节点 N=圆滑和锋利的边角模式切换 K=削薄边缘 L= 增厚边缘 delete=删除节点 (4)调整边缘颜色outline color 以及填充颜色 Fill Color,大功告成!
使用注意:
如果要加碰撞的话,就要在脚本面板里把'Physics'勾选成Boxed,之后运行时会自动在该物体之下生成平板状的Box Collider将该物体包裹。
【Mega-Fiers】
实用性 ★★★★★
简易度 ★★★★★
综合评价 ★★★★★
介绍:模型变形工具,简单实用,可以用于3D字体的弯曲效果等等。
使用方法:非常简单, (1)选中要变形的物体,(2)上方菜单Component->Modifiers->Modify Object (3)添加任何预制变形,例如弯曲则是 Component->Modifiers->Bend (4)之后在Inspector里调对应数值即可。
七:画面增强 - 风宇冲推荐Bitmap2Material,Fx Maker,Strumpy Shader Editor
【Bitmap2Material】
细节功能 ★★★★★
运行效率 ★★★★☆
掌握时间 ★★★★★
文档教程 ★★★★
综合评价 ★★★★★
优点:方便,实用。
缺点:尚未发现。价格过高
使用方法:将包里的Bitmap2Material.sbsar拖进unity工程,然后直接将你的原图拖到下方例图的'Input'上去,它会自动生成法线贴图灰度图等效果图,效果还是不错的。并且支持将随便的一张图制作成Tile图,可以无缝拼接的哦。之后就自己在Insprector里微调吧!
性能测试:
主要还是在PC和家用机平台上使用。在移动设备上基本跑不动。
512x512的parallax specular/bumped specular在 主流安卓机上18帧,
32x32及128x128的parallax specular在 主流安卓机上15帧,
512x512/256x256的bumped diffuse 在 主流安卓机上37帧,
512x512的diffuse 在 主流安卓机上46帧,
结论:效率主要和所使用的shader有关和贴图尺寸基本无关
细节功能 ★★★★★
运行效率 ★★★★☆
掌握时间 ★★★★☆
文档教程 ★★★★
综合评价 ★★★★☆
优点:
1. 插件里有很多预制效果,粒子的网格的都有。
2. 有3D效果转成2D帧动画的功能。
缺点:界面不是很方便
实用性 ★★★★
简易度 ★★★★
效果 ★★★★
兼容性 ★★☆
效果 ★★★★
兼容性 ★★☆
综合评价 ★★★
优点:云与日月层叠效果逼真,有云起云散
缺点:缺少下雪等特效,有紫色斑点等BUG。
介绍:24小时实时 天空盒+天气插件。天气主要是下雨和storm,不过效果一般,建议另外。画面效果不错,不过需要自己去配置, 例如大太阳的天气去下雨肯定不真实,下雨的时候至少要把天空调成阴暗的,有一种乌云密布的感觉。并且天气与地形与单位的互动,需要另外添加,比如溅射到地面的水花等等。月亮放大后在某些显卡下会有紫色斑点。缺点:缺少下雪等特效,有紫色斑点等BUG。
使用建议:
风:Unity的Windzone
雨:Unity官方Demo《AngryBot》 里面的雨
使用方法:链接
【Shader Forge】
可视化 ★★★★★
实用性 ★★★★
实用性 ★★★★
简易度 ★★★★★
综合评价 ★★★★☆
优点:获得了Unity3D 2014技术奖。可视化强
缺点:因为fragment级别的处理比较多,所以在移动端效率一般,需要额外优化
【Strumpy Shader Editor】
使用方法:(1)插件载入到工程里 (2)菜单Shader Editor->Stumpet Shader Editor。(3)点击New Graph (4)在图表界面Master右方,右键创建 Tex2D 以及 Sampler2D (4)连线如下 (5)点击Update Graph,之后能看见预览图了 (6)点击Export As,生成Shader文件
注意:(1)每次改动完需要点Update Graph更新预览。 (2)删除连线:鼠标移动至线上,点击右键
(3)UV x或y的单变化使用UV_Pan (4)图表视口的移动为 alt + 鼠标左键
StrumpyShader详细教程
可视化 ★★★★
实用性 ★★★★★
实用性 ★★★★★
简易度 ★★★★★
综合评价 ★★★★★
优点:实用,免费
介绍:渲染器Shader的可视化编辑器,可视化的界面和PlayMaker,uScript用起来差不多。顶点渲染,像素渲染和光照模型渲染三种模式都支持。使用前最好对 三种类型Shader的代码写法有所了解,再使用该工具能起到事半功倍的效果。优点:实用,免费
使用方法:(1)插件载入到工程里 (2)菜单Shader Editor->Stumpet Shader Editor。(3)点击New Graph (4)在图表界面Master右方,右键创建 Tex2D 以及 Sampler2D (4)连线如下 (5)点击Update Graph,之后能看见预览图了 (6)点击Export As,生成Shader文件
注意:(1)每次改动完需要点Update Graph更新预览。 (2)删除连线:鼠标移动至线上,点击右键
(3)UV x或y的单变化使用UV_Pan (4)图表视口的移动为 alt + 鼠标左键
StrumpyShader详细教程
Shader Forge和Strumpy Shader Editor对比:首先SF是$80,后者是免费。前者的图形化程度更高一些。
八:摄像机管理 - 风宇冲推荐 Security Camera
【Security Camera】
使用方法:插件载入到工程里后,直接把SecurityCamera.cs脚本拖到各个相机上,然后在Game View里就可以直接分开看单个相机的效果了。
注意:(1)相机不能重名 (2)只有一个主相机,标签tag为'MainCamera'
【ORK】(Okashi RPG Kit)
介绍:看了看youtube上的教程视频,ORK没什么意思,它整套的UI包括商店,用的是Unity自带的UI,这整套东西你拿来改还不如自己做好,又快又准又能精确调整。就不评分了。这里仅供下载,没事可以看看,如果有兴趣做RPG的新手可以去下个RPG Maker XP看看它的框架是怎样的。做商业级RPG的还是根据需要自己搭框架吧。
还有下面一些主流插件没有找到,欢迎补充。
【Security Camera】
实用性 ★★★★★
简易度 ★★★★★
综合评价 ★★★★★
优点:简单,实用
介绍:摄像机管理插。Unity里管理多相机很麻烦,Camera Preview不实用,来回启用禁用也繁琐。Security Camera能快速查看各个相机的实际效果。使用方法:插件载入到工程里后,直接把SecurityCamera.cs脚本拖到各个相机上,然后在Game View里就可以直接分开看单个相机的效果了。
注意:(1)相机不能重名 (2)只有一个主相机,标签tag为'MainCamera'
【Ultimate FPS Camera】
介绍:FPS摄像机的控制插件,没什么好说的。工程里导入插件后直接按里面的文档做就行了。
九:资源包类(Models & Particles)
综述:这个就不用多说了,好多有用的资源啊,太省事了!
【Nature Pack】
介绍:大自然的树,花,草等模型
【Ruin city】
介绍:一个被破坏的城市的模型
【CartoonSnow】
介绍:卡通雪效果
【Nature Pack】
介绍:大自然的树,花,草等模型
【Ruin city】
介绍:一个被破坏的城市的模型
【CartoonSnow】
介绍:卡通雪效果
十:其他类
【uniSWF】
优点:支持元件经典动画(Classic Tween),无需转换成序列帧
缺点:不支持图元(Shape)形变,转换成序列帧
介绍:在unity里使用flash的元件(主要是MovieClip)来制作UI什么的,对有Flash开发经验或者Flash资源的可能比较有用。
介绍:看了看youtube上的教程视频,ORK没什么意思,它整套的UI包括商店,用的是Unity自带的UI,这整套东西你拿来改还不如自己做好,又快又准又能精确调整。就不评分了。这里仅供下载,没事可以看看,如果有兴趣做RPG的新手可以去下个RPG Maker XP看看它的框架是怎样的。做商业级RPG的还是根据需要自己搭框架吧。
【Tower Defense ToolKit】
介绍:不评价了,理由前文有提到过, 仅提供下载。还有下面一些主流插件没有找到,欢迎补充。
【Mixamo】无下载
介绍: 模型动画插件,500美刀,伤不起啊。不过Unity4的动画系统已经改进很多。所以这个插件不用也罢。
【Easy Water】
介绍:水面模型。7.5美刀
【Easy Touch】
介绍:触屏控制插件。20美刀
【MakeYourLevel】
介绍: 环境模型库。 22.5美刀
第三部分 插件的学习方法
插件的学习: 学插件有如大侠学武功。先练内功根基,再练上乘武功。内功根基是指 线性代数,计算机图形学,编程基础,Unity基本API等等。基础不要求同学们要有多精通,至少基本的原理和使用要懂。上乘武功是指各种插件。如果内功 根基不扎实而强修秘籍的话,也许会像天龙八部里的鸠摩智一样走火入魔。在游戏开发里,通常表现为卡在一个地方,模模糊糊的怎么都过不去,各种纠结。假如你 遇到了类似情况,建议回过头静下心来温习下相关的基础知识,等过后头脑缓过来了再理理思绪,分析分析条理,一般问题在这个时候就解决了。
插件的辨别:游戏开发如大侠比武,比的是游戏,武功(插件)不同,实力当然也不同。 好的武功能把你的特性发挥的淋漓尽致,PK有如行云流水。差的武功会让你瞬间被秒杀,无缘Grossing榜。好的插件能很好的和你的项目本身配合,达到 提高开发效率的目的。不好的插件你研究它得花费大量时间又还得花时间,又还得花时间修改调试,很有可能反而会降低效率。所以分辨插件的优劣很重要。我总结 了以下几点,能快速分辨插件的好坏:
好的插件(1)首先,Asset Store上排名高的一般都好用,什么榜都行,当然还是Top Grossing 最有分量,不好的东西谁愿意付钱呢?如果没有排名就看评价数量和内容吧(2)国内相关介绍讨论比较多的一般都好 (3)教程详细的,特别是有语音高清教程的。
不好的插件 (1)搜索到的相关信息极少的 (2)无排名,评价少 (3)教程粗糙
插件的配合:上乘武功则需要配合, 例如张无忌的太极拳+九阳真经+梯云纵+乾坤大挪移。招式太极,内功九阳,轻功梯云纵,能量转移则乾坤。配置组合插件道理也一样,使用什么样的组合就要看游戏本身的定位如何了。假如使用了与游戏定位不符合的插件,效果通常只能事与愿违。例如,做个2D游戏,自然用不到 Bitmap2Material,2D游戏也不需要法线贴图灰度图什么的吧。又如做一款商业级别的移动平台游戏用了iGUI制作UI的话,在 Android和iOS各自的低端机上的表现到最后会让你头疼不已。武侠的世界里,武功会有冲突,例如九阳神功九阴真经不能调和,插件同样也是有冲突的,不尽早发现的话后期面对一堆Bug会让你欲哭无泪的。后文中陆续提到了一些兼容或冲突,有些插件在Asset Store上的介绍也会有相关信息,例如某插件会在介绍里写明与NGUI兼容,与PlayMaker兼容。更多的需要同学们事先了解或者实验出来。本段下方举了插件组合的例子供大家参考。
第三部分 插件的学习方法
插件的学习: 学插件有如大侠学武功。先练内功根基,再练上乘武功。内功根基是指 线性代数,计算机图形学,编程基础,Unity基本API等等。基础不要求同学们要有多精通,至少基本的原理和使用要懂。上乘武功是指各种插件。如果内功 根基不扎实而强修秘籍的话,也许会像天龙八部里的鸠摩智一样走火入魔。在游戏开发里,通常表现为卡在一个地方,模模糊糊的怎么都过不去,各种纠结。假如你 遇到了类似情况,建议回过头静下心来温习下相关的基础知识,等过后头脑缓过来了再理理思绪,分析分析条理,一般问题在这个时候就解决了。
插件的辨别:游戏开发如大侠比武,比的是游戏,武功(插件)不同,实力当然也不同。 好的武功能把你的特性发挥的淋漓尽致,PK有如行云流水。差的武功会让你瞬间被秒杀,无缘Grossing榜。好的插件能很好的和你的项目本身配合,达到 提高开发效率的目的。不好的插件你研究它得花费大量时间又还得花时间,又还得花时间修改调试,很有可能反而会降低效率。所以分辨插件的优劣很重要。我总结 了以下几点,能快速分辨插件的好坏:
好的插件(1)首先,Asset Store上排名高的一般都好用,什么榜都行,当然还是Top Grossing 最有分量,不好的东西谁愿意付钱呢?如果没有排名就看评价数量和内容吧(2)国内相关介绍讨论比较多的一般都好 (3)教程详细的,特别是有语音高清教程的。
不好的插件 (1)搜索到的相关信息极少的 (2)无排名,评价少 (3)教程粗糙
插件的选择: 上乘武功需要专精,令狐冲专精剑法,独孤九剑笑傲江湖,郭靖专精掌法,降龙十八掌威震武林。你不可能把天下所有武功集于一身。Unity开发也是,不可能 所有插件你都精通,只能是选取一些对你用处比较大的插件重点学习使用。所以插件的选择就比较重要了、一般来说比较实用的是单个功能块的插件,比如做UI选 NGUI, 插值控制用iTween, 2D游戏用2D Toolkit等等。而综合类插件就不建议实用了。例如做塔防类游戏的 Tower Defense ToolKit, 做RPG游戏的Okashi RPG Kit,这类插件是专门为做一类游戏而生,集成了很多很多功能,但是每个功能又做不到很专业,所以假如你要用,还得自己改,而这类插件一般定制的调整空间 比较小,目前来说还达不到专业的级别。所以如果你做很专业领域的游戏,比如赛车,有个start kit能节省很多时间,毕竟一辆车有几十上百个参数,通常没有必要自己做物理模型。其他一般的游戏比如塔防,闯关什么的就没必要找个类似start kit的东西了。
插件的配合:上乘武功则需要配合, 例如张无忌的太极拳+九阳真经+梯云纵+乾坤大挪移。招式太极,内功九阳,轻功梯云纵,能量转移则乾坤。配置组合插件道理也一样,使用什么样的组合就要看游戏本身的定位如何了。假如使用了与游戏定位不符合的插件,效果通常只能事与愿违。例如,做个2D游戏,自然用不到 Bitmap2Material,2D游戏也不需要法线贴图灰度图什么的吧。又如做一款商业级别的移动平台游戏用了iGUI制作UI的话,在 Android和iOS各自的低端机上的表现到最后会让你头疼不已。武侠的世界里,武功会有冲突,例如九阳神功九阴真经不能调和,插件同样也是有冲突的,不尽早发现的话后期面对一堆Bug会让你欲哭无泪的。后文中陆续提到了一些兼容或冲突,有些插件在Asset Store上的介绍也会有相关信息,例如某插件会在介绍里写明与NGUI兼容,与PlayMaker兼容。更多的需要同学们事先了解或者实验出来。本段下方举了插件组合的例子供大家参考。
2D 横屏动作游戏 :2D Toolkit + NGUI
3D 第一人称射击 :NGUI + Simple Path + Bitmap2Material + PlayMaker + Security Camera + Stumpy Shader Editor
独立开发2D游戏:(1)Photoshop/Illustrator等外部绘图软件 + Smooth Moves + NGUI
(2)RageSpline + 2D Toolkit + NGUI
简易非商业开发:iGUI + iTween
塔防游戏: iTween/ Simple Path + NGUI +其他