Привет,писал сам АИ выходило не то что нужно решил поИскать нашел только вот мне нужно направление поменять в этом скрипте крыса нападает на игрока,нужно что бы она убегала от него ,что делать и как быть помогите прошу!)
Код
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class RatII : MonoBehaviour {
[Serializable]
public class Animation_Rat //подключаем наши анимации
{
[SerializeField]
private AnimationClip _idle;
[SerializeField]
private AnimationClip _walk;
[SerializeField]
private AnimationClip _run;
[SerializeField]
private AnimationClip _death;
[SerializeField]
private AnimationClip[] _attack;
}
[SerializeField] //подключаем наши параметры, которые создавали в Animatore
private float _horiz;
[SerializeField]
private float _vert;
[SerializeField]
private float _attack;
[SerializeField]
private bool _stun;
[SerializeField]
public bool _death;
private GameObject player;// наш персонаж
public int rotationSpeed; //переменная скорости поворота
public Transform target; // на этот объект будет реагировать наша крыса
private Transform myTransform; // координаты крысы
private Animator AnimRat = new Animator();
private void SetValue()
{
this.AnimRat.SetFloat("VertMov", this._vert);
this.AnimRat.SetFloat("HorizMov", this._horiz);
this.AnimRat.SetFloat("attack", this._attack);
this.AnimRat.SetBool("Idle", this._stun);
this.AnimRat.SetBool("death", this._death);
}
private void Awake()
{
this.myTransform = base.transform; //определяем текущее положение крысы
this.player = GameObject.FindGameObjectWithTag("Player"); // определяем объект на который будет реагировать крысы
this.target = player.transform;
}
void Start () {
this.AnimRat = base.GetComponent();
}
private void FixedUpdate()
{
this.SetValue();
if (this.player != null)
{
float num = Vector3.Distance(base.transform.position, this.player.transform.position); // если дистанция до персонажа будет меньше 8, то крыса будет двигаться в сторону персонажа
if (num < 8f && num > 1.2f)
{
this._attack = 0f;
this._vert = 2f;
this.rotationSpeed = 2;
this.myTransform.rotation = Quaternion.Slerp(this.myTransform.rotation, Quaternion.LookRotation(this.target.position - this.myTransform.position), (float)this.rotationSpeed * Time.deltaTime);
this._stun = false;
this.myTransform.position += this.myTransform.forward * ((float)this.rotationSpeed * Time.deltaTime);
}
if (num >= 8f) //если больше, крыса будет стоять
{
this._attack = 0f;
this._stun = true;
}
if (num <= 1.2f)
{
this._vert = 0f;
this._attack = 20f;
this._stun = false;
}
}
}
}