Есть код, который создаёт объекты с компонентом Image
, в котором я хочу заменить Source Image
на один из дефолтных, через код.
Пример:
Код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using UnityEngine;
public class PotionManager : MonoBehaviour {
Image sourceImage;
private float timer=25;
static int COUNT_OF_ORDERS = 0;
public Transform parent;
public List<PotionAsset> potionList = new List<PotionAsset>();
private float posX,posY,posZ;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update()
{
timer += Time.deltaTime;
if (timer >= 30)
{
CreateOrderHolder();
}
}
void CreateOrderHolder()
{
posX = 160 * COUNT_OF_ORDERS + 80;
posY = -70;
posZ = 0;
COUNT_OF_ORDERS++;
GameObject temp = new GameObject("Potion Order " + COUNT_OF_ORDERS, typeof(RectTransform));
temp.transform.SetParent(parent);
temp.transform.localPosition = new Vector3(posX, posY, posZ);
temp.transform.localScale = new Vector3(1.5f, 1.5f, 1.5f);
temp.GetComponent<RectTransform>().anchorMax = new Vector2(0, 1);
temp.GetComponent<RectTransform>().anchorMin = new Vector2(0, 1);
CreatePotionHolder(temp.transform);
timer = 0;
}
void CreatePotionHolder(Transform parent)
{
posX = 0;
posY = 13.5f;
posZ = 0;
GameObject temp = new GameObject("PotionHolder", typeof(RectTransform), typeof(Image));
temp.transform.SetParent(parent);
temp.transform.localPosition = new Vector3(posX, posY, posZ);
temp.transform.localScale = new Vector3(1, 1, 1);
temp.GetComponent<RectTransform>().sizeDelta = new Vector2(100,50);
sourceImage = temp.GetComponent<Image>();
sourceImage.sprite = Resources.Load<Sprite>("Resources/unity_builtin_extra/UISprite");
Debug.Log(sourceImage.sprite);
}
}
Итого sourceImage.sprite
возвращает null
. Пробовал добавлять в конце формат файла png,psd. Не помогло.
Ответ на этот вопрос дан на ресурсе GameDevelopment
Приблизительный перевод:
Вы можете получить доступ к встроенным дополнительным ресурсам в редакторе. Я полагаю, что если вы сделаете ссылку на спрайт пользовательского интерфейса публичной, это создаст копию для использования в ходе выполнения программы.
В ином случае, путь к спрайту 'UI/Skin/UISprite.psd'
Пример:
sourceImage = temp.GetComponent<Image>();
sourceImage.sprite = UnityEditor.AssetDatabase.GetBuiltinExtraResource<Sprite>("UI/Skin/UISprite.psd");
Я бы предложил использовать Sprite.Create (); во время выполнения программы, и вы можете создать текстуру для нее, так что вам не нужно загружать их по умолчанию.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
подскажите у меня есть таблица в ней числа, мне надо перенести с этой таблицы в другую 2 значения с битовой маской? непонимаю я в них? с примера...
Всем привет, работаю с cs cart и имею такой запрос
Помогите, пожалуйста)Вроде нет проблем, поля одинаковые, но не хочет связыватьПоследовательность правильная