日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Unity入门计划】playground项目:2D飞船移动小游戏

發布時間:2024/1/18 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Unity入门计划】playground项目:2D飞船移动小游戏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

跟學的Unity教程

我的Unity版本

1 導入playground項目資源

2 創建新場景

3?創建玩家飛船

3.1 調整大小位置

3.2 調整Game視圖的背景

3.3 Inspector -> 重命名&更改Tag

關于Unity的標簽(Tag)

4 飛船移動

5 添加障礙物和碰撞

5.1 添加障礙物

5.2 添加碰撞->障礙物

添加ModifyHealth腳本組件

添加2D剛體組件

5.3?添加碰撞 -> 飛船

6 添加減血效果

6.1 添加用戶交互界面

6.2 實現血量減少操作

7 添加背景圖

7.1 調整圖層順序

8 添加預制件

9 添加星星以獲得分數

9.1 加入星星

9.2 加入獲取分數組件

10 分組便于管理


跟學的Unity教程

【unity2022入門】整合Unity官方教程設計最佳學習路線,Unity精講入門系列,持續更新中...._嗶哩嗶哩_bilibili

我的Unity版本

2021.3.6f1c1

1 導入playground項目資源

進入assetstoreUnity Asset Store - The Best Assets for Game Making

搜索Unity playground保存,再從Unity導入Assert即可。

palyground項目是官方給新手推薦的入門視頻,預設了一個封裝過的開發環境,讓我們很好的上手,來熟悉游戲概念和制作流程,比較好操作!

2 創建新場景

Assets?-> Scene 右鍵-> Create -> Scene,新建一個場景。

點一下名稱就可以重命名了,命名為PlaneAsteroid

雙擊這個Scene對象, 右側的Hierarchy窗口就會顯示出當前的場景對象。

引擎會默認同時創建:玩家攝像頭Main Camera和方向光Directional Light兩個對象。

3?創建玩家飛船

在這個“宇宙飛船”的小游戲中,玩家操作的是飛船,因此這個游戲的玩家對象就是飛船了!

我們就用已經導入的playground項目里的資源就行。

Assets -> Images -> Spaceships,選擇喜歡的飛船,添加到場景中,添加到場景有兩種方式:

  • 直接拖到Scene視圖中,這個方法可以直接實現對象在Scene中的定位
  • 拖到Hierarchy窗口中,這個方法可以實現在加入的同時創建父子關系

3.1 調整大小位置

初始的飛船太大了,在Game視圖中點擊運行的話,會是這樣

于是就要給它縮小一點,?退出運行狀態? -> 選中SpaceshipRed對象 -> R鍵,實現縮放。

同時,如果想要精確的縮放,右側Inspector窗口 -> Transform層級下的Scale,輸入數值即可。

還可以打開Scale的鎖定按鈕,實現XYZ三向等比縮放,我這里選擇的是縮放到0.2.

可以再在Game視圖運行查看,大小就舒服一點了。?

3.2 調整Game視圖的背景

教程里UP游戲視圖的背景色跟我不太一樣,我也想要調成純色的,找了一下發現是在玩家攝像機Main Camera的Inspector中更改。

Main Camera -> Inspector -> Camera -> Clear Flags&Background,可以看到初始是用的天空盒,這里改成Solid Color并把顏色設置成黑色。?

?

3.3 Inspector -> 重命名&更改Tag

?根據教程,在Inspector窗口更改飛船名字 -> ship,在Hierarchy窗口中名字也會自動同步了。

關于Unity的標簽(Tag)

unity官方:標簽 - Unity 手冊

  • 在Unity里,Tag是分配給一個或多個游戲對象的參考詞,起到標識、區分的作用;
  • 同一類的模型,可以設置成統一的標簽;
  • 查找物體就可以按標簽進行查找了;

其余的比如代碼怎么寫的,以后再說,這里先給我們的飛船物體給個Player的Tag。

4 飛船移動

直接用playground項目里寫好的Move腳本就可以,點開可以在右側的Inspector查看代碼。

那么怎么把腳本賦給我們的飛船呢?有兩種方式:

  • 外行的一種方式——把Move腳本拖拽到ship的Inspector窗口里;
  • 比較建議的方式——從ship的Inspcetor窗口的Add Component添加

?添加之后,可以看到屬性里多了一個 Rigidbody 2D 和一個 Move With Arrows,對于2D剛體組件Rigidbody 2D我進行了初步的學習總結:Unity學習-2D剛體Rigidbody 2D

另一個Move With Arrows是編程創建的一個通過鍵盤控制游戲對象的一個組件。

5 添加障礙物和碰撞

5.1 添加障礙物

Assets -> Images -> Asteroids,選擇小行星加入Scene中,并調整大小。??????

5.2 添加碰撞->障礙物

添加ModifyHealth腳本組件

playground項目中已經給我們打包好了一個更改血量的腳本組件。

Assets -> Scripts -> Attributes -> ModifyHealthAttribute

通過Add Component給剛剛的障礙物添加這個腳本組件,加入時我們需要選擇:

這個組件需要添加一個2D碰撞體(Collider 2D)來實現碰撞,這里需要選擇碰撞物的類型,因為我們的障礙物——小行星是不規則的物體,這里可以選擇polygon

關于2D碰撞體,可以看我另一篇介紹的博客:Unity學習-2D碰撞體Collider 2D_flashinggg的博客

可以看到,這個封裝好的組件包含了:

  • Modify Health組件——實現飛機碰到它之后掉血的操作

?

  • Polygon Collider 2D 2D碰撞體——要想實現碰撞檢測,飛機和隕石都應該是個碰撞體,因此需要給隕石也加上一個碰撞體組件,注意,這里不能是觸發器,因此需要去掉Is Trigger的復選框;

?

添加2D剛體組件

我們還想實現隕石被碰撞后有點小移動的效果,因此還要給隕石一個Rigidbody 2D的2D剛體組件,并適當的調整剛體的參數值,嗎,模擬真實效果。

5.3?添加碰撞 -> 飛船

上面也提到了,想要實現碰撞必須二者都是碰撞體,因此還需要給飛船也添加一個Polygon Coliider 2D組件。

6 添加減血效果

6.1 添加用戶交互界面

playground項目也封裝好了這樣一個用戶交互界面的組件,搜索interface找到UserInterface組件拖入右側的Hierarchy窗口即可。?

?

6.2 實現血量減少操作

血量控制是以下兩個部分共同完成的

  • 障礙物擁有的Modify Health——碰撞后改變血量

  • 飛船自身血量,需要添加一個Health System組件以設定初始生命值

?

?

?以上都完成后,移動飛船當碰撞到障礙物隕石后,左上角就會減少生命值。

7 添加背景圖

依舊是用項目提供的圖,images -> Backgrounds,把Space拖入Hierarchy就行。

但是需要修改圖的尺寸以及背景圖、飛機、障礙物的圖層順序,避免出現遮擋。

7.1 調整圖層順序

圖層順序在每個對象的Sprite Renderer中修改,我的unity2021.3版本中可以直接修改layer的順序來調整:

  • BG_Space -> 0
  • ship&Asteroid2 -> 1?

就可以避免背景遮擋我們的飛船和障礙物了。

7.2 調整背景尺寸

這里尺寸設置為

?

最終效果:

8 添加預制件

由于游戲不只有一個障礙物,還會添加進多個障礙物,但是障礙物的一系列屬性都應該是一樣的,這時候就需要用到unity里的預制件,就是一個可重復使用的資源模板

關于預制件的創建和使用:Unity學習-預制件 Prefab_flashinggg的博客

添加了幾個障礙物后,調整了一下大小和樣式,結果如圖:

9 添加星星以獲得分數

這是游戲的最后一部分,需要加入可以”吃掉“且”吃掉“后獲得分數的功能。

9.1 加入星星

Project窗口搜索star,并拖入Hierarchy窗口?

還需要修改Star的圖層順序,Order in Layer改成1即可。

9.2 加入獲取分數組件

仍舊是Star的Add Component -> 搜索Collectable

加入后可以發現,同步需加入一個碰撞體組件,選擇polygon就行。

注意,這里的Polygon Collider 2D的Is Trigger需要勾選上,這里就能達到“碰到星星并吃掉”的效果。

Collectable腳本中上述內容就是實現:飛機碰到星星后 -> score++ -> 星星消失,的效果,具體編寫之后會進行C#的學習。

10 分組便于管理

操作部分就結束了!挺簡單的,最后可以把同類別的對象分組,便于管理。


結束了第一個Unity的練習,繼續努力!

總結

以上是生活随笔為你收集整理的【Unity入门计划】playground项目:2D飞船移动小游戏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。