实现思路
在游戏中,敌人通常是可以自动在地图上巡航的,这篇文章就用一个脚本简单实现这个功能。
我使用的精灵如下所示
假设我们让敌人沿着矩形自动巡航,那么我们需要写一个小型的状态机,一共有四种状态:上,下左,右。加入我们要让敌人按照顺时针方向的矩形路径自动巡航,那么状态切换应该是 上->右->下->左 。然后我们设定一下每个方向巡航的距离,这个距离就是函数检查的次数(不是物理意义上的距离),每当函数检查一次,那么这个距离就减一,当这个距离等于0的时候我们需要切换状态,然后重新设定距离的值。
以上就是简单的自动巡航的思路,按照这个思路,你可以写出复杂的自动巡航路线。当然这种实现方式可能不是最好的,因为这是我接触到这个问题的时候想到的第一种方案。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GebulinController : MonoBehaviour
{
// 哥布林的速度
public float speed = 5;
Animator animator;
Rigidbody2D rd2D;
// Start is called before the first frame update
void Start()
{
animat