public void M_SaveUnitToFile(string unitName, UnitModule unitModuleToSave) { SavedModule unitToSave = SaveSubModules(unitModuleToSave); string jsonString = JsonUtility.ToJson(unitToSave); SaveToFile(unitName, jsonString); }
// Use this for initialization void Start() { GameObject gameUtils = GameObject.Find("GameUtils"); m_saveLoadHandler = gameUtils.GetComponent <SaveLoadHandler>(); m_unitBuilder = gameUtils.GetComponent <UnitBuilder>(); string unitToLoad = m_thisUnit.ToString(); SavedModule savedUnit = m_saveLoadHandler.M_LoadUnitFromFile(unitToLoad); GameObject spawnedUnit = m_unitBuilder.M_BuildUnit(savedUnit, transform); spawnedUnit.GetComponent <BaseUnit>().m_alignment = m_alignment; }
SavedModule SaveSubModules(UnitModule currentModule) { SavedModule moduleToSave = new SavedModule(); moduleToSave.moduleType = currentModule.m_moduleType.ToString(); foreach (UnitSubModule module in currentModule.m_modules.Values) { SavedModule subModule = SaveSubModules(module); subModule.attachedToIndex = module.m_attachedToIndex; moduleToSave.modules.Add(subModule); } return(moduleToSave); }
public SavedModule M_LoadUnitFromFile(string unitName) { string jsonString = LoadFromFile(m_unitSaveFolder + unitName + m_fileFormat); SavedModule unitToLoad = JsonUtility.FromJson <SavedModule>(jsonString); return(unitToLoad); //////// This stuff should be in showroom manager, or buildroom //GameObject newUnit = m_unitBuilder.M_BuildUnit((ModuleType)Enum.Parse(typeof(ModuleType), unitToLoad.moduleType), m_spawnPosition); //Destroy(m_currentVehicle); //m_currentVehicle = newUnit; //m_currentHardpoint = null; }
GameObject BuildSubModule(SavedModule moduleToBuild, GameObject parent) { GameObject newModuleObject = M_BuildModule(Helpers.StringToModuleType(moduleToBuild.moduleType), FindHardpointByIndex(parent, moduleToBuild.attachedToIndex)); for (int i = 0; i < moduleToBuild.modules.Count; i++) { GameObject subModule = BuildSubModule(moduleToBuild.modules[i], newModuleObject); BaseWeapon subModuleWeapon = subModule.GetComponent <BaseWeapon>(); if (subModuleWeapon) { newModuleObject.GetComponent <UnitModule>().m_weapons.Add(subModuleWeapon); } } return(newModuleObject); }
public GameObject M_BuildUnit(SavedModule unit, Transform spawnPosition) { GameObject newUnit = M_BuildUnit((ModuleType)System.Enum.Parse(typeof(ModuleType), unit.moduleType), spawnPosition); int count = unit.modules.Count; for (int i = 0; i < unit.modules.Count; i++) { GameObject subModule = BuildSubModule(unit.modules[i], newUnit); BaseWeapon subModuleWeapon = subModule.GetComponent <BaseWeapon>(); if (subModuleWeapon) { newUnit.GetComponent <UnitModule>().m_weapons.Add(subModuleWeapon); } } return(newUnit); }