Почему он все еще получает NullReferenceException после проверки всего в Unity?C#

Место общения программистов C#
Ответить
Anonymous
 Почему он все еще получает NullReferenceException после проверки всего в Unity?

Сообщение Anonymous »

Код выглядит так: < /p>

Код: Выделить всё

Dictionary handlerDict= new Dictionary(); // handlerDict was initialized in the beginning and poped up with values properly early on.

void Update()
{
if (obj1!= null && handlerDict.ContainsKey(obj1.tag))
{
print($"obj1.name = {obj1.name}, obj1.tag = {obj1.tag}");
print($"handlerDict[obj1.tag] = {handlerDict[obj1.tag]}, obj2= {obj2}");
handlerDict[obj1.tag].Invoke(obj2); // I got NullReferenceException here
}
}
< /code>
В консоли у меня есть бесчисленные отпечатки, потому что это в вызове метода Update (). И все в шаблоне, как это: < /p>

bj1.name = GameObjectName_xxx (клон), obj1.tag = GameObjectName_xxx < /p>
handlerdict [obj1.tag] = System.Action`1 [unityEngine.gameObject], obj2 =
gameObjectName_yyy (клон) (unityEngine.gameObject) < /p>
nullReferenceExcept Установите экземпляр
Object Classnamea+ C.B__274_9 (unityEngine.gameObject x)
(at Assets/_Scripts/xxx/xxx.cs: 4407)
< /blockquote>
Я думаю, что if 
проверка и две линии print кодов могут убедиться, что в строке Invoke
Любая помощь приветствуется! Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/794 ... g-in-unity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»