作者cjcat2266 (CJ Cat)
看板GameDesign
标题Re: [请益] unity2d怪物追人什麽写法比较好
时间Sat May 26 07:55:56 2018
※ 引述《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://webptt.com/cn.aspx?n=bbs/GameDesign/M.1527292560.A.F14.html
※ 编辑: cjcat2266 (160.33.43.15), 05/26/2018 07:58:13
1F:推 Neverfor: 晚点来试看看 谢谢~ 05/26 14:22