第一次產卵良好,但當它結束時(當move.tempColor.a < 0) finishInterize不會更新爲false,並且該情況將在下一幀產生結果在訪問線objectToSpawnList [spawnCount - 1]中不存在的對象時。它發生由於殼體是在更新方法統一產卵項目使用更新方法c#
代碼
case SpawnState.run:
if (finishInterilize)
{
GameObject spawnClone = objectsToSpawnList[spawnCount - 1];
SpawnAndMove move = spawnClone.GetComponent<SpawnAndMove>();
moveObject(spawnClone);
if (move.tempColor.a<0)
{
finishInterilize = false;
Debug.Log(finishInterilize);
state = SpawnState.intirilize;
spawnCount--;
Destroy(spawnClone);
}
}
break;
'Color'的'Alpha'值不能爲負值,並'0'和'255'之間夾緊。意思是說你的條件if(move.tempColor.a <0)'在任何情況下都會失敗。 –
@ m.rogalski更正:顏色值介於'0'和'1'之間。它在編輯器中顯示「0」到「255」,但在代碼中顯示爲「0」和「1」。你的回答也犯了這個錯誤。 – Programmer
@Programmer Color的通道值由1個字節表示,Unity在「Color」類型中使用百分比值,在「Color32」類型中使用標準(1字節)值。 –