創作內容

2 GP

亂七八糟的_遊戲開發誌[3] 移動細節

作者:Daily│2019-01-31 19:56:09│巴幣:4│人氣:312
感謝大家的閱覽支持
我決定增加文中圖片數量
讓純粹吃瓜無法自己動手做得同學可以看得更懂一點


上期我們介紹了DailyController中以Unity內建物理引擎來驅動腳色
但目前還不完美 可以發現腳色像滑冰一樣一走出去就滑個不停
按鍵放開後也不會自動停止
在轉彎時有時候還會出現怪現象


現在我們來處理按鍵放開後不會自動停止的問題
我們可以把最大限速乘上輸入向量來解決這個問題
甚麼意思呢?
所謂的輸入向量就是我們的搖桿輸入

這是一張搖桿的示意圖
目前市面上的類比搖桿都有2個軸(未來說不定會出現第三軸)
這兩個軸剛好就可以形成一個向量
我們可以把這個向量當成控制腳色的力
把輸入向量映射到遊戲中會向下面的樣子
(注意搖桿的軸轉換成三維空間Y軸要轉成Z軸)

可以看到紅線就是我們按按鍵的XY向量和
白線是移動的velocity

稍微補充一點點Unity的按鍵輸入機制(不想看可跳過)
按鍵輸入分成類比輸入跟普通輸入
通常我們按按鈕 按鈕只會有2種狀態(按下 跟 沒按下)
不存在按一半的狀態的 這就是普通的按鍵輸入
則類比輸入就是可以知道你按了多少
(譬如你的XboxOne手把上的類比只推了一半 或是 RT 只壓了一半)
如果有玩過荒野之息或是近期其他3D遊戲 可以試著把搖桿只推一半看看

我們的鍵盤輸入全部都是普通的輸入
但Unity很好心的幫我們把某些鍵盤輸入模擬成了類比輸入
怎麼樣模擬呢? 就是按下按鈕unity會把輸入向量從0慢慢加到1
用這樣來模擬類比輸入
我們可以利用這個特性來修改我們的移動
因為當你不按鍵盤的時後輸入是0 按下後會逐漸加到1(不會超過1)
我們可以在最大限速乘上按鍵輸入 這樣當我們不按按鈕時最大速度就是0了
這樣設定也可以使我們的腳色在搖桿操作中表現出更細膩的速度變化
(因為當搖桿輸入只有一半時 腳色最大速度也只有一半)

接著解決在轉彎時的怪現象
這個怪現象是甚麼呢?
簡單來說就是"折返"
因為我們的輸入是物理仿真的
你可以想成一台車高速向前
你突然想要倒車必定要先把時速降到0之後才可以倒車

在這邊也很好解決
只要判斷輸入向量的方向是否與目前的速度相反
如果相反就把速度直接歸零
(如果你想保留折返時減速的效果也可以保留  但會強烈影響操作手感)
在這邊有一些東西要注意
這邊要判斷折返時要把X軸與Z軸分開處理 不然會有問題
而RigidBody不支援單獨修改某一軸的數字
你可以先把RigidBody.velocity 暫存起來
單獨修改暫存的速度向量
最後再把修改後的值給回RigidBody
至於判斷輸入向量的方向是否與目前的速度相反
只要倆數相成<0就表示倆數 異號(就是速度相反)

修改後就是這樣啦(注意腳色停下來瞬間的向量)

在這邊提供web試玩
請用PC 支援手把
WASD移動

下回要介紹落下及跳躍
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4278918
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:Unity(遊戲引擎)|遊戲製作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

2喜歡★q090400 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:亂七八糟的_遊戲開發誌[... 後一篇:亂七八糟的_遊戲開發誌_...

追蹤私訊切換新版閱覽

作品資料夾

yvonne40528歡迎來讀新詩ゝω・
是哪一盞清脆光點/指引我穿越一叢叢幽暗怒火/腳步並非已無朦朧/深淵的勸誘依舊格外香甜魅惑看更多我要大聲說昨天13:35


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】