Как создать образ gui со скриптом

Итак, я недавно занимался новой системой пользовательского интерфейса - и одна проблема, которую я имею, заключается в добавлении изображений моих спрайтов в ui.

Я знаю, что могу создать сборку образа gameobject с помощью спрайта, который я хочу, но у меня есть сотни спрайтов, которые я хочу добавить в ui (они разные персонажи), поэтому я не хочу создавать сотни из сборных. Вместо этого то, что я хочу сделать, - это сценарий, создать образ игры, установить его спрайт и дочерний его на родительскую панель в моем холсте. Возможно ли это?

5 голосов | спросил nachime 15 J0000006Europe/Moscow 2015, 09:37:53

1 ответ


5

Это вполне возможно. Вот простой скрипт, показывающий, как.

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;

public class PopulateSprites : MonoBehaviour {

public List<Sprite> Sprites = new List<Sprite>(); //List of Sprites added from the Editor to be created as GameObjects at runtime
public GameObject ParentPanel; //Parent Panel you want the new Images to be children of

// Use this for initialization
void Start () {
    foreach (Sprite currentSprite in Sprites)
    {
        GameObject NewObj = new GameObject(); //Create the GameObject
        Image NewImage = NewObj.AddComponent<Image>(); //Add the Image Component script
        NewImage.sprite = currentSprite; //Set the Sprite of the Image Component on the new GameObject
        NewObj.GetComponent<RectTransform>().SetParent(ParentPanel.transform); //Assign the newly created Image GameObject as a Child of the Parent Panel.
        NewObj.SetActive(true); //Activate the GameObject
    }
}

}

Ссылка на Unity для AddComponent: AddComponent

ответил Jeremiah Leslie 15 J0000006Europe/Moscow 2015, 10:37:55

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132