二、Example2 – Interaction 接下来,完成窗口的变换(移动和旋转),使其当点击show按钮时,窗口平躺下来。新建两个空游戏对象,并命名为WindowActive和WindowInactive,这两个对象只包含了对象的变换信息(平移、旋转和缩放)。我们将用这个两个空游戏对象的变换信息来制作窗口在这两个位置间的平滑过渡。首先把该两个游戏对象放置到3D UI对象下,成为它的子物体,然后把这两个对象reset一下,接着,调整WindowInactive的旋转角度和位置。而WindowActive保持变换不变。注意,此时当中的scale参数最好跟Window中的缩放一样,除非你要实现缩放效果,注意WindowInactive的位置的改变如果过大可能会导致两个蓝色按钮运行时不显示,如图所示: 选择Window对象,为其添加一个TweenTransform组件(Compoent->NGUI->Tween-> Transform),该组件可以根据两个Transform对象来在它们之间进行平滑过渡。添加组件之后,把WindowActive和WindowInactive对象赋值给该组件下的From和To下,同时把给组件的Enable关掉,我们将使用Show按钮来控制它的打开,具体参数如下,如图所示: 以上几步就实现了官网上的Interaction中窗口位置的平滑变换效果。关键是UIButtonTween和其他的Tween类型之间的连接。最后,把摄像机调整到其他的角度。现在,来制作NGUI按钮与场景中的对象的交互。首先,在场景中创建一个立方体,并为它赋予brick材质(在Project窗口中,NGUI->Example->Materials->brick),为该立方体添加一个Spin组件(Component->NGUI->Examples->Spin),该脚本可以实现物体的旋转。再为其添加一个UIButtonScale组件(Component->NGUI->Interaction->ButtonScale),该组件可以实现当鼠标位于该物体上面时,对该物体进行缩放。最后为其添加一个TweenPosition组件(Component->NGUI->Tween->position),设置其Method为EaseInOut,Duration(此参数控制从from至to的周期,即移动时间,数值越大移动时间越长)为0.5,From为起始位置,To为最终位置,这两个位置根据你需要制作的位置不同而不同,你可以通过在编辑器中拖动该物体,然后确定该位置,并记录下来,输入到From和To中。最终效果如下, |
|
来自: dengqingwu > 《Unity3D》