我正在創建Unit2D遊戲&我對它很陌生,在那裏我寫了破壞播放器項目符號的代碼到隕石(或敵人)。 我有一個Bullete PREFAB。附有Destroybullete腳本。我在TRIGGER函數下編寫了正常的代碼(C#腳本)。Unity2d - 銷燬對象使用銷燬(gameObject)//它會銷燬與腳本連接的對象
void OnTriggerEnter2D(Collider2D col)
{
if(col.gameObject.tag == "meteorite") // have given meteorite tag to meteorite PREFAB
{
Destroy(gameObject)
}
}
我想知道是否是正確的方式來銷燬任何對象。因爲它不斷向我顯示msg,「避免銷燬對象以避免數據丟失」。
和主要的事情。 此代碼在Unity編輯器(Build Settings設置爲android)中工作良好。 但是,如果我在我的android手機(redmi 1s)上構建並創建它的APK,它不起作用.Bullete開始自動發射(根據需要),但任何bullete都會觸及隕石而不是遊戲滯後時間爲毫秒,子彈停止射擊......並且同一代碼在UNITY下工作得很好。
是否意味着我已經通過編寫Destroy(gameObject)殺死了bullete prefab。
- 需要解釋和解決方案,以正確的方式銷燬對象。
我只見過這條消息,當你試圖摧毀一個預製件。代碼看起來沒問題,據我所知,這是一種可以接受的方式來做你想做的事。你有可能不小心做了一個名爲「gameObject」的新變量? – Reasurria
不,沒有名稱爲gameObject的變量。現在團結警告OHK!摧毀物體哦!遊戲在PC上很好用哦!現在我唯一的問題是爲什麼在BULLETE和METEORITE bullete之間的第一次碰撞後突然停止射擊(在移動設備上)......並且同樣的事情在Unity編輯器PC中工作正常......感謝您的回答......我已經有一些建議第二個答案,如「對象池」我會嘗試....到那個時候,如果你有什麼請讓我知道.....謝謝你:) :) –