Ulyp
> Нет. Но без этой строчки Debug.Log показывает Null.
Ахахахахахахахахаха
Ну, как предположение. Если в проекте ни разу не использовалась
GetComponent<Rigidbody>();
то Debug.Log показывает Null.
Это здорово напоминает инициацию.
Ulyp
> Ну, как предположение.
Ну вообще как бы ригибоди и подгрузка спрайтов это вещи из разных параллельных вселенных которые не пересекаются.
Даже не могу представить что такое надо было сделать, чтобы кэширование ригибоди подгружало спрайт))))
Свойство name обычно хранит имя объекта (которое в инспекторе в верхней строчке задаётся). Ты объявил локальную переменную с таким же именем. Возможно, из-за этого происходит неопределённое поведение, и значение берётся то из свойства, то из локальной переменной.
В теории должна использоваться всегда локальная переменная, но мало ли что там у тебя происходит на практике. В любом случае, называть локальные переменные так же как публичные свойства - плохой тон, и этого стоит избегать.
В общем-то, использовать Resources для загрузки спрайтов - тоже плохой тон, используй Addressable Assets
BooTheJudge
> В общем-то, использовать Resources для загрузки спрайтов - тоже плохой тон,
> используй Addressable Assets
Addressable Assets
а "плохой тон" потому что Addressable Assets завезли? :)
(всё что выходит из моды - "плохой тон")
Такое чувство, что механизм построен на основе базовых Unity Ресурсов + какие-то дополнения в редактор.
Самое тревожное что вся документация исписна: "теперь вам нужно все списки ресурсов обновлять ручками, индивидуально для каждой системы".
Спрайт в Юнити - просто информация где на текстуре он находится. Реальный способ загрузить спрайт подобным образом - это завернуть его в поле ScriptableObject, и грузить уже этот объект. В своё время несколько часов потратил на эту проблему.
Вообще-то в итоге я тоже сделал с помощью ScriptableObject. Хорошая вещь!