//Helper for Read private void ComponentRead(string json, string typeString) { //Extract data from string var tempData = JsonUtility.FromJson <GrandmaComponentData>(json); Type dataType = Type.GetType(tempData.dataClassName); GrandmaComponentData data = JsonUtility.FromJson(json, dataType) as GrandmaComponentData; //Find component Type componentType = Type.GetType(typeString); Component component = GetComponent(componentType); if (component == null) { component = gameObject.AddComponent(componentType); } GrandmaComponent gComp = component as GrandmaComponent; //Component read data if (gComp != null) { gComp.Read(data); } }
protected override void OnRead(GrandmaComponentData data) { base.OnRead(data); var agentData = Data as AgentData; if (agentData != null) { Faction = GrandmaObjectManager.Instance.GetComponentByID(agentData.factionID, typeof(Faction)) as Faction; } }
/// <summary> /// Set component state from some provided data /// </summary> /// <param name="data"></param> public void Read(GrandmaComponentData data) { this.Data = data; OnRead(data); if (OnUpdated != null) { OnUpdated(this); } }
protected override void OnRead(GrandmaComponentData data) { base.OnRead(data); var agentItemData = Data as AgentItemData; if (agentItemData != null) { Agent = GrandmaObjectManager.Instance.GetComponentByID(agentItemData.agentID, typeof(Agent)) as Agent; } }
protected override void OnRead(GrandmaComponentData data) { base.OnRead(data); posData = data as PositionableData; if (posData != null) { transform.position = posData.position; transform.rotation = Quaternion.Euler(posData.rotation); transform.localScale = posData.localScale; } }
protected override void OnRead(GrandmaComponentData data) { base.OnRead(data); this.damageData = data as DamageableData; }
protected virtual void OnRead(GrandmaComponentData data) { }