Не могу создать экземпляр мультиспрайта - PullRequest
0 голосов
/ 21 марта 2019

Я не могу загрузить спрайт.

У меня есть основной объект сетки, в сетке у меня есть компонент TerrainDrawer.

Код для скрипта:

void Start()
{
    Sprite[] myFruit = Resources.LoadAll<Sprite>("Sprites/multisprite");

    foreach(var sprite in myFruit)
    {
        print("sprite : " + sprite.name);
    }

    /*var spritePath = "Sprites/225835_hyptosis_tile-art-batch-1";
    //GameObject go = new GameObject();*/

    SpriteRenderer renderer = gameObject.AddComponent<SpriteRenderer>();
    renderer.sprite = myFruit[0];


    //renderer.sprite = Resources.Load(spritePath , typeof(Sprite)) as Sprite;
}

Спрайт, который я хочуиспользовать:

enter image description here enter image description here

Когда я запускаю игру, я получаю эту ошибку:

IndexOutOfRangeException: индекс находился за пределами массива.TerrainDrawer.Start () (в Assets / Scripts / TerrainDrawer.cs: 21)

У меня сильное чувство, что моя проблема связана с путем к спрайту, но теперь, что бы я ни пытался, яне могу загрузить его.

Любой совет?

1 Ответ

1 голос
/ 21 марта 2019

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

Посмотрите эту страницу из документации.

Надеюсь, это поможет!

...