Unity製作RPG遊戲 按鍵輸入與處理

2021-10-05 09:55:44 字數 1574 閱讀 5230

對於乙個rpg遊戲,乙個無法逃避的問題就是怎樣獲取輸入並相應轉化為適當的角色行為,我們都知道通過input方法獲取按鍵輸入資訊,並且可以通過rigidbody給角色速度,但是我們需要對按鍵的資料平滑,同時需要根據按鍵改變角色的方向等,只有這樣才可以讓我們的角色看起來更加靈活。下面部分我將介紹這個過程。

一、獲取按鍵輸入

先設計按鍵,在inspector留下字段方便更改

tip1:獲取輸入的方式

通過這樣的檢測判斷,可以得到向前(y方向)和向右(x方向)的速度,這樣設計的好處是可以很快速的完成四個方向速度的計算以及速度的抵消(比如同時按下up和down,角色不會有y方向的速度),這樣的可控性比較高,但是這樣的獲取的速度大小只有0和1兩種值,因而還需要做插值。

tip2:對輸入的速度做平滑插值

這裡重新定義了兩個速度,v_y和v_x目的是用他們來承載平滑之後的結果,這裡使用的是mathf中的smoothdamp函式來完成平滑插值的效果,使速度向目標速度以0.2f沒幀的速度線性移動,注意這裡的引用引數的目的是在每次計算後呼叫上次計算的值,所以不能定義成區域性變數(否則會運動的越來越慢,詳情可以看這個文章當然使用mathf中的lerp函式也可以實現這個效果,但是對第三個引數t每幀要有改變。

tip3:方形轉圓

速度的插值得到了,但是注意我們y和x方向速度取值範圍都是0-1,那麼45°的方向速度是根號二大於1,這樣就不科學了(斜著走更快的問題在以前的很多老遊戲中會出現),所以要對x和y進行變換,也就是進行橢圓對映,對xy座標進行如下變化

這樣就得到了正確的值

tip4:計算速度的標量大小和速度的方向

計算這兩值有什麼意義呢?速度的標量大小用於給物體的角色施加朝前的速度,而速度的向量用於調整角色的朝向,這是兩個十分重要的引數,之前的計算的目的就是為了得到這兩個值。

至此,playerinput指令碼的基本引數已經設計完了,下面就是結合動畫控制器,來實現運動。

rpg人物製作軟體 RPG遊戲製作教程

專案一 預設素材使用教程 任務認識 rpg與 rpg maker xp 1.rpg 簡述rpg 即角色扮演遊戲 英文全稱 是role playing game 是一種遊戲。在遊戲中,玩 家扮演虛擬世界中的乙個或者幾個特定角色在特定場景下進行遊戲。角色根據不同的遊戲情 節和統計資料 例如力量 靈敏度 ...

unity3d製作RPG遊戲系列(1) 介紹

最近閒來無事,玩了幾天的u3d,做了個簡單的rpg遊戲,打算把製作的過程還有一些坑從頭到尾記錄一下,本身做遊戲只是個興趣愛好,有些東西不會太深究。如有不當,歡迎指正。一 簡介 做遊戲的念頭是玩了 黑暗史詩 之後生出來的,剛好前幾天做完電影資源檢索之後愁沒事幹,就順帶系統學了遍c 基礎,然後開啟了封塵...

unity3d製作RPG遊戲系列(2) 地形製作

製作3d遊戲的第一步是建立地形系統,這裡我直接用u3d內建的地形系統建立的,雖然不算漂亮,但基本的意思還是有的。首先我們要確定地形的大致樣子,比較好的做法是先用地圖作為紋理覆蓋在地形上,然後照著這個地圖畫地形就可以,例如我選的下面這個地形地圖 首先要新增一張紋理選擇地圖並且將大小調整成和地形大小一樣...