Untitled

 avatar
unknown
plain_text
2 years ago
1.3 kB
6
Indexable
    public NavMeshAgent agent;

    [Header("Speed&Radius")]
    [Range(0, 100)] public float speed;
    [Range(1, 500)] public float walkRadius;
    private bool isWandering = false;
    public GameObject NavSphere;

    [Header("Scripts")]
    [SerializeField]
    public KnifeController KnifeController;
    [SerializeField]
    public ReceiveDamageBAD ReceiveDamageBAD;


    public void Start()
    {
        agent = GetComponent<NavMeshAgent>();
        if(agent != null && KnifeController.currentTarget == null)
        {
            agent.speed = speed;
            agent.SetDestination(RandomNavMeshLocation());
        }
    }

    public void Update()
    {
        if (agent != null && agent.remainingDistance <= agent.stoppingDistance && KnifeController.currentTarget == null)
        {
            agent.SetDestination(RandomNavMeshLocation());
        }
    }

    public Vector3 RandomNavMeshLocation()
    {
        Vector3 finalPosition = Vector3.zero;
        Vector3 randomPosition =Random.insideUnitSphere * walkRadius;
        randomPosition += transform.position;

        if(NavMesh.SamplePosition(randomPosition, out NavMeshHit hit, walkRadius, 1))
        {
            finalPosition = hit.position;
        }
        return finalPosition;
    }
Editor is loading...