Drag Camera

拖动摄像机来浏览超大的页面

超大页面这个是指完整的界面非常的大,大小已经超过了摄像机照射的范围了,一个屏幕都显示不完的那种,这个在2D的游戏中比较常见,主要是用于背景显示,例如2D跑酷游戏中的背景。

超大界面还是有比较广的应用,例如我们世界地图的查看,或者一些策略类的游戏,例如海岛奇兵那种的地图,我们就会经常涉及到主场景视图的拖动。

之前我们讲解ScrollView的时候,讲过ScrollView的目的是为了让一个Panel显示不完的内容可以通过滑动方便的进行浏览,但是,这里的情况不太一样,就是超大界面一般是整个屏幕都用来显示这个界面,而且还显示不完,我们需要浏览的时候,就需要借助摄像机的移动来自由浏览,而且相机还不能被拖出边界之外,否则会穿帮的!!

核心原理和组件介绍

首先我们需要知道要实现这个功能必须有两个核心的组件,就是UIDraggable Camera和UIDrag Camera。首先要有一个超大的背景图。UIDraggable Camera组件必须添加到摄像机物体上,因为一般用于2D游戏,所以这个还是需要添加到我们的正交摄像机上面。

这里最核心的组件就是第一个RootForBounds,这是最重要的一个设置项了,就是我们相机拖动的范围边界了。在设置这个选项的时候,我们不能直接将背景图拖进去,需要将背景图的根物体拖进去,也可以是其父物体,我们这里就是创建了一个Panel来作为BackGround的父物体,然后我们将这个父物体Panel拖进去。这样它就能自动计算出这个物体包含的内容的边界了。

其他的参数可以参照ScrollView的参数。

接下来说一下UIDrag Camera,该组件一般附着在一个具有BoxCollider的物体上,以此来接收拖动事件,来使摄像机拖动,但是需要注意的是这个物体本身不会被拖动,因为我们无法看到摄像机也无法直接操作摄像机,所以需要一个超过摄像机视图的boxcollider来接收拖动事件,一般我们运用这个背景的Texture来添加上boxcollider和DragCamera。

然后添加了这个组件之后,只需要把我们刚才添加了UIDraggable Camera组件的2D摄像机拖过来就可以了。运行游戏我们就可以拖动背景图了,同时可以看到相机也被拖动了。

results matching ""

    No results matching ""