纳金网

标题: 【转载】NGUI官网示例11 –Drag & Drop(一) [打印本页]

作者: 艾西格亚    时间: 2012-10-14 13:43
标题: 【转载】NGUI官网示例11 –Drag & Drop(一)
(浙江传媒学院-新媒体学院-数字游戏设计专业-张sir)



游戏中经常会用到储物箱等GUI,GUI的一边是物品的图标,另一边是一个角色,你可以拖动这些图标放置到角色上,为它装配装备。那么我们首先来实现较为简单的Drag&Drop功能。如图所示:







首先来制作三维的场景:

1. 使用Create a new UI对话框创建一个Advanced3D UI,如图所示:







把Panel拖出来,脱离Anchor父物体,然后改名为3D,接着把Camera作为子物体拖动到Panel下面,reset一下Camera对象,最后删除UI Root(3D)对象和Anchor对象,这里删除UIRoot是因为这个对象只是用于调整GUI大小的,而我们这个层级只要显示一个立方体和一个背景而已,如图所示







选择Camera,使用WidgetTool对话框在Camera下创建一个SlicedSprite对象,调整其大小和位置,作为其背景,如图所示







创建一个空的游戏对象,并命名为stage,该对象用来使得其子物体能够自动旋转,把该游戏对象放置到3D对象下,成为其子物体,并reset一下,如图所示







在stage下创建一个Cube,并为该Cube赋予一个brick材质,在project窗中,打开NGUI-> Example->brick。并调整它的大小,如图所示







选择stage对象,调整它的位置,如图所示







再次选择stage对象,为它添加一个spin组件(Component->NUI->Example->spin),这个组件可以旋转自身,并设置其参数,点击播放,可以看到立方体旋转起来了。当然这里大家应该知道,子物体会继承父物体的所有变换(平移、缩放和旋转)。如图所示







选择cube对象,为其添加一个SpinWithMouse组件(Component->NGUI->Example->Spin With Mouse),该组件可以使得物体随着鼠标的拖动而转动,如图所示







在3D对象下创建一个Direction Light,这样就把场景照亮了,这样场景就漂亮多了,如图所示







接下来,我们来制作GUI部分。使用Create a new UI对话框,创建一个Simple 2D,如图所示







把Anchor对象改名为Anchor Bottom,并设置其side参数为Bottom。如图所示







选择Panel,改名为Window Panel,使用WidgetTool创建一个SlicedSprite,设置参数,并把该元件改名为background,并调整它的大小和位置,如图所示







现在看到视口中间还有一个正方形,这个东西是我们上面那个3D对象层级的背景,我们选择UIRoot(2D)对象包括其子对象,为其添加一个2DGUI layer(如何添加Layer和Layer的作用在unity文档中有描述,这里不再赘述)。选择UIRoot(2D)中的Camera,设置其Culling Mask为2DGUI,也就是说这个摄像机只显示这个Layer中的对象,其他Layer的对象不会在这个摄像机中显示。最后效果如图所示







选择WindowPanel,为其添加一个新的Panel(NGUI->create a Panel),并重新命名为ListPanel,如图所示







为ListPanel创建一个空的游戏对象,并命名为DragDropContainer,reset一下,并为它添加一个Collider(NGUI->Attach a collider),如图所示





作者: 艾西格亚    时间: 2012-10-14 14:01
这个教程还有第二部分,请期待
作者: 最爱小布点    时间: 2012-10-17 10:28
跪求NGUI官网示例11 –Drag & Drop(二) 第二部分内容
作者: 其实我是神    时间: 2012-11-28 17:14
www.narkii.com这里好东西很多。
作者: may    时间: 2012-12-1 23:30
支持楼主的帖子
作者: 王者再临    时间: 2012-12-28 20:26
学习了,虽然还是有难度,谢谢楼主的用心  
作者: xueshong    时间: 2014-4-23 16:38
今天整了哈  拖动旋转老是不成功




欢迎光临 纳金网 (http://c-www.narkii.com/club/) Powered by Discuz! X2.5