Selamat siang semuanya.
Saya membuat game menara pertahanan di Unity3D dan saya mencoba membuat animasi pembuatan menara.
Jadi pada dasarnya, untuk tujuan pengujian, saya memiliki kubus primitif dengan bahan dengan shader warisan transparan/difusi dan saya telah mengatur alfa warnanya ke 0 karena menara harus benar-benar tidak terlihat saat dibuat. Ini memiliki skrip Menara yang melekat padanya untuk animasi. Saya memiliki skrip lain yang berhubungan dengan penempatan menara kubus.
Bagaimana cara membuat menara terlihat sepenuhnya dengan alfa 255 warna materialnya ketika dibuat dalam jangka waktu tertentu?
Jadi jika waktu pembangunan menara adalah 5 detik, alfa akan menjadi 0 hingga 255 dalam 5 detik.
Saya sudah mencoba yang berikut (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);
}
}
Bantuan akan sangat dihargai, terima kasih sebelumnya!