Unity初级坦克大战游戏实现(Battle Tank)带工程源码资源包(二)
記學習Unity后第三次做游戲
???????接著上會繼續講,上回講到了資源和場景的預處理方法,這次要往場景里面添加元素及創建預制體,上次已經調整好了畫布和攝像機在場景中的位置,以及各物體在場景中的UI大小,這次就可以準備預制體的制作了。
???????首先是地圖有關的,一張張地拖到Hierarchy面板當中去,記住是一張張的拖,,那些需要有動畫效果的先不要拖,暫時先擱置,如果幾張一起拖的話你會發現創建了一個新的文件要你重命名,這個操作接下來講。拖好后把這些都選中,把他們的Transform組件都Reset一下,這時如果你的地圖設置為20*20的,并且分辨率也設置過了,那么需要調整Transform組件的Scale縮放來適配你的分辨率和地圖,直到大小都合適,地圖長寬剛好可以放下20個墻,這樣就可以了,還有玩家和敵人的UI大小要比墻稍微小一點,這樣過縫隙的時候可以好過一點。
???????設置好上面那項再進行拖拽會省事很多,不然一般還要一點一點對齊。
???????現在再來設置那些有動畫效果的游戲物體,比如資源中的river,有兩張被分割好的圖片,直接把那兩張圖片選中拖入Hierarchy面板中,出現創造窗口時,把文件名改為River,創建Animation Animation Controller文件夾,文件保存在Animation文件夾下,資源目錄下就會多出兩個文件夾,另外Hierarchy下也會多出一個游戲物體,物體上會有Sprite Render精靈渲染器和Animator動畫機兩個組件,這時的river就變成動畫了,直接做成預制體就可以用了。設置播放速度的話是在Window=>Animation=>Animator里面設置,點擊打開窗口里面的River,右邊有Speed的選項修改速度,默認為1。當然,這樣添加動畫只適用于單個動畫操作,例如玩家和敵人的動畫還是需要另行添加的。
???????現在就要進行分析了,墻可以被摧毀,阻擋玩家前進,子彈碰撞后要銷毀,所以墻要添加Box Collider2D碰撞器;草叢可以穿過,且玩家進入會被隱藏,墻的優先級要比玩家高(在屬性面板中的精靈渲染器中,叫層級中的順序:Order in Layer,調高就是優先級高,在上層顯示);玩家和敵人與地圖的物體都會碰撞,且玩家移動會發出聲音,但是只有collider的話是不能碰撞到的,需要添加剛體組件Rigidbody2D和聲音Audio Source組件;等等之類都是相同的,在Inspector面板里每個物體還可以添加Tag來便于區分,也方便代碼的撰寫。
???????這樣差不多地圖的邏輯也弄好了,畫面右邊要放置一個帶collider的物體來作為UI面板,上面放置一些Text來存放玩家生命之類的。玩家的動畫播放需要在玩家的身上添加四個動畫效果,分別是上下左右,分別以拖拽的方法添加四個Animation后,打開動畫機將四個創建好的Animation都拖入到動畫機里面,動畫機的入口是向上的動畫,因為生成玩家的第一時間玩家就是向上的狀態,然后右鍵Any State加聯系到四個動畫機上,因為有可能從上突然變到下了,就是從任何狀態都有可能變到其他狀態,然后在左邊面板添加跳轉條件,因為代碼是有Horizontal和Vertical共同控制移動,所以加入的條件便是h和v的變化,h>0就轉向右邊,v>0就轉向上邊,左邊添加完就點擊連線,Conditions下面看情況添加h和v,然后設置less0或greater0。
???????點擊連線后的右邊設置一定要像我這樣設置!,不然動畫播放后會出現奇怪的事情,具體可以自己試驗下。
???????到這里場景的搭建和素材的準備基本已經充分了,剩下的就是代碼邏輯部分了,這篇文章的內容就到這里了,到這期結束之后我會把工程源碼和資源包都以網盤鏈接發給大家的,謝謝觀看,有不對的請大家提出,多多擔待。
總結
以上是生活随笔為你收集整理的Unity初级坦克大战游戏实现(Battle Tank)带工程源码资源包(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: encapsulation java_J
- 下一篇: python的socket连接不上_Py