Re: [請益] unity2d怪物追人什麼寫法比較好
※ 引述《Neverfor (八卦蟑螂)》之銘言:
: void update內
: 1.transform.position += x變量
: y同理
: 2.transform.translate( vector * Time.deltatime * speed)
: 第一種速度都固定
: 第二種隨著向量長度大小決定速度
: 目前是用第二種方法做
: 但有時候會有一些問題
: 像怪物陷到地下
: 或者跟玩家明顯不同層的問題
: 然後距離太遠的時候會直接漂到超近
: ps : 我偵測玩家有沒有靠太近是用距離比較 上次有查到一種叫raycast的 還沒用過目前還在研究
從1和2看來,你是不需要考慮障礙物?
在不需要移動方向圓滑的情況下
2的過快移動解決方式很簡單
把vector的長度限制在一個最大值以內就好
vector = vector.normalized * Mathf.Min(kMaxSpeed, vector.magnitude);
要圓滑追縱,可以去找找steering behavior的資料,然後找追蹤(seek)這個行為
簡單來說就是把追縱邏輯移到速度上,然後用速度更新位置
steering behavior還有一些比較進階的行為
像是避開同伴(avoid)或者攔截(intercept)
raycast是用來偵測障礙物的
--
Web http://AllenChou.net
Twitter http://twitter.com/TheAllenChou
LinkedIn http://linkedin.com/in/MingLunChou
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 160.33.43.15
※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1527292560.A.F14.html
※ 編輯: cjcat2266 (160.33.43.15), 05/26/2018 07:58:13
推
05/26 14:22,
6年前
, 1F
05/26 14:22, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):