嗨嗨大家好 我是Daily
不知道為甚麼開始寫巴哈小屋文章了
今後會不定期更新小屋文章
內容主要放在自己製作遊戲的心得
歡迎各位給留言給我意見
話說是要寫遊戲開發誌
但我連要做甚麼遊戲都沒有決定呢!(((゚Д゚;)))
目前在想要個東方同人遊戲 或是其他拉
開發工具主要是使用爛大街的Unity
---------------------------------------------------
主要還是先來搞個腳色控制器吧
unity內建的腳色控制器非常陽春 (看看人家隔壁棚UE4
要有好得操作手感大概都要自己再寫過
簡單介紹下
所謂的腳色控制器就是負責處理玩家的輸入
說簡單一點 就是一段處理你按鍵盤後要幹嘛的程式碼
這段程式碼會知到目前腳色的一些狀態(like 站著 跑步 摔落中等等...
然後再做出反應(摔落中案跳會沒反應拉 跑步中鬆開按鍵會停下等等...
首先我來處理判斷"腳色是否站在地板上"的判定吧!
通常我們會利用物理引擎提供的碰撞檢測來檢測腳色是否站在地面上
而用的其實也不是普通的碰撞檢測這麼簡單
而是一個叫做"光線投射"(RayCast)的功能
簡單來說可以想像成你拿一支雷射筆射出一條雷射向地板下射
雷射筆會射在地板上出現一個光點
RayCast厲害得是你可以設定這條光要射多遠
他還會告訴你這條光他打到甚麼物體有沒有打到
連打中的座標都知道 (厲害ㄅ
這樣就可以知道腳色距離地面多遠 有沒有碰到地面了(多方便阿!
但是
RayCast也會造成一些問題
例如:
大家可能在某些遊戲看過類似的畫面
當腳色太靠近邊緣會造成判定上的問題
腳色的碰撞明明還在平台上但是RayCast卻打不到東西
這樣就會造成問題
如果要解決問題就要用RayCast的加強版"SphereCast"
這個SphereCast其實原理跟RayCast一樣
但不同之處是SphereCast投射的不是細細的光線 而是一顆又大又粗的球
因為是發射出去把球的軌跡畫出來就會像一個膠囊狀
畫得好醜(´・_・`)
這樣就不會漏判定拉
內容也差不多了這篇先這樣ㄅ