protected bool ClearPropertyFrom(GameObject obj) { PropertyManager objPropertyManager = obj.GetComponent <PropertyManager>(); if (objPropertyManager == null) { return(false); } return(objPropertyManager.ClearProperty()); }
public void SavePlayerDataExp(GameObject playerObj) { GameObject playerStaticCopy = CheckPlayerDataStoraged(playerObj); if (playerStaticCopy == null) { //didn't save before. Create a static copy. //Debug.Log(GetType().Name + ": first time to save " + playerObj.name + "."); playerStaticCopy = new GameObject(PlayerDataStorageName(playerObj.name)); DontDestroyOnLoad(playerStaticCopy); playerStaticCopy.SetActive(false); playerStaticCopy.transform.SetParent(transform); playerStaticCopySeries.Add(playerStaticCopy); } //else Debug.Log(GetType().Name + ": not the first time to save " + playerObj.name + "."); //Data Copy. DEV NOTE: could use interface and function to make a better / simpler code? Player d_player = playerStaticCopy.GetComponent <Player>(); if (d_player == null) { d_player = playerStaticCopy.AddComponent <Player>(); } Player o_player = playerObj.GetComponent <Player>(); d_player.CopyData(o_player); PropertyManager d_propertyManager = playerStaticCopy.GetComponent <PropertyManager>(); if (d_propertyManager == null) { d_propertyManager = playerStaticCopy.AddComponent <PropertyManager>(); } PropertyManager o_propertyManager = playerObj.GetComponent <PropertyManager>(); UnitProperty[] o_propertyList = o_propertyManager.GetPropertyList(); if (o_propertyList != null) { foreach (UnitProperty p in o_propertyList) { d_propertyManager.ApplyProperty(p); } } else { d_propertyManager.ClearProperty(); } }