Буквально самый простой способ исправить NullReferenceExeption имеет два пути. Если у вас есть GameObject, например, с прикрепленным скриптом и переменной с именем rb (rigidbody), эта переменная начнет пустую, когда вы начнете игру. Вот почему вы получаете NullReferenceExeption, потому что на компьютере нет данных, хранящихся в этой переменной.
В качестве примера я буду использовать переменную RigidBody. Мы можем добавить данные действительно легко на самом деле несколькими способами:
rb = GetComponent<Rigidbody>();
. Эта строка кода работает лучше всего под ваши функции Start()
или Awake()
. rb = AddComponent<RigidBody>();
Дальнейшие заметки: если вы хотите, чтобы единство добавлялось компонент для вашего объекта, и вы, возможно, забыли добавить его, вы можете ввести [RequireComponent(typeof(RigidBody))]
над объявлением класса (пробел ниже всех ваших приложений). Наслаждайтесь и получайте удовольствие от игр!
Ответ:
start /wait [Your Command]
, а затем
echo %errorlevel%
, чтобы извлечь возвращаемое значение.
-
И поскольку мне нравится писать пакетные файлы ... (это моя проблема ...)
@echo off echo Waiting for program to exit... start /wait %* echo Return code was %errorlevel%
Сохраните его где-нибудь с расширение .bat. Запустите его с командной строкой программы, которую вы хотите запустить, в качестве аргументов. Он выполнит команду, которую вы ей дали, дождитесь ее окончания, а затем распечатайте возвращаемое значение.
Вы также можете жестко закодировать программу, заменив строку запуска / ожидания вашим приложением, потому что docs (start /?) говорят:
При выполнении приложения, которое является 32-разрядным графическим приложением, CMD.EXE не ждет завершения приложения перед возвращением в командную строку. Это новое поведение НЕ происходит, если выполняется в командном скрипте.
blockquote>CMD будет ждать winform, если он вызван из сценария независимо от того, включены ли расширения команд.
Подробнее об использовании директивы ERRORLEVEL
см. в этой статье Роб ван дер Вуде .