| Отключение функций кода при удаление объекта со сцены | 
|  | 
| 
| HEJlbCOH | Дата: Воскресенье, 07 Января 2018, 22:40 | Сообщение # 1 |  | был не раз Сейчас нет на сайте | Здравствуйте, у меня возник вопрос, как я могу сделать чтоб код автоматически перестал реагировать на объект если тот удалился со сцены Заранее благодарю за помощь
 Код Save'а:
 
 Код using System.Collections;using System.Collections.Generic;
 using UnityEngine;
 
 public class Gc_SimpleSave : MonoBehaviour
 {
 public GameObject player;
 public GameObject cube;
 public GameObject cube1;
 public GameObject cube2;
 public GameObject cube3;
 public GameObject cube4;
 public GameObject cube5;
 public GameObject cube6;
 public GameObject cube7;
 public GameObject cube8;
 public GameObject cube9;
 public GameObject cube10;
 public GameObject cube11;
 public GameObject cube12;
 public GameObject cube13;
 
 public void Save()
 {
 ES2.Save(cube.transform.position, "cubePosition");
 ES2.Save(cube1.transform.position, "cube1Position");
 ES2.Save(cube2.transform.position, "cube2Position");
 ES2.Save(cube3.transform.position, "cube3Position");
 ES2.Save(cube4.transform.position, "cube4Position");
 ES2.Save(cube5.transform.position, "cube5Position");
 ES2.Save(cube6.transform.position, "cube6Position");
 ES2.Save(cube7.transform.position, "cube7Position");
 ES2.Save(cube8.transform.position, "cube8Position");
 ES2.Save(cube9.transform.position, "cube9Position");
 ES2.Save(cube10.transform.position, "cube10Position");
 ES2.Save(cube11.transform.position, "cube11Position");
 ES2.Save(cube12.transform.position, "cube12Position");
 ES2.Save(cube13.transform.position, "cube13Position");
 
 ES2.Save(player.transform.position, "playerPosition");
 }
 }
код Load'а
 
 Код using System.Collections;using System.Collections.Generic;
 using UnityEngine;
 
 public class Gc_SimpleLoad : MonoBehaviour
 {
 public GameObject player;
 public GameObject cube;
 public GameObject cube1;
 public GameObject cube2;
 public GameObject cube3;
 public GameObject cube4;
 public GameObject cube5;
 public GameObject cube6;
 public GameObject cube7;
 public GameObject cube8;
 public GameObject cube9;
 public GameObject cube10;
 public GameObject cube11;
 public GameObject cube12;
 public GameObject cube13;
 
 public void Load()
 {
 cube.transform.position = ES2.Load<Vector3>("cubePosition");
 cube1.transform.position = ES2.Load<Vector3>("cube1Position");
 cube2.transform.position = ES2.Load<Vector3>("cube2Position");
 cube3.transform.position = ES2.Load<Vector3>("cube3Position");
 cube4.transform.position = ES2.Load<Vector3>("cube4Position");
 cube5.transform.position = ES2.Load<Vector3>("cube5Position");
 cube6.transform.position = ES2.Load<Vector3>("cube6Position");
 cube7.transform.position = ES2.Load<Vector3>("cube7Position");
 cube8.transform.position = ES2.Load<Vector3>("cube8Position");
 cube9.transform.position = ES2.Load<Vector3>("cube9Position");
 cube10.transform.position = ES2.Load<Vector3>("cube10Position");
 cube11.transform.position = ES2.Load<Vector3>("cube11Position");
 cube12.transform.position = ES2.Load<Vector3>("cube12Position");
 cube13.transform.position = ES2.Load<Vector3>("cube13Position");
 }
 }
 |  |  |  |  | 
| 
| Vostrugin | Дата: Воскресенье, 07 Января 2018, 23:22 | Сообщение # 2 |  | постоянный участник Сейчас нет на сайте | Где перестал реагировать? На что перестал реагировать? 
 
 
   
 |  |  |  |  | 
| 
| drcrack | Дата: Воскресенье, 07 Января 2018, 23:42 | Сообщение # 3 |  | старожил Сейчас нет на сайте | Код ES2.Save(cube9.transform.position, "cube9Position");Добавь везде проверки на null:
 
 Код if(cube9 != null) ES2.Save(cube9.transform.position, "cube9Position");Хотя код конечно жесть, ему срочно нужен хороший рефакторинг, пока не все потеряно
 
 
 Сообщение отредактировал drcrack - Воскресенье, 07 Января 2018, 23:42 |  |  |  |  | 
| 
| TLT | Дата: Понедельник, 08 Января 2018, 01:03 | Сообщение # 4 |  |   
 Сейчас нет на сайте | Просто добавь переменную и обведи код на IF, а когда объект деактивируешь меняй значение переменной на 1 или 0, как решишь... 
 Дао, выраженное словами, не есть истинное Дао.
 |  |  |  |  | 
| 
| drcrack | Дата: Понедельник, 08 Января 2018, 02:12 | Сообщение # 5 |  | старожил Сейчас нет на сайте | Цитата  Просто добавь переменную и обведи код на IF, а когда объект деактивируешь меняй значение переменной на 1 или 0, как решишь... Новую переменную добавлять незачем
 Если обьект удаляется со сцены, достаточно сравнения с null (оно перегружено и возвращает true если обьект удален)
 Впрочем, даже если бы он просто деактивировался, можно было бы проверить свойство activeSelf, не заводя лишних переменных
 |  |  |  |  | 
| 
| HEJlbCOH | Дата: Понедельник, 08 Января 2018, 12:58 | Сообщение # 6 |  | был не раз Сейчас нет на сайте | Сейчас тестану Добавлено (08 января 2018, 12:48)---------------------------------------------
 
 Цитата drcrack (  )  if(cube9 != null) ES2.Save(cube9.transform.position, "cube9Position");сейчас проверю
 Добавлено (08 января 2018, 12:58)---------------------------------------------
 Испытал код но чет он не сохраняет что объект удален со сцены
 |  |  |  |  | 
| 
| drcrack | Дата: Понедельник, 08 Января 2018, 13:05 | Сообщение # 7 |  | старожил Сейчас нет на сайте | Цитата  Испытал код но чет он не сохраняет что объект удален со сценыА ты об этом и не писал)
 |  |  |  |  | 
| 
| Vostrugin | Дата: Понедельник, 08 Января 2018, 13:07 | Сообщение # 8 |  | постоянный участник Сейчас нет на сайте | Цитата HEJlbCOH (  )  Испытал код но чет он не сохраняет что объект удален со сценыТогда тебе нужно хранить не только позиции объектов, а и их состояние.
 
 
 
   
 
 
 Сообщение отредактировал Vostrugin - Понедельник, 08 Января 2018, 19:11 |  |  |  |  | 
| 
| HEJlbCOH | Дата: Вторник, 09 Января 2018, 14:00 | Сообщение # 9 |  | был не раз Сейчас нет на сайте | Добавлено (08 января 2018, 17:09) ---------------------------------------------
 drcrack, помочь бы мог =(
 Добавлено (09 января 2018, 14:00)---------------------------------------------
 все, вопрос закрыт, переписал полностью скрипт на сохранение всех объектов сцены :angel:
 
 
 Сообщение отредактировал HEJlbCOH - Понедельник, 08 Января 2018, 17:09 |  |  |  |  |