Четверг, 28 Марта 2024, 15:52

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » AI аниматором (направление)
AI аниматором
malis1Дата: Пятница, 23 Июня 2017, 23:44 | Сообщение # 1
был не раз
Сейчас нет на сайте
Привет,писал сам АИ выходило не то что нужно решил поИскать нашел только вот мне нужно направление поменять в этом скрипте крыса нападает на игрока,нужно что бы она убегала от него ,что делать и как быть помогите прошу!)
Код
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;
            }
        }
    }
}
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » AI аниматором (направление)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг