Добрый день всем.
Я делаю игру в жанре Tower Defense в Unity3D и пытаюсь создать анимацию построения башни.
Итак, в основном, для целей тестирования у меня есть примитивный куб с материалом с прозрачным/рассеянным устаревшим шейдером, и я установил альфу его цвета на 0, так как башня должна быть полностью невидимой при создании. К нему прикреплен сценарий Tower для анимации. У меня есть другой скрипт, который занимается размещением куба башни.
Как сделать башню полностью видимой с альфа-каналом 255 цвета ее материала, когда она создается в течение определенного периода времени?
Таким образом, если время постройки башни составляет 5 секунд, альфа должна стать от 0 до 255 за 5 секунд.
Я пробовал следующее (Tower.cs):
public float buildTime = 10;
private MeshRenderer mr;;
private Color currentColor;
private bool built = false;
void Start() {
mr = GetComponent<MeshRenderer>()
currentColor = mr.material.color;
StartCorroutine(BuildAnimation());
}
IEnumerator BuildAnimation() {
float a = 0;
Color newColor = new Color(currentColor.r, currentColor.g, currentColor.b, a);
while (!built) {
mr.material.color = newColor;
if (a >= 255) {
built = true;
}
a+= 255 / buildTime;
yield return new WaitForSeconds(255 / buildTime);
}
}
Помощь будет действительно оценена, спасибо заранее!