Проблема с "пропажей" цели.

Форум для всего, что связано с ИИ.

Проблема с "пропажей" цели.

Сообщение triangle3-14 14 мар 2014, 20:24

Итак, всем доброго времени суток, скажу сразу, Я в программировании не силен, но прочитать референс и прогуглить какие-нибудь решения своей проблемы могу. Но я ищу совета:
начнем, имеется примитивный AI, который юзает NawMesh и гоняется за целью с тэгом "Microb" ), если позволяет дистанция (по умолчанию 500), перестает
как только дистанция > 500. Но это не проблема

Проблема в том, что как только цель(target), съедается(destroy), то игра крашится. А почему? потому что мы имеем ссылку на объект которого нет.
Я пробовал дописывать отключение компонента(скрипт), при отсутствии объекта с тэгом "Microb", но это не помогает.

З.Ы пишу на (js), но пойму и на (c#)

Чистый код без костылей:
Синтаксис:
Используется javascript
  var seeDistance : float = 500f;
var attackDistance : float = 2f;
private var nav : NavMeshAgent;
public var target : Transform;
private var myPosition : Transform;

function Start(){
target = GameObject.FindWithTag("Microb").transform;
nav = GetComponent(NavMeshAgent);
}

function Update(){
if(target !== null)
        {
                if(Vector3.Distance(transform.position, target.transform.position) < seeDistance)
                        {
                                if(Vector3.Distance(transform.position, target.transform.position) < attackDistance)
                                {
                                nav.enabled = true;
                                nav.SetDestination(target.position);
                                }
                                else
                                {
                                        nav.enabled = false;
                                }
                        }
        }
        else
        {
                nav.enabled = false;
        }
}  
triangle3-14
UNец
 
Сообщения: 10
Зарегистрирован: 12 мар 2014, 18:05

Re: Проблема с "пропажей" цели.

Сообщение trololoid 14 мар 2014, 20:58

Что-нибудь пишет в лог?)
Аватара пользователя
trololoid
Старожил
 
Сообщения: 712
Зарегистрирован: 15 сен 2011, 19:18
Откуда: Туапсе, Краснодарский край, Россия

Re: Проблема с "пропажей" цели.

Сообщение triangle3-14 14 мар 2014, 21:41

MissingReferenceException: The object of type 'Transform' has been destroyed but you are still trying to access it. //
Your script should either check if it is null or you should not destroy the object. // Ты ищешь, то, что было удалено
UnityEngine.Component.get_transform () (at C:/BuildAgent/work/d3d49558e4d408f4/artifacts/EditorGenerated/UnityEngineComponent.cs:19)

ссылается на эту строку: Изображение
triangle3-14
UNец
 
Сообщения: 10
Зарегистрирован: 12 мар 2014, 18:05

Re: Проблема с "пропажей" цели.

Сообщение beatlecore 14 мар 2014, 23:02

у вас таргет уничтожается
Аватара пользователя
beatlecore
Старожил
 
Сообщения: 964
Зарегистрирован: 05 фев 2013, 21:26
Откуда: Sun Crimea

Re: Проблема с "пропажей" цели.

Сообщение 2rusbekov 15 мар 2014, 12:49

Может хотя бы бульку завести, если таргет съели то не гоняться за ним?
if(target !== null) //Тип таргета Трансформ. Проверяй без типа просто if(target != null)
Still alive...
Аватара пользователя
2rusbekov
Адепт
 
Сообщения: 1409
Зарегистрирован: 06 апр 2012, 12:57
Откуда: Бишкек


Вернуться в Искуственный Интеллект

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3