文档介绍:今天我们通过一个综合的例子来讲解 NGUI 的 3d UI和 ScrollView 。本例结合是了NGUI 官方自带例子中的 Example 6- Draggable Window 和 Example 7- Scroll View (Panel) 两个场景的内容来讲的, 帮助大家更好的理解这两个场景的内容。如果大家对这两个场景都很精通的话,可以忽略此教程。最终实现结果如下图: 1. 首先新建一个场景, 通过菜单NGUI-->Open the UI Wiza rd打开UI Tool窗口,这次我们新建UI的时候更改UI的camera选项,设置为Advanced ,分别命名为 LagPos,AutoYaw,DragTilt, 设置它们的层级关系为并且设置 AutoYaw 为 LagPos 的子物体, 设置 DragTilt 为 AutoYaw 的子物体。这里我们只是需要它们的 Transform 节点属性。可以把它们的 UIPanel 代码删除掉。建立好之后,它们的层级关系如图: DragTilt 节点下新建一个 Panel , 作为我们所有 UI 元素的根节点命名为 Panel_Root, 然后再在它的节点下新建两个 Panel 。分别命名为 Panel_Controls , Panel_List 。这里提醒大家, 在做 3D UI 的时候, 一定要多用 Panel , 可以把同一组的 UI 元素放到一个 Panel 里。这样在控制的时候就会很方便, 我们只要指定显示或者隐藏它们所在的 Panel 就可以动态切换界面。还有一个要注意的就是在 3D UI 中, UI 元素的 Z 轴位置属性是有用的。它们都是真实的 3D 物体。这意味着我们可以控制它们的 Z 轴位置和 Z 轴旋转。界面效果如图。 4. 下面我们开始为各个 UI 元素赋予属于它们的代码。首先为 LagPos 添加脚本 LagPosition 。该脚本的作用在于我们移动 panel 的时候, 它可以模拟一个缓冲的移动效果。然后是 AutoYaw ,为它添加脚本 WindowAutoYaw ,该脚本的作用在于使物体在左右移动的时候自动旋转一定角度,实现透视效果。最后是 DragTilt ,为它添加脚本 WindowDragTilt 。该脚本的作用在于使物体左右移动的时候, 产生一定的旋转, 模拟甩尾效果。大家有时间可以研究研究这三个代码。这里就不贴出来了。 5. 我们要做的 UI 界面是一个可以随意移动并且自动旋转的 3D 的界面下,一排按钮可以左右拖动, 但是只显示中间位置的几个。下面有一个 Scroll Bar 也可以拖动控制显示的按钮。我们先设置 Panel_List 的显示区域。设置 Panel_List 的 UIPanel 下的 Clipping 为 SoftClip ,并设置 Clip 框的大小。接着我们在 Panel_List 下新建几个按钮或者别的任何 UI 元素。不用调节它的位置。我们可以自动排列它的位置。秘密武器就是 UIGrid 脚本。为 Panel_List 添加脚本 UIGrid 。这时 Panel_List 下的子物体会自动排列。我们可以通过 UIGrid 中的参数调节它的排列是纵向或者横向,还可以调节它的 X