начнем, имеется примитивный AI, который юзает NawMesh и гоняется за целью с тэгом "Microb" ), если позволяет дистанция (по умолчанию 500), перестает
как только дистанция > 500. Но это не проблема
Проблема в том, что как только цель(target), съедается(destroy), то игра крашится. А почему? потому что мы имеем ссылку на объект которого нет.
Я пробовал дописывать отключение компонента(скрипт), при отсутствии объекта с тэгом "Microb", но это не помогает.
З.Ы пишу на , но пойму и на
Чистый код без костылей:
Синтаксис:
Используется 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;
}
}
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;
}
}