//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);
            }
        }
示例#2
0
        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;
            }
        }
示例#3
0
        /// <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);
            }
        }
示例#4
0
        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;
            }
        }
示例#5
0
        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;
            }
        }
示例#6
0
        protected override void OnRead(GrandmaComponentData data)
        {
            base.OnRead(data);

            this.damageData = data as DamageableData;
        }
示例#7
0
 protected virtual void OnRead(GrandmaComponentData data)
 {
 }