Буквально самый простой способ исправить NullReferenceExeption имеет два пути. Если у вас есть GameObject, например, с прикрепленным скриптом и переменной с именем rb (rigidbody), эта переменная начнет пустую, когда вы начнете игру. Вот почему вы получаете NullReferenceExeption, потому что на компьютере нет данных, хранящихся в этой переменной.
В качестве примера я буду использовать переменную RigidBody. Мы можем добавить данные действительно легко на самом деле несколькими способами:
rb = GetComponent<Rigidbody>();
. Эта строка кода работает лучше всего под ваши функции Start()
или Awake()
. rb = AddComponent<RigidBody>();
Дальнейшие заметки: если вы хотите, чтобы единство добавлялось компонент для вашего объекта, и вы, возможно, забыли добавить его, вы можете ввести [RequireComponent(typeof(RigidBody))]
над объявлением класса (пробел ниже всех ваших приложений). Наслаждайтесь и получайте удовольствие от игр!
Вы можете использовать их, да. Единственная проблема заключается в том, что вы должны использовать их в потоках STA, которые вы, вероятно, не можете рассчитывать на автоматическое (например, ответные потоки в ASP.NET - это MTA).
Я использую элементы управления WPF в приложении для Windows. Мне просто нужно перейти к потоку STA, прежде чем я сделаю рендеринг.
Взгляните на RenderTargetBitmap. Вы можете сделать что-то со своим компонентом WPF, затем визуализировать его как растровое изображение, а затем использовать это растровое изображение на своей странице ASP.
Я не уверен, что это лучший способ сделать это. Является ли Silverlight для вас непонятным?
Недавно я написал сообщение об аналогичном аргументе здесь .