请问2d俯视角,敌人追踪主角,敌人会重叠在一起怎么解决



  • 请问2d俯视角,敌人追踪主角,敌人会重叠在一起怎么解决



  • 敌人通过 移动到对象 这个动作追踪主角,但敌人移动后会重叠在一起,怎么解决



  • @Yamls 最简单粗暴的做法是给他们加上刚体能力和一个移动能力(例如八方向移动)让他们互相无法穿过彼此,但是大概率效果是比较差的,比较好的互相挤开效果要用物理能力,但是移动控制会麻烦许多,不用物理能力自身的动作来控制移动而是用其他能力控制动画,由于两个能力互相独立运行,综合出现的结果就会很怪。我自己做的话,一般不严格的要求敌人完全不重叠,而是想办法让它们尽量错开就行,所以我会让敌人的终点不固定在主角的位置点上,而是扩大成一个范围,也就是把终点定在主角坐标加上一个负值到正值的随机数,然后就是敌人的速度做一个小范围的随机,不设计成固定值,这样虽然主角遛敌人的时候还是可能会出现重叠的情况,但不会很长时间都处于一个完全重叠的情况,而是会有一定程度的错开,当然,实际上会做得再复杂一点点,不确保对你的情况有用,就是提供一个自己的思路。



  • 感谢,但因为碰撞检测重叠后会出bug,所以还是尽量让他们做到完全不重叠,或者说你有能获取到同一同类组里相同精灵的不同实例坐标的方法嘛



  • @Yamls 很好拿,用遍历实例来拿就好,但怎么用才是问题



  • 可以详细说下如何选中嘛,如果同类组里有2个或更多精灵生成了很多的实例,怎么选中其中距离小于一定值的实例呢,谢谢!



  • @Yamls 新增一个同类组,同类组内的对象也还都是原同类组中的那些对象,这个新增的同类尊纯用来作为判断逻辑,如果距离的判断值是固定的,给原同类组加一个视线能力,然后原同类组使用条件,新同类组在视线内时,再加一个系统条件,遍历循环原同类组,这两个条件结合下,后续动作和子事件操作的就都是距离与其他实例在一定值以内的实例了。



  • 谢谢,该如何遍历循环原同类组呢,系统条件里的这些选中实例不是很会,这一套逻辑也许有事件图可以更好的理解



  • @Yamls 系统组件里有个条件叫遍历循环,用那个就行


登录后回复