Это может показаться инфантильным, но я просто не получаю его. Эта программа имеет различные кнопки, которые показывают или скрывают холст с соответствующей информацией, в данном случае сменой масла.Unity3d Уничтожьте любые объекты, которые существуют до instatsating
Когда кнопка нажата, она открывает холст замены масла, получает информацию из базы данных и отображает эту информацию из инстанцированного сборника. Это прекрасно работает. Проблема возникает, когда вы нажимаете ту же кнопку или другую кнопку и возвращаетесь к тому же холсту. Информация двойная, тройная или четверная, вы получаете идею. Он умножается каждый раз, когда вы возвращаетесь к нему.
Очевидно, что игровые объекты должны быть уничтожены до конкретизации, но:
Я не уверен, что для проверки; это временная переменная, используемая для создания экземпляра или сборника? Я попытался определить его в начале скрипта, в любой другой момент, я получаю ошибку неназначенного использования.
Я не уверен, что самое лучшее время для вызова функции. Я угадываю, как только вы нажмете кнопку.
public void ShowAllOilChanges() { for(int i = 0; i< OilChangeList.Count; i++) { ocObj = Instantiate(OilChangePrefab); OilChange tmpOilChange = OilChangeList[i]; ocObj.GetComponent<OilChangeScript>().DisplayOilChanges("Date of Service: " +tmpOilChange.ServiceDate, "Place of Service: " +tmpOilChange.Location, "Mileage: " +tmpOilChange.Mileage, "Labor: " +tmpOilChange.Labor, "Oil Brand: " +tmpOilChange.OilBrand, "Oil Price: " +tmpOilChange.OilPrice, "Filter Brand: " +tmpOilChange.FilterBrand, "Filter Price: " +tmpOilChange.FilterPrice, "Purchase Place: " +tmpOilChange.OilFilterPurchaseLocation); ocObj.transform.SetParent(OilDisplayparent); } } public void DestroyOilChange() { Debug.Log("Before" +ocObj); Destroy(ocObj); Debug.Log("After" +ocObj); } public void OpenOilWindow() { if(windowOpen==false) { windowOpen=true; OilCanvas.enabled=true; BatteryCanvas.enabled=false; BrakeCanvas.enabled=false; TireCanvas.enabled=false; PlugCanvas.enabled=false; MufflerCanvas.enabled=false; CustomCanvas.enabled=false; DestroyOilChange(); } else if(windowOpen==true) { windowOpen=false; OilCanvas.enabled=false; } }
Если кто-то может ходить мне через, я ценю это.
Слишком много недостающей информации, чтобы помочь. Я даже не могу указать, в каких файлах находятся эти методы, и кто их называет. Необходимо было бы показать больше полного потока (ИМО) для тех, кто может помочь. – TDWebDev