7-7 Creating A Simple 2D Game For Reinforcement Learning (3)
今天要來製作攝影機跟隨角色的功能 ,首先,我們從素材庫找到back跟middle兩個背景圖檔,並拉進場景中。 拉進場景後,你會發現背景圖將我們的主角與其他佈置都遮住了。 我們可以透過調整Z軸來解決背景與主角的遮擋問題。 由於主角與其他場景的Z軸位於0,而背景的Z軸位於0.1,所以會比較靠後。 但此時,你可能會發現,場景中仍有部分物體被遮擋。 假設,我們繼續調整Z軸,把背景的Z軸調到1,問題是否就能解決了呢? 然後繼續拓展我們的背景圖。 接著將middle的背景圖也加進來,這時會發生一個可怕的問題,middle與back的背景圖互相混淆在一起。即使你嘗試著調整Z軸數值,也一直會發生這個問題。 主因是我們的Main Camera的Projection設定為Perspective,這是在2D平面模擬3D視角所使用的攝影機種類,越遠越深的物品看起來越小,越近的物品看起來越大。由於我們現在要製作的是2D遊戲,考量到並不需要模擬3D視角的功能,所以將Projection調整為Orthographic。 關於更多Perspective與Orthographic的比較,可以參考下列影片: Perspective vs Orthographic Cameras in Unity https://www.youtube.com/watch?v=c_WVffzc6GU 此時,從遊戲畫面中,看起來是沒有問題了。使用Perspective或Orthographic都可以製作2D遊戲,如果你想要在某些畫面中模擬出3D的效果,就應該嘗試用Perspective。 再來,我們要在場景中建立一個Empty GameObject名為CameraRange,這是用來定義攝影機移動的範圍的。 替CameraRange設定Box Collider,由於Box Collider與Box Collider2D不會互相影響,所以不用擔心角色移動會受到影響。 接著,如下圖,替你的場景設定攝影機的拍攝範圍。由於原本的天空背景會擋住綠色的框框,我暫時關閉了。 到時候,我們可以使用Box Collider的bounds參數取得該範圍的最小值與最大值。 如下圖,我標示了bounds.min與bound...