引言Word文件下载.docx
《引言Word文件下载.docx》由会员分享,可在线阅读,更多相关《引言Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
上乘武功需要专精,令狐冲专精剑法,独孤九剑笑傲江湖,郭靖专精掌法,降龙十八掌威震武林。
你不可能把天下所有武功集于一身。
Unity开发也是,不可能所有插件你都精通,只能是选取一些对你用处比较大的插件重点学习使用。
所以插件的选择就比较重要了、一般来说比较实用的是单个功能块的插件,比如做UI选NGUI,插值控制用iTween,2D游戏用2DToolkit等等。
而综合类插件就不建议实用了。
例如做塔防类游戏的TowerDefenseToolKit,做RPG游戏的OkashiRPGKit,这类插件是专门为做一类游戏而生,集成了很多很多功能,但是每个功能又做不到很专业,所以假如你要用,还得自己改,而这类插件一般定制的调整空间比较小,目前来说还达不到专业的级别。
所以如果你做很专业领域的游戏,比如赛车,有个startkit能节省很多时间,毕竟一辆车有几十上百个参数,通常没有必要自己做物理模型。
其他一般的游戏比如塔防,闯关什么的就没必要找个类似startkit的东西了。
插件的配合:
上乘武功则需要配合,例如张无忌的太极拳+九阳真经+梯云纵+乾坤大挪移。
招式太极,内功九阳,轻功梯云纵,能量转移则乾坤。
配置组合插件道理也一样,使用什么样的组合就要看游戏本身的定位如何了。
假如使用了与游戏定位不符合的插件,效果通常只能事与愿违。
例如,做个2D游戏,自然用不到Bitmap2Material,2D游戏也不需要法线贴图灰度图什么的吧。
又如做一款商业级别的移动平台游戏用了iGUI制作UI的话,在Android和iOS各自的低端机上的表现到最后会让你头疼不已。
武侠的世界里,武功会有冲突,例如九阳神功九阴真经不能调和,插件同样也是有冲突的,不尽早发现的话后期面对一堆Bug会让你欲哭无泪的。
后文中陆续提到了一些兼容或冲突,有些插件在AssetStore上的介绍也会有相关信息,例如某插件会在介绍里写明与NGUI兼容,与PlayMaker兼容。
更多的需要同学们事先了解或者实验出来。
本段下方举了插件组合的例子供大家参考。
2D横屏动作游戏:
2DToolkit+NGUI
3D第一人称射击:
NGUI+SimplePath+
Bitmap2Material+
PlayMaker+
SecurityCamera+
StumpyShaderEditor
独立开发2D游戏:
(1)Photoshop/Illustrator等外部绘图软件
+SmoothMoves+
NGUI
(2)RageSpline+
简易非商业开发:
iGUI+iTween
塔防游戏:
iTween/SimplePath+NGUI
+其他
第二部分
插件的评测
Unity插件本文分以下九个类别介绍,后面跟的是风宇冲的推荐插件:
一界面制作推荐:
二2D游戏制作推荐:
2DToolkit
三可视化编程推荐:
PlayMaker
四插值插件推荐:
iTween,HOTween
五路径搜寻推荐:
SimplePath
六美术及动画制作推荐:
RageSpline,SmoothMoves
七画面增强
推荐:
Bitmap2Material,StrumpyShaderEditor
八摄像机管理
SecurityCamera
九资源包
NaturePack
十其他类
一:
界面设计(UI)-
风宇冲推荐NGUI
综述:
所有UI插件可以实现的功能和效果最后都是差不多的,区别是最终游戏的运行效率和内存占用量不一样,开发的速度也不一样。
NGUI和EZGUI是属于一类,核心是将UI元件图合并到一张大图(atlase)上,再根据uv去找对应的小图,最后使用2Dcamera绘制。
iGUI是另外一种UI插件,它可以说是Unity自带UI的升级版,也就是OnGUI的延伸。
了解OnGUI()的同学都知道,它的运行效率是比较低的,没有Drawcall合并,iGUI也一样。
中文等字体制作一般是用GlyphDesginer或者Bmfont,这点NGUI和EZGUI是通用的。
总体来说,GUI插件的功能还是略微有限,无论是什么GUI插件想做复杂点的功能就必须得用脚本。
学习维护起来还是稍微有点麻烦的,故依然建议一个团队只一个人或几个人专门负责UI。
【NGUI】
细节功能
★★★★★
运行效率
内存占用
开发速度
★★★★★
掌握时间
★★★★
跨越平台
文档教程
综合评价
优点:
UI合成图(atlas)管理方便,字体RGB压缩,持续更新,支持Flash,支持语言本地化即多语言,支持图像高低清配置。
缺点:
卷屏界面(ScrollList)的实现稍微麻烦。
介绍:
目前Unity最好用的UI插件。
重点是NGUI应该会一直更新,跟着Unity的脚步。
NGUI也更方便于管理atlas,至少每个Sprite在atlas中都有名字来管理可以很方便的添加删除共用,并且Sprite的位置大小信息可见也可适当调整。
NGUI在线教程视频
【FastGUI】
★★★★
与NGUI相同
NGUI插件的补充,必须先在工程里导入FastGUI。
主要用途为对Photoshop的支持,可以利用Photo的分层快速制作NGUI的UI部件,直接在Unity里使用psd即可。
【EZGUI】
★★★
★★★
比较经典的UI插件,目前已经基本不更新了。
优点:
Unity的元老级UI插件,方便实现快速开发
已基本不更新,UI合成图不能单图调整。
使用中注意的几点:
1:
如果是Prefab中有EZGUI的东西的话,每次修改完最好Apply一下,然后点击BuildAtlases
2:
如果贴图合成图(atlase)都默认在SpriteAtlases文件夹下,如果图错乱的话,直接删除贴图重新点击BuildAtlases生成贴图合成图即可。
3:
位于scrolllist下的一切物体必须为EZGUI的组件,否则下拉的时候会不被切图。
scrollitem显示不完整
:
调整scrollist视口x尺寸
4:
假如点pixelperfect后仍不显示尺寸则点击运行则尺寸恢复正常
5:
Panel只buildatlas精度不够:
把atlas的分辨率调高然后删掉重新build
6:
如果是移动平台开发切记EZGUI组件选项不能钩pixelperfect,因为其有autoresize会使在iphone尺寸错误。
7:
EZ脚本里很多有用函数,其默认为protected,建议将有用函数改成public,方便调用。
EZGUI中文视频教程
【iGUI】
★★★☆
快速开发,可视化
缺点:
效率低
iGUI是所有UI制作插件里最牛的可视化工具了。
它的口号是WSYIWYG(Whatyouseeiswhatyouget),翻译成中文就是
所见即所得。
其UI的实现核心是和Unity自带UI也就是OnGUI()是一样的。
所以导致了做到后期一整套UI可能会有几十甚至上百的Drawcall。
二:
2D游戏制作
-
风宇冲推荐2DToolkit
核心都是2d精灵(Spritte)以及帧动画的管理和使用。
个人觉得2DToolkit比Ex2d好些,更像是制作商业2D游戏的软件。
【2DToolkit】
★★★★☆
专业,靠谱
精细的碰撞实现较麻烦
你想做2D游戏?
没错,就是它了!
笔者也做过一些2D游戏,棋牌的飞行的RPG的都有,2DToolkit还是很靠谱的。
缺点是碰撞检测要么是简单的多边形(三角形四边形神马的)之间碰撞,或者是简单多边形和复杂多边形之间。
复杂多边形和复杂多边形之间的碰撞是不支持的。
而且复杂多边形的碰撞体需要自己去画。
想做出类似像素碰撞检测的效果也是可以的,沿着图形本身的边缘去画,如果你不嫌麻烦的话。
【Ex2d】
笔者接触了一点,看了其官方提供的示例,感觉比较娱乐。
不多评价了。
三:
可视化编程(VisualScripting)
风宇冲推荐PlayMaker
可视化编程在商业游戏开发里可以辅助编程开发而不是替代编程。
PlayMaker可以用来做状态管理。
uScript可以用来做简单游戏的开发。
【PlayMaker】
可视化程度★★★★☆
状态管理
实现其宣扬的无编程做游戏不靠谱,多状态功能难管理
AssetStore上面很火的插件,官方说可实现无编程制作完整的游戏。
这个个人感觉,你要做个类似俄罗斯方块或者弹弹球之类的小游戏是可以的,但是完全不编程制作商业级的游戏真心不靠谱。
举个例子,游戏要赚钱你要嵌入广告sdk或者是IAP等付费sdk,那么你就得写脚本去实现。
不过PlayMaker也还是有可取的地方,其核心在于将例如站立行走死亡等等状态通过状态机简称FSM(finitestatemachine)来管理。
简单来说一个物体就是一个FSM,一个状态对应一个state。
游戏过程中能在物体上方实时显示该物体的状态。
并且有很方便的图表管理。
缺点在于:
所有功能必须对应状态。
有很多共同状态都需要的功能用Playmaker做会极其麻烦,比方说,你有一个人物,有5个状态,还有行走攻击等控制输入,每个状态都要控制输入的话,同样的代码你就要有5份,很麻烦。
而正常代码的话只需要简单的一段代码几个状态的与运算就可以了。
PlayMaker视频教程
PlayMaker中文文档
【uScript】
可视化程度★★★★★
流程清晰
功能不够细致
如其宣传的,uScript模仿了UDK和CE3的开发形式,注重逻辑流程,所见即所得,逻辑性直观紧凑。
但是模块还不够全面功能不细致,例如你可以给材质赋贴图,但是要改变材质颜色就找不到对应功能了,类似情况挺多的。
uScript详细学习链接
四:
插值插件(Tweentool)-
风宇冲推荐iTween/HOTween
iTween和HOTween各有各的优势,核心功能就是对位移,缩放,颜色等数值进行插值。
iTween和HOTween并不冲突,可以同时在一个工程里使用。
建议做路径的话最好用iTween,做非位移,缩放,颜色的数值时只能用HOTween。
其他情况最好用HOTween,因为管理更具有可操作性。
【iTween】
实用性
简易度
免费,通用,实用
不够稳定,不能返回改变目标tweener
免费的经典tween插件。
Tween,包括位移,缩放,颜色变换等。
NGUI,EZGUI,PlayMaker等很多插件都使用它来实现tween部分。
缺点是tween的过程中,如果物体被销毁等情况,容易产生不可预制的错误。
iTween文字教程
【iTweenPath】
可视化
免费,路径清楚,实用
iTween的补充插件,主要是可视化的绘制路径,然后在iTween里使用生成的路径。
可以用于TD地图怪物的路径移动。
使用方法:
(1)导入插件后
(2)随便任何一个物体,把iTweenPath拖上去(3)inspector里设置路径点数量(4)在选中国该物体的前提下,在inspector里拖拽各个点绘制路径(5)给路径起名例如'
xyz'
(6)代码里使用即可,例如iTween.MoveTo(obj,iTween.Hash("
path"
iTweenPath.GetPath("
xyz"
),"
time"
10f));
【HOTween】
免费,管理比iTween更方便,使用范围更广
可视化补充件HOTweenEdtior作用position时不能像iTweenPath那样显示路径。
类似iTween的tween插件,功能更为强大。
目标类型不再仅仅为position,color等固定类型,任何你在脚本里定义的public,non-static的numeric即color/vector/int/float/double/string变量都可以作为目标。
并且调用函数后会返回tweener,如果储存tweener可以随时监测/停止本次tween。
(1)导入插件
(2)使用HOTween的脚本里添加usingHoloville.HOTween;
Start()里添加HOTween.Init();
(3)
TweenParmstmp=newTweenParms();
tmp.Prop("
position"
newVector3(5,0,0));
tmp.Ease(EaseType.Linear);
HOTween.To(obj.transform,1,tmp);
其中position如果换成自定义变量,obj.transform就要换成对应的脚本对象即可。
序列tween使用方法:
(1)mySequence=newSequence(newSequenceParms().Loops(3,LoopType.Yoyo));
(2)mySequence.Append(HOTween.To(myGameObject1.transform,1,newTweenParms().Prop("
newVector3(10,20,30)).Prop("
rotation"
newVector3(0,720,0)).Prop("
localScale"
newVector3(4,4,4)).Ease(EaseType.EaseOutBounce)));
有Append/
Prepend/Insert三种方法,Append是加在序列最后,Prepend是最前,Insert是即将到来的目标
注意:
HOTween.To等方法是低效的,储存返回的结果tweener,然后反复使用例如tweener.Play()更高效
【HOTweenEditor】
(要求Unity3.5.6以上)
插值作用于position时,无路径显示。
(1)选中目标物体
(2)Component->
HOTween->
HOTweenComponent
(3)在Inspector下的界面点击蓝色的‘+AddTween’(4)选择tween目标(5)点击蓝色的‘+’。
(6)选择要插值的变量(7)填TweenTo等值即可
(8)关闭'
AutoDestroy'
和‘Autoplay’(9)脚本加
usingHoloville.HOTween;
usingSystem.Collections.Generic;
(10)调用该tween
HOTweenComponenttweenComponent=myGameObject.GetComponent<
HOTweenComponent>
();
if(tweenComponent!
=null)
{
//DosomethingwiththeTweeners
List<
Tweener>
tweeners=tweenComponent.generatedTweeners;
if(tweeners[0].id=="
tweenerName"
)
tweeners[0].Play();
}
五:
路径搜寻(PathFinding)-
风宇冲推荐SimplePath
路径搜寻主要用于怪物的AI行走,以及人物点击移动。
这两个路径算法核心思想都是:
先将地图划分成方格区域(像棋盘一样),然后根据方格内是否有障碍物对方格进行赋值,最后生成单位位置与目标位置间的格子路径。
想具体学习的童鞋可以XXAstar等算法。
【SimplePath】
官方介绍说支持500+agent,即支持500个单位同时寻路,下方提供的对应插件中带有展示Demo。
【A*PathfindingProject】
使用标准的Astar算法,下方提供的对应插件中带有展示Demo。
六:
美术及动画制作
风宇冲推荐RageSpline,SmoothMoves
【SmoothMoves】
神马?
你们团队没有做动画的人?
那么就用它吧!
2D骨骼动画制作插件,不支持Flash。
骨骼动画文件可以复用。
比帧动画省空间占用。
动画文件复用,省空间
使用简介:
制作Atlase
(1)Project栏下创建SmoothMovesTextureAtlaseData
(2)选中atlase
文件,点击openatlaseEditor(3)把素材图往里拖。
二:
制作Animation
(1)Project栏下创建SmoothMovesTextureAtlaseData
(2)选中animation文件,点击openanimationEditor(3)点击Bone下面的‘+’图标,创建骨骼节点(腰,头,腿,足等等,支持中文)(4)点击AnimationClips下的‘+’,创建动画(站立,行走,攻击等)。
(5)选中帧序列界面里的黄色方块(6)Type选择Image(Transform就是隐藏,所以通常设置为Image)(7)选择图(8)选择任意同行的黑块,右键选择DuplicateFirstKeyFrame(9)执行6-7(10)然后设置pivot,rotation等信息(11)搞定了!
点击play看效果吧!
【RageSpline】
矢量绘图工具,矢量的好处大家应该都知道,就是不会因为放大而损失质量。
适用于矢量风格的2D游戏以及2DUI的制作。
程序会了这个美术就要失业了!
使用方法:
(1)新建一个空的GameObject
(2)贴上RageSpline脚本,然后基本形状就出来了(3)调整形状,具体是鼠标双击=创建节点N=圆滑和锋利的边角模式切换K=削薄边缘L=增厚边缘delete=删除节点(4)调整边缘颜色outlinecolor以及填充颜色FillColor,大功告成!
【Mega-Fiers】
非常简单,
(1)选中要变形的物体,
(2)上方菜单Component->
Modifiers->
ModifyObject(3)添加任何预制变形,例如弯曲则是Component->
Bend(4)之后在Inspector里调对应数值即可。
七:
画面增强
风宇冲推荐Bitmap2Material,StrumpyShaderEditor
【Bitmap2Material】
★★