@Oleg_Programist

Как создать текстуру и поместить ее на объект в unity2d?

я хочу через код c# в unity2d создать текстуру, задать ее на объект на сцене, и в будущем изменять эту текстуру, как я могу это сделать?(я новичок в unity)
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos Куратор тега Unity
А что вы уже пробовали сделать? Например ну не знаю, вбить этот же вопрос в гугл попробовали? Страниц 10 оттуда применить?
Новички обычно так делают
Ответ написан
Комментировать
@Ezekiel4
Охотник на пиратов и сборщик монолитов
Текстура представлена классом Texture2D. Для начала вы создаёте экземпляр класса, указывая его целочисленные высоту и ширину. Затем используйте метод SetPixel(x, y, color), чтобы перекрасить пиксель в нужный цвет. В конце вызываете Apply, чтобы применить. Например, вот так можно создать белый круг:

using UnityEngine;

public class DynamicCircle : MonoBehaviour {

	public SpriteRenderer spriteRenderer;
	[Min(1)] public int textureWidth = 100;
	[Min(1)] public int textureHeight = 100;
	public Color defaultColor = Color.white;

	private Texture2D _circleTexture;

	private void Start() {
		CreateCircleTexture();
	}

	private void CreateCircleTexture() {
		_circleTexture = new Texture2D(textureWidth, textureHeight);

		var center = new Vector2(textureWidth / 2, textureHeight / 2);
		var radius = textureWidth / 2;

		for (int y = 0; y < _circleTexture.height; y++) {
			for (int x = 0; x < _circleTexture.width; x++) {
				float distanceToCenter = Vector2.Distance(new Vector2(x, y), center);

				if (distanceToCenter <= radius) {
					_circleTexture.SetPixel(x, y, defaultColor);
				} else {
					_circleTexture.SetPixel(x, y, Color.clear);
				}
			}
		}

		_circleTexture.Apply();

		spriteRenderer.sprite = Sprite.Create(_circleTexture, new Rect(0.0f, 0.0f, textureWidth, textureHeight), new Vector2(0.5f, 0.5f), 100.0f);
	}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы