@GLaWA_RaKoB
Начинающий разработчик 2D игр на Unity.

Как изменить прозрачность текстуры в Unity2D?

Возник вопрос в ходе разработки игры на Unity2D. Надо чтобы когда игрок входил в здание текстура становилась прозрачной, а когда выходил обратно - принимала непрозрачное состояние. Хотелось бы чтобы все работало через функцию OnTriggerEnter2D.

Помогите пожалуйста, заранее спасибо!
  • Вопрос задан
  • 972 просмотра
Пригласить эксперта
Ответы на вопрос 1
@alex22122
Unity, C#
Вам нужно у компонента SpriteRenderer получить значение свойства color, изменить поле a у полученного объекта и записать цвет обратно в свойство color.

Пример скрипта на C#:

using UnityEngine;

public class SpriteAlphaChanger : MonoBehaviour
{
public SpriteRenderer _sprite = null; // Сюда в инспекторе нужно перетащить нужный вам спрайт (здание).
public float Speed = 1f; // Задает скорость изменения цвета в единицах в секунду.

void Update ()
{
// Получаем цвет спрайта.
var color = _sprite.color;
}

void OnTriggerEnter2D(Collider2D col)
{
// Уменьшаем значение альфы с заданной скоростью. Не забываем Time.deltaTime.
color.a -= Speed * Time.deltaTime;
else
// Увеличиваем значение альфы с заданной скоростью. Не забываем Time.deltaTime.
color.a += Speed * Time.deltaTime;

// Не даем значению выйти за границы, для цвета это (0, 1).
color.a = Mathf.Clamp(color.a, 0, 1);

// Задаем спрайту новый цвет.
_sprite.color = color;
}

}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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