天天看點

《Unity 5.x遊戲開發實戰》一1.5 變換和導航

本節書摘來異步社群《unity 5.x遊戲開發實戰》一書中的第1章,第1.5節,作者: alan thorn 譯者: 李華峰 責編: 胡俊英,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

到現在為止,一個地面網格已經建立好了,但是僅僅這一個遊戲對象還是很無趣的,還需要向其中添加更多的内容,例如建築物、樓梯、柱子或者更多的地面。否則,玩家在這個遊戲中就沒有能進行探索的世界了。在開始建立之前,首先要先确認現在的地面處在了整個世界的中心位置。場景中的任何一個位置都有一個唯一的坐标,這個坐标(x,y,z)值指的是距離世界中心點(原點)的距離。在檢查(inspector)面闆中可以看到目前選中對象的坐标。事實上,在unity中,一個對象的位置(position)、角度(rotation)和尺寸(scale)同屬于一個名為變換(transform)的類别。位置表示的是一個對象距離3個坐标軸的距離。角度表示一個對象繞着它的中心軸旋轉的角度。尺寸表示一個對象應該縮小到多小或者擴大到多大。預設的尺寸指的就是對象正常的大小,尺寸為2表示擴大到原來兩倍的大小,尺寸為0.5表示縮小到原來的一半,以此類推。這樣,一個對象的位置、角度、尺寸共同構成了它的變換屬性。如果想改變一個標明對象的位置,可以在x、y和z位置字段輸入新的值。例如将一個對象移動到遊戲世界的中心,就可以輸入(0,0,0),如圖1.20所示。

《Unity 5.x遊戲開發實戰》一1.5 變換和導航

如上所示,通過輸入适當的值,當然這個值要在系統許可的範圍内,就可以為對象指定準确的位置。不過,使用滑鼠來直接移動對象往往更為直覺。現在就來完成這個操作,首先添加第二個floor對象,這個floor對象的位置要遠離第一個floor對象。先從項目(project)面闆上拖曳一個floor對象到場景中,然後單擊這個新的floor場景以選中它,然後按下鍵盤上的“w”鍵,或者單擊編輯器界面頂端的變換工具圖示來切換到變換工具。變換工具允許對場景中的對象進行重新定位,如圖1.21所示。

《Unity 5.x遊戲開發實戰》一1.5 變換和導航

當選定一個遊戲對象,并且打開變換工具以後,一個辨別(gizmo)就出現在遊戲對象的中心部分,在場景(scene)頁籤中可以看到辨別(gizmo)其實是由3個不同顔色的彩色軸組成的。其中,紅顔色的軸代表x軸,綠顔色的軸代表y軸,藍顔色的軸代表z軸。如果想移動一個遊戲對象,首先要将光标懸停在這3個軸中的一個軸(或者兩個軸之間的平面)上面,然後單擊并按住滑鼠,同時向目标方向拖動。可以反複地進行這個操作,将遊戲對象移動到指定的位置。現在就用這個方法來拖動第二個floor對象,使其遠離第一個floor對象,如圖1.22所示。

《Unity 5.x遊戲開發實戰》一1.5 變換和導航

也可以使用滑鼠來完成對遊戲對象的轉動和縮放。在鍵盤上按下“e”鍵可以啟動旋轉工具,按下“r”鍵可以啟動縮放工具,或者也可以在編輯器界面的上方單擊它們對應的工具欄圖示來啟動這些工具。當工具啟動之後,一個辨別(gizmo)就出現在這個對象的中心部分,可以通過單擊和拖動滑鼠來将這個對象旋轉到指定角度,或者縮放到指定尺寸,如圖1.23所示。

《Unity 5.x遊戲開發實戰》一1.5 變換和導航

在unity中進行開發時,使用鍵盤和滑鼠對物體進行快速的移動、旋轉和縮放是非常重要的。是以,最好習慣使用鍵盤的快捷鍵來完成這些操作,而不是總用滑鼠去單擊工具欄。不過,除了要對遊戲對象進行移動、旋轉和縮放以外,可能還需要頻繁地變換自己的視角,這樣才能從不同的位置、角度和視角對這個世界進行觀察。這意味着必須要經常改變場景中的錄影機。當要看清楚一個遊戲對象時,就會需要進行放大或縮小的操作。如果想準确地将遊戲對象對齊并結合在一起,就需要改變觀察的視角。如果想完成這些操作,就需要充分地将滑鼠和鍵盤結合在一起使用。

如果想靠近或者遠離正在觀察的對象,隻需要向上或者向下滑動滑鼠滾輪,就可以實作放大或者縮小目标對象,過程如圖1.24所示。

《Unity 5.x遊戲開發實戰》一1.5 變換和導航

按住滑鼠的中鍵然後将滑鼠向适當的方向移動,如向上移動,這樣就可以将場景(scene)視圖向上移動。同樣,向另外3個方向移動滑鼠也可以将場景(scene)視圖向這3個方向移動。或者也可以在應用工具欄中(或者使用鍵盤上的q快捷鍵)激活移動工具,如圖1.25所示。當這個移動工具處于激活狀态的時候,就可以十分簡單地單擊并拖動整個場景(scene)視圖。注意,這個操作并不會改變場景的大小,而隻是沿着向左、向右或者向上、向下的方向滑動錄影機。

《Unity 5.x遊戲開發實戰》一1.5 變換和導航

有時在建構關卡時,可能會找不到所需要的對象。例如,此時錄影機可能正在關注一個與目标完全不同的地方,這個地方并不是所要單擊或者看到的。如果遇到了這種情況,必須要改變相機的視角來找到目标對象。如果将這個目标對象處在整個場景的中心,就必須不斷地進行改變位置和旋轉視圖的操作。但是如果要自動地完成這一切,可以有一種更簡單的方法,那就是從層次(hierarchy)面闆上選中這個對象的名字。然後,按下鍵盤上的“f”鍵,也可以直接在層次(hierarchy)面闆上直接輕按兩下來完成這個操作,如圖1.26所示。

《Unity 5.x遊戲開發實戰》一1.5 變換和導航

當選中了一個遊戲對象之後,可能會經常性地對這些對象進行旋轉操作,以便能從所有的重要視角來對其進行檢視,隻需要單擊滑鼠,并在拖動的同時按住鍵盤上的“alt”鍵,就可以完成視角的轉動,如圖1.27所示。

《Unity 5.x遊戲開發實戰》一1.5 變換和導航

最後,在場景(scene)視圖中使用第一人稱視角控制是十分實用的,像在玩一款第一人稱視角的遊戲一樣,這将有助于你以一種身臨其境的方式來體驗整個現場。如果想實作這個功能,可以在按下滑鼠右鍵的同時使用鍵盤上的“w”“a”“s”“d”來控制前進、後退或者左右轉動。使用滑鼠來控制頭的方向。另外,還可以在運動的同時按下“shift”鍵來提高運動的速度,如圖1.28所示。

《Unity 5.x遊戲開發實戰》一1.5 變換和導航

這裡之是以選擇對各種進行變換和導航控制的方法進行學習,就在于掌握了這些知識之後,你就可以以任何方式來定位和移動目标對象,也可以從任何的位置和角度來檢視整個世界。如果想快速地建立一個高品質的遊戲關卡,做到這一點是十分重要的。所有的這些以及一些其他的控制方式都将貫穿于這本書的場景建立和unity開發之中。

繼續閱讀