Вставить картинку в Texture2D

Описание

Есть у меня 2D текстура прикрепленная к RawImage так, чтобы изменения на ней отобразились пользователю:

using System;
using System.Linq;

using UnityEngine;
using UnityEngine.UI;

public class Board: MonoBehaviour {
    private void Start() {
        texture = new Texture2D((int) RectTransform.rect.width, (int) RectTransform.rect.height) {
            name = "Main Layer",
        }; /// Создание текстуры
        rawImageTexture.texture = texture; /// присваивание к RawImage
        rawImageTexture.color = new Color32(255, 255, 255, 255); /// Восстановление стандаотного цвета, так как у меня в проекте ставлен прозрачный
        texture.SetPixels32(Enumerable.Repeat(new Color32(0, 0, 0, 0), texture.width * texture.height).ToArray()); /// Сброс текстуры до прозрачного
        texture.Apply(); /// Применение изменений
    }
    public RectTransform RectTransform => transform as RectTransform;
    private Texture2D texture;
    [SerializeField] private RawImage rawImageTexture;
}

И теперь я хочу вставить туда картинку чтобы она была в позиции (0, 0) и имела размер (100, 100). Метод написанный ниже единственный который мне удалось добыть:

using System;
using System.Linq;

using UnityEngine;
using UnityEngine.UI;

public class Board: MonoBehaviour {
    private void Start() {
        texture = new Texture2D((int) RectTransform.rect.width, (int) RectTransform.rect.height) {
            name = "Main Layer",
        }; /// Создание текстуры
        rawImageTexture.texture = texture; /// присваивание к RawImage
        rawImageTexture.color = new Color32(255, 255, 255, 255); /// Восстановление стандартного цвета, так как у меня в проекте ставлен прозрачный
        texture.SetPixels32(Enumerable.Repeat(new Color32(0, 0, 0, 0), texture.width * texture.height).ToArray()); /// Сброс текстуры до прозрачного
        texture.Apply(); /// Применение изменений

        texture.SetPixels32(0, 0, 100, 100, Void.GetPixels32()); /// Присваивание картинки
        texture.Apply(); /// Применение изменений
    }
    public RectTransform RectTransform => transform as RectTransform;
    private Texture2D texture;
    [SerializeField] private RawImage rawImageTexture;
    [SerializeField] private Texture2D Void;
}

И то не всегда работает.

В картинке вы можете увидеть что все прикреплено. Из примера я удалил все ненужное, чтобы вам было легче понять.

Вопрос

Собственно мне надо какой-нибудь способ поставить .png картинку в Texture2D в указанных координатах с указанным размером (если картинка больше, то сжать картинку до указанного размера). Можете подправить мой код, можете дать ссылки на ответ в других источниках, можете кидать статьи - любое решение.


Ответы (0 шт):