Понедельник, 23 Декабря 2024, 21:20

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
NavMeshAgent ошибка, код с документации [РЕШЕНО]
alexsilentДата: Четверг, 17 Августа 2017, 14:11 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
У меня выходит у NavMeshAgent ошибка.
"NullReferenceException: Object reference not set to an instance of an object
UnityEngine.AI.NavMeshAgent.CalculatePath (Vector3 targetPosition, UnityEngine.AI.NavMeshPath path) (at C:/buildslave/unity/build/artifacts/generated/common/modules/AI/NavMeshAgentBindings.gen.cs:302)
testNavi.Start () (at Assets/a MY SCRIPTS/oth/testNavi.js:8)"

Пишу код на ява скрипте, и скопировал это с документации.

Код

   var target: Transform;

    private var agent: NavMeshAgent;

    function Start () {
        agent = GetComponent.<NavMeshAgent>();
        var path: NavMeshPath;
        agent.CalculatePath(target.position, path);

        if (path.status == NavMeshPathStatus.PathPartial) {
            // The target cannot be reached...
        }
    }


Во первых я всегда добавляю #pragma strict
и он зачем, то изменил все строки с надписью agent = GetComponent.<NavMeshAgent>();
на строку agent = GetComponent.<UnityEngine.AI.NavMeshAgent>();

Во вторых, несмотря на то что указана цель, он будто бы не видит, или я незнаю что он за ошибку вообще показывает.

Погуглил. и Для Си Шарпа советуют добавить строку в начало кода:
Код

using UnityEngine.AI;

но как быть с Ява Скриптом?


Сообщение отредактировал alexsilent - Четверг, 17 Августа 2017, 15:24
zhuravelsvДата: Четверг, 17 Августа 2017, 15:20 | Сообщение # 2
почетный гость
Сейчас нет на сайте
возможно "target" у тебя null, "path" у тебя тоже null, на это как раз и указывает сообщение в исключении.
Судя по офф докам "path" тебе нужно инициализировать перед передачей в функцию.

CalculatePath


Разработка программного обеспечения для ОС Windows и Android, клиент-серверные, облачные приложения, работа с БД и многое другое - https://www.weblancer.net/users/zhuravelsv/
alexsilentДата: Четверг, 17 Августа 2017, 15:23 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
zhuravelsv, таргет была инициирована сразу в переменных

Нашел проблему.

По каким-то неведомым причинам, вот эта строка не правильная в документации,
Код
var path: NavMeshPath;

ее нужно было заменить на вот такую:
Код
var path: UnityEngine.AI.NavMeshPath = new UnityEngine.AI.NavMeshPath();


то есть другими словами, надо было еще инициировать путь, чтобы он не был null


Сообщение отредактировал alexsilent - Четверг, 17 Августа 2017, 15:25
  • Страница 1 из 1
  • 1
Поиск:

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