Простенький скрипт AI не работает [РЕШЕНО]

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Простенький скрипт AI не работает [РЕШЕНО]

Сообщение reimon245 23 ноя 2011, 13:13

Добрый день,я не профи а только учусь скриптописанию на c# и смотрю уроки и.т.д Начал создавать игру и сразу же почти наткнулся на проблему. В уроке есть скрипт на то чтобы куб тебя замечал,поворачивался к тебе и шел к тебе,он все это выполняет,но после того как подходит ко мне,начинает мимо меня уходить дальше,как сделать чтобы он не проходил мимо, и лучше чтобы подходил на расстояние удара и стоял так,если я отошел,то он за мной и так же вставал. В данном скрипте вроде бы все правильно,в уроке все точно так же,но куб почему то ориентируется лишь на мое начальное положение и все.

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class EnemyMove : MonoBehaviour {
       
        public Transform target;
        public int moveSpeed;
        public int rotationSpeed;
       
        private Transform myTransform;
       
        void Awake (){
                myTransform = transform;
               
        }

        void Start () {
               
                GameObject go = GameObject.FindGameObjectWithTag("Player");
                target = go.transform;
       
        }
       
        void Update () {
               
                Debug.DrawLine(target.position,myTransform.position,Color.yellow);
               
                myTransform.rotation = Quaternion.Slerp(myTransform.rotation,Quaternion.LookRotation(target.position - myTransform.position),rotationSpeed*Time.deltaTime);
               
                myTransform.position -= Vector3.forward * moveSpeed * Time.deltaTime;
                       
        }
}
 


Буду очень благодарен за помощь.
Последний раз редактировалось reimon245 24 ноя 2011, 07:29, всего редактировалось 1 раз.
reimon245
UNIт
 
Сообщения: 72
Зарегистрирован: 22 ноя 2011, 07:54

Re: Простенький скрипт AI не работает

Сообщение Guyver 23 ноя 2011, 14:28

Синтаксис:
Используется csharp
myTransform.position -= Vector3.forward * moveSpeed * Time.deltaTime;
 


тут явно сказано ... каждый апдейт вычитать из позиции объекта единичный вектор "вперёд" помноженный на скорость движения помноженный на дельта Time (чтобы плавно было)

он никого не замечает ...
он не двигается к игроку а поворачивается на его позицию ...
движение задано тупо по одной из осей .. без условия остановки и какого бы то ни было анализа ситуации вообще.
Xcombat: 3D шутер на летающих тарелках!
Аватара пользователя
Guyver
UNIверсал
 
Сообщения: 392
Зарегистрирован: 21 июл 2010, 08:04
Откуда: Челябинск

Re: Простенький скрипт AI не работает

Сообщение reimon245 23 ноя 2011, 15:46

Я видимо неправильно понимаю. Я считал что каждый кадр он смотрит где я , и идет в этот кадр по прямой в точку где я , и каждый кадр эта ситуация обновляется....Получается он только 1 раз это читает и так и идет.... Как тогда сделать правильно?
reimon245
UNIт
 
Сообщения: 72
Зарегистрирован: 22 ноя 2011, 07:54

Re: Простенький скрипт AI не работает

Сообщение seaman 23 ноя 2011, 17:27

Vector3.forward неправильно
transform.forward верно.
Укажите с какого Вы урока брали. Наверняка там не так как Вы написали, или Вы просто урок не дочитали/досмотрели.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Простенький скрипт AI не работает

Сообщение reimon245 23 ноя 2011, 17:54

Да точно! Спасибо, я ступил не заметил,спасибо огромное!
reimon245
UNIт
 
Сообщения: 72
Зарегистрирован: 22 ноя 2011, 07:54


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 19