創作內容

2 GP

亂七八糟的_遊戲開發誌[7] 腳色轉向

作者:Daily│2019-02-03 19:25:05│巴幣:4│人氣:457
上回我們介紹了攝影機的實作
當然攝影機絕對沒有這麼簡單的 有很多功能我們都沒有談到
之後我還會再寫幾篇進階攝影機的內容 會介紹攝影機碰撞 鏡頭搖晃 瞄準等等

這篇先來修正上回最後提到的
"腳色不會隨攝影機轉向吧"
因為這個主題的內容可能會比較少 算是緩和一下上一篇的折磨
因為這篇抽象概念很多比較難用圖片表達 有不懂得可以留言問我

正常來說我們完遊戲 按下"前進"時
我們會希望腳色往攝影機看的方向前進
而不是腳色自身的前方 更不是世界空間的前方
紅色是我們想移動的方向 黑色的是腳色座標

所以我們要來修改 腳色控制器
修改內容不會太複雜
上次我們稍微介紹了搖桿輸入(第[3]期連結)
我們有了搖桿輸入的XY
只要把這個輸入向量稍微轉換一下就可以了

在腳色控制器中我們還要知道攝影機的相關資料(攝影機拍攝的方向)
我們可以用Camera.main.transform來取得攝影機資料
這邊要注意Camera.main.transform在unity內部其實是用 Find()方法取得攝影機的
所以請避免每幀執行他 你可以把它暫存起來

因為要向攝影機正前方移動我們要把垂直輸入的向量*攝影機的前方
也就是說
我們的輸入向量和是不符合遊戲裡面的方向的  
但單獨來看X軸與Y軸的"值"是沒問題的//這裡的值是指你案的多少的前後與左右
而攝影機機的方向在遊戲的世界空間中是正確的//攝影機的forward值是我們希望腳色前進的方向
所以就可以把X軸乗上攝影機的forward //如果X軸等於1就會回傳攝影機的forward反之亦然
這樣就可以控制腳色在世界中移動時依照攝影機的方向移動
Y軸也一樣乗上攝影機的Right 就可以讓腳色往攝影機的左右移動
再把兩個向量相加就可以完成移動向量的轉換
最後別忘了設影機有俯仰會影響移動座標 可以把修改後的輸入值的Y改成0
但這樣也會造成俯視與仰視時移動會變慢
不想要變慢可以先修改攝影機向量

這邊牽扯了很多向量運算得概念 希望你還撐得住
如果聽不懂可以留言給我 我再看看要不要單獨寫一篇文章

腳色面向
接著處理腳色面向的問題
我們會希望腳色移動時面相移動的方向
可以直接修改腳色transform.forward來改變轉向
直接把剛剛修改過的輸入向量帶入就好了(可以自己加Lerp)

最後就放個到目前為止的試玩吧!

Web試玩 (PC限定,支援手把)

WASD 空白鍵跳 滑鼠視角
L類比移動 A跳 R類比視角(XBOX手把)


好了!做到現在遊戲也漸漸成形了
雖然離完成還有很長一段路
但是我現在還是沒有決定好到底要做什麼樣的遊戲  乾脆安價好了
又想到甚麼系統或是有想要提供意見的
歡迎留言給我喔

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4282176
All rights reserved. 版權所有,保留一切權利

相關創作

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

留言共 0 篇留言

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

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

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

追蹤私訊切換新版閱覽

作品資料夾

BHSN00003q89大家
有人願意一起加入我的麥塊行列嗎?OWO看更多我要大聲說昨天13:09


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

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