Re: [请益] unity2d怪物追人什么写法比较好

楼主: cjcat2266 (CJ Cat)   2018-05-26 07:55:56
※ 引述《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是用来侦测障碍物的
作者: Neverfor (八卦蟑螂)   2018-05-26 14:22:00
晚点来试看看 谢谢~

Links booklink

Contact Us: admin [ a t ] ucptt.com