ขอให้เป็นวันดีทุกคน
ฉันกำลังสร้างเกมป้องกันหอคอยใน 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);
}
}
ความช่วยเหลือจะได้รับการชื่นชมจริงๆ ขอบคุณล่วงหน้า!