2015-07-04 6 views
0

Это сводит меня с ума. Я работаю с Unity3d ver5 и имею сцену с MainCamera в (0,0, -10) и спрайт под названием BackGround at (0,0,0). Как вращение, так и масштаб (0,0,0) & (1,1,1) соответственно. У меня есть очень простой скрипт называется BackGround.js присоединенного к спрайту это простое и прямой:Попытка изменить изображение спрайта, но не повезло ... Что я делаю неправильно?

function Start() { 
    var spr = GetComponent.<SpriteRenderer>(); 
    spr.sprite = Resources.Load("bg") as Sprite; 
    Debug.Log(spr.sprite.ToString) 
} 

Б.Г. является PNG изображения, расположенное в корневой папке Assets.

Что я хочу достичь, так это возможность выбрать определенное изображение для использования в качестве спрайта BackGround с помощью этого скрипта, то есть я запускаю спрайт BackGround с помощью Sprite: None, а затем загружаю изображение с помощью скрипта.

Это не работает, и я заканчиваю голубым пустым экраном, когда я запускаю его. Более того, Debug.Log показывает следующее: NullReferenceException: было найдено нулевое значение, где требовался экземпляр объекта.

Что я здесь делаю неправильно? Благодарю.

+0

Прежде всего, PNG должен находиться в папке с именем «Ресурсы» (вложенная папка «Активы»), иначе она недоступна при вызове Resource.Load. И вы установили его как спрайт в инспекторе? – Bart

+0

Прежде всего, я хотел бы поблагодарить вас, ребята, за вашу помощь. Я создал папку и переместил bg в эту папку и убедился, что она настроена на спрайт и не загружается, попытается добавить скриншот для текущей ситуации. @ Mihai-Andrei Dinculescu @ hades2510 – TDEgypt

+0

Вот скриншот : https://dl.dropboxusercontent.com/u/47430002/Screen%20Shot%202015-07-05%20at%2012.58.34%20AM.png – TDEgypt

ответ

0

Я нашел решение для этого.

spr.sprite = Resources.Load ("bg") в качестве спрайта;

следует изменить на: spr.sprite = Resources.Load ("bg", typeof (Sprite)) в качестве спрайта;

Теперь работает как шарм!

0

Для вашего ресурса для загрузки через Resources.Load ваш актив должен быть помещен под папку с именем Resources, это не является обязательным для родителя папки, чтобы быть Assets, но он должен быть назван Resources.

Возможно, у вас может быть папка с несколькими Resources, и Unity будет искать все, чтобы попытаться найти ваш ресурс. Это важно, потому что у вас может быть один и тот же путь для ресурса при вызове Resources.Load, но несколько ресурсов, которые соответствуют ему, поэтому вам нужно быть осторожным.

При этом вы должны создать папку с именем Resources и добавить свой png.

+0

Привет, Hades и спасибо за вашу помощь. Пожалуйста, прочитайте комментарий, который я добавил выше. – TDEgypt

 Смежные вопросы

  • Нет связанных вопросов^_^