Unity3D開發學習② 切割素材,設置背景,繪制地圖,圖層順序,
V大的預科作業測試太難了,先學會unity輕松一下
1.建立角色
首先找到貼圖
貼圖位置如上,在player貼圖下是player的幾種狀態的貼圖文件夾
在導入素材前應該先設置貼圖的大小,統一為16
按着ctrl單擊素材即可多選,批量設置屬性
導入角色圖片有倆種方法
- 直接拖入
- 新建Sprite再導入素材
1.直接拖入游戲視圖就可以開始后續的設置了
2.新建Sprite再拖入素材
這里新建完之后順便改名了
將素材拖入后即可在游戲視圖內看見角色,看不見的話可以設置一下圖層
上圖沒設置圖層被地圖遮擋了
然后就可以在Game視圖里面預覽
挺禿然的,這里就一直這樣了。
這里如果想要讓角色感受到重力就需要給Player加上剛體組件(Rigidbody)
選中player,點擊Add Component,在Physics 2D中選中Rigidbody 2D添加剛體組件
添加完剛體然后預覽游戲就可以看見角色能感受到重力了
2.添加碰撞器
但是這里角色只會一直往下落,所以還需要給角色和地圖設置碰撞器
首先給player添加collider,依舊是在Physcis 2D中找到Box Collider組件,點擊添加一個碰撞器
然后就可以觀察到角色附件多了一個綠色的框
這就是角色的AT力場(是碰撞器的位置
然后選中EditCollider就可以改變碰撞器大小
然后就可以設置地圖的碰撞器了
選中Tilemap組件后就可以在Tilemap中為Tilemap添加Tilemap Collider 2D組件了
然后就可以看見地圖周圍也加了綠框
然后就可以站在平台上了
而為了避免站在草上這種生草行為
應該將草這種不需要碰撞箱的地圖分另一個Tilemap繪制
此處已擦除原Tilemap中的草,然后在grid中新建Tilemap命名為grass,然后在其中繪制
再重新設置tilemap的碰撞器,就不會使草也被碰撞器包圍
角色也能站在平台上而不是被草撐住了(這個看具體需求吧)
3.角色移動
再順便加上角色移動吧
首先需要獲取左右移動的鍵位
這里可以打開unity的edit中觀察左右移動的鍵位與標識名
然后通過這個Horizontal即可獲取玩家是否輸入了左右位移鍵位
接着就是代碼部分了
新建一個C#腳本
可以在組件中添加,組件添加的js會直接出現在assets文件夾下
這里我命名為了PlayerController
然后新建一個在assets文件夾下新建一個scripts文件夾儲存腳本文件
這里應該將腳本放到scripts文件夾中方便管理
(也可以新建組件,刪掉js然后添加自己手動寫的js,腳本組件為空時直接拖入即可
然后就可以開始愉快的寫代碼了
如果正常的安裝完了所有東西,這里雙擊腳本會自動打開Vs2019進行編輯
像這樣
(在確保有一定編程的基礎下就可以開始進行方向鍵的獲取與更新角色視圖(或者說設置角色方向速度)了
首先定義倆個變量和一個方法
因為默認繼承了MonoBehavior,游戲進行時將會每幀調用update方法(查了查資料,不然實在不是很懂)
(我本意是先學着做一個2D游戲,沒打算知其所以然,所以先跟着做吧)
然后在handleMsg中就需要獲取用戶的鍵盤輸入,然后設置角色的方向速度
↓康代碼吧
然后不要急沖沖的進游戲預覽,還需要為腳本的屬性加上角色
不然會出現如上警告⚠
可以看到我們設置到腳本中的 mPlayer此時還是none,這就需要選中player對象拖入這里,然后記得設置一個速度
然后就可以在游戲預覽中看到player滾來滾去了
應為這里還需要給剛體在屬性中鎖定z軸,不然角色就會應為加速度的原因而旋轉(剎不住車
在剛體設置中找到constraints(約束)
選擇凍結Z軸旋轉即可
之后的轉向和跳躍就再等會吧