спрайт единой загрузки в игровой объект из папки ресурсов - PullRequest
0 голосов
/ 07 марта 2020

Я новичок в Unity. У меня есть простой спрайт по этому адресу:

Assets <- (Folder)
|
 - Block <- (Block is a PNG file that dragged to unity project widget)

Я хочу динамически добавить мой спрайт «Блок» в мою «Сцену» или внутри игрового объекта «Основная камера». Я использовал этот код для загрузки блока как Sprite:

Sprite block = Resources.Load<Sprite>( "Block" );
GameObject obj = new GameObject ("B1");
SpriteRenderer renderer = obj.AddComponent<SpriteRenderer> ();
obj.GetComponent<SpriteRenderer> ().sprite = block;
obj.GetComponent<SpriteRenderer> ().flipX = true;

Я вижу игровой объект "B1", созданный на моей сцене, и у меня нет ошибок в консоли, , но я не вижу спрайт на моей сцене.

enter image description here

Примечание: Unity: 5.6.7

1 Ответ

1 голос
/ 07 марта 2020

Он не работает для вас, потому что его нужно поместить в папку с именем Resources, например Assets/Resources/Block.png


Однако: Не использовать Resources вообще!

Скорее просто оставьте файл как есть и перетащите его в поле Sprite в Инспекторе. Если вам действительно нужно сделать это во время выполнения, убедитесь, что компонент, выполняющий ваш код, имеет соответствующее поле, например,

// Drag the sprite from the Assets here via the Inspector
[SerializeField] private Sprite block;

private void YourMethod()
{
    var renderer = new GameObject ("B1").AddComponent<SpriteRenderer>();
    renderer.sprite = block;
    renderer.flipX = true;
}

Также, если вы новичок в Unity, вам не следует начинать с устаревшей версии , Используйте либо самую последнюю стабильную версию 2019.3.4f1 или go для долгосрочной поддержки 2018.4 LTS (хотя скоро будет новая версия LTS 2019.4)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...