大家好,我是秦元培,歡迎大家關注我的部落格,我的部落格地址是blog.csdn.net/qinyuanpei。
在我之前的文章《Unity3D遊戲開發之小地圖的實現》一文中,我為大家講解了基於OnGUI()方法繪製貼圖實現小地圖的方法。那麼,今天呢,博主再來為大家分享一種實現小地圖的方法。在正式開始今天的文章之前,我們先來瞭解下Unity3D中的相機吧。在Unity3D中,相機是一個能夠為玩家捕獲並顯示遊戲世界的裝置。通過操縱相機,我們可以使得我們的遊戲情境以更加真實和獨特的方式顯示出來。在Unity3D中預設有一個主相機Main Camera用來顯示我們設計的遊戲情境,其實呢,在一個遊戲情境中我們是可以設定多個相機對象的,而且它們可以被設定為任意的渲染序列、任意的渲染部分和任意的渲染位置。下面我們來講解一些比較重要的東西吧!
1、Clera Flags:決定情境的哪個部分需要清除。當需要使用多個相機以顯示不同的遊戲元素時這是非常有用的。
2、Background Color:處於所有對象之後的背景顏色,設定此屬性後,天空盒子(SkyBox)將失效。
3、Normalized View Port Rect:在螢幕座標系下使用四個值來確定相機的哪些部分將顯示在螢幕上。
4、Near Clip Plane:相對於相機昀近繪製點。
5、Far Clip Plane:相對於相機昀遠的繪製點。
6、Field of view:沿著局部 Y軸的相機視角寬度。
7、Is orthographic:開啟或關閉相機的景深效果
8、正交視大小(Orthographic size):在正交模式下的視口大小。
9、Depth:相機的繪製順序,相當於ZIndex屬性,具有較高深度的相機將繪製在較低深度相機的上面。
好了,有了上面的基礎,我們就可以開始今天的正式內容了,是博主自己建立的一個遊戲情境,遊戲情境是在一個沒有光照的黑暗的屋子裡面,我們的遊戲主角頭頂上添加了一個點光源,所以當遊戲主角運動的時候,其經過的情境會被主角頭頂上的光源照亮,我們現在要做的就是為這個遊戲情境添加一個小地圖,以保證玩家在玩遊戲的時候不會在黑暗的屋子裡迷路。
好,現在我們開始來做小地圖,我們在情境中添加一個Camera,然後設定其旋轉角度使其垂直於XOZ平面,命名為TopCamera,這時候我們設定攝像機的投影方式為正交投影,相信根據前面提到的關於Camera的一些內容,大家已經猜到這個小地圖的製作原理了,不錯,這個小地圖就是根據Normalized View Port Rect屬性來製作的。我們可以自己調整Normalized View Port Rect的四個數值來讓小地圖在合適的位置顯示合適的內容,下面是博主對TopCamera的一些設定數值,供大家參考:
那麼這樣,我們的小地圖就做好了,我們一起來看看效果吧!圖中紅框表示出了遊戲情境和地圖中的相互對應關係。當我們移動人物的時候,地圖上的角色位置會同步更新!今天的小地圖沒有寫一行代碼啊,這時多麼給力的一件事情啊。哈哈
喜歡我請記住我的名字:秦元培,我的部落格地址是:blog.csdn.net/qinyuanpei!
轉載請註明出處,本文作者:秦元培,本文出處:http://blog.csdn.net/qinyuanpei/article/details/23628275
大家晚安!