Unity快速上手系列之1:拉方塊

前言

大家好。

之所以想到開這樣一個系列,是鑒於很多初學者存在這樣的問題:面對龐大而內容繁多的Unity界面,不知道哪兒是哪兒,不知道從何下手。

也因此,本系列屬於新手向,主要作用為幫助接觸Unity時間較短的同學熟悉一些組件的應用,比如某某組件該怎麼查找,組件屬性怎麼修改調用等等,通過短時間做成一個有特定功能/玩法的小項目,來迅速理解和記憶各常用組件。具體的代碼設計方面不用過度糾結,咱們的主要目的不在這裡。

閑話少敘,我們開始。

效果和主要功能展示

1.在場景中有一個機器小人(Player)在地圖上移動,上半身可以隨著滑鼠方向旋轉,下半身可以隨移動方向滾動;

2.雙手可以進行釋放拉伸技能,當拉伸技能正在進行時不能移動和旋轉;

3.當有Cube出現在雙手拉伸範圍內,則可以將其抓過來進行搬運(想像一下英雄聯盟中蒸汽機器人的Q),手裡抓住Cube時不能釋放拉伸技能,除非放下Cube;

4.每個Cube在場景中擁有尋路功能,循環繞著四個尋路點走;

放一下預覽效果:

如果布里茨的Q有這個速度那LOL根本不用玩了

過關條件:

1.每個Cube在靠近和自己顏色一樣的燈柱時,燈柱上的燈會亮,離開則會熄滅;

2.當四個燈同時亮時,視為通關;

詳細步驟

一.搭建場景:

1.創建一個空物體當我們的主角(Player),下身的黑球(Foot)展示移動功能,上身(Body)可以獨立於下身帶動雙手旋轉,雙手臂(DoubleArm)和雙手掌(DoubleHand)分開放;

2.左手(LeftHad)和右手(RightHand)都添加上TrailRenderer軌跡組件;

3.隨機創建4個Cube和4個尋路點和4根燈柱;

二.代碼實現:

1.首先,主角有三個功能,分別是旋轉,移動和釋放拉伸,所以創建了這裡三個腳本,都掛在Player上:

2.先創建ReleaseSkill釋放(拉伸)腳本,掛Player上;

(1)首先聲明一些需要用到的欄位屬性;

(2).創建一個顯示手掌運動軌跡的方法:

(3).創建一個釋放(拉伸)技能的方法,

(4).再創建一個拉伸的實現方法,展現具體實現細節,在Update里每幀調用;

(5).拿到Cube後保持讓Cube在手裡拿穩,所以再創建一個拿穩方法,在Update里調用;

(6).在Update里調用情況:

3.創建BodyRotate身體旋轉腳本,內容較少,直接全部粘貼:

4.創建主角移動類PlayerMove腳本:

(1).首先聲明一些需要用到的屬性變數:

(2).在Update里的調用:

5.Cube們需要尋路,創建尋路腳本掛每個Cube上:

6.要讓Cube靠近自己顏色的燈柱就亮燈,需要進行幾個步驟:

(1).每個Cube和自己顏色相同的尋路點設為同樣標籤;

(2).每個尋路點(空物體),添加BoxCollider組件,勾選IsTrigger:

(3).創建燈光觸髮腳本,給每個尋路點都掛上;

7.過關條件:四個燈都亮:

(1).創建一個Panel1,當通關時啟動:

(2).再創建一個Panel2,遊戲時按Esc建隨時啟用:

(3).創建一個關卡腳本,編寫通關方法:

8.小地圖製作:

(1).新建一個攝像機作為小地圖攝像機MapCamera,在Project面板創建RanderTexture;

(2),將RanderTexture拖入MapCamera的TargetTexture組件設置中,這樣MapCamera渲染的畫面就會實時出現在RanderTexture里;

(3).在UI里創建RawImage,將RanderTexture掛在它的組件設置里,Rawlmage將實時接收MapCamera渲染的圖像;

9.完成以上步驟,demo就能像上面的動態圖那樣動起來啦。至於一些錨點設定,各個物體移動速度等可憑喜好自行設定。

有任何不理解或有疑問的地方,歡迎留言討論_(:з」∠)_。

推薦閱讀:

如何與美術外包更有效率的合作
Rendering in UE4(Epic Game TA-Homam Bahnassi講座個人筆記)
2D動畫的3D體積感:AngerForce幕後故事
從玩到做:快速入行遊戲講解——遊戲誕生流程
本車十次碰撞,成績九勝一平:《火爆狂飆》與Criterion瘋狂

TAG:Unity遊戲引擎 | 遊戲開發 | 遊戲引擎 | Unity桌面環境 |