所以我想在路的中心做 10 個糖果。而 10 則是帶標簽的 77。我改變了條件仍然無法修復它。func 在更新時被呼叫
void CloneCandyCenter() {
if(GameObject.FindGameObjectsWithTag("r1candycenter").Length < 2) {
Debug.Log("0 candies now adding 10 more");
for(int counter = 0; counter < 10; counter ) {
Instantiate(R1candyCenter, new Vector3(0,0, CandyZpos.z), transform.rotation, Road1Trans);
CandyZpos.z = 2;
}
}
}
uj5u.com熱心網友回復:
不要呼叫 CloneCandyCenterapdate,因為它大約每秒被呼叫 60 次。
呼叫它,Start()例如呼叫一次,或在按鍵時呼叫。
If (Input.GetKeyDown(KeyKode.Space))
CloneCandyCenter();
但是,如果 R1CandyCenter 游戲物件獲得了標簽,則在第二次呼叫中應該已經有 10 個,因此您應該只有前 10 個,因此除了GameObject.FindGameObjectsWithTag在不推薦的更新中呼叫的低效之外,您的代碼應該可以正常作業關于創建的物件數量很好。
我建議使用計數器:
int candyCenterCounter = 0; //class variable
void CloneCandyCenter() {
if(candyCenterCounter < 2) { //2 would not make sense if objects are instantiated 10 by 10
Debug.Log("0 candies now adding 10 more");
for(int counter = 0; counter < 10; counter ) {
Instantiate(R1candyCenter, new Vector3(0,0, CandyZpos.z),
transform.rotation, Road1Trans);
CandyZpos.z = 2;
}
candyCenterCounter =10
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/403250.html
標籤:
下一篇:只有一個事件操作為空
