Esempio n. 1
0
        private Transform RebuildTransform(Transform parent, RobotGameObjectDataModel dataModel, Dictionary <string, Queue <GameObject> > partsGroup)
        {
            GameObject node = null;

            if (dataModel.IsAsset(out var address))
            {
                if (partsGroup.TryGetValue(address, out var parts))
                {
                    if (parts.Count > 0)
                    {
                        node      = parts.Dequeue();
                        node.name = dataModel.name;
                    }
                }
            }
            if (node == null)
            {
                node = new GameObject(dataModel.name);
            }
            node.transform.SetParent(parent, false);
            node.transform.localPosition = dataModel.localPosition;
            node.transform.localRotation = dataModel.localRotation;
            node.transform.localScale    = dataModel.localScale;
            node.gameObject.layer        = dataModel.layer;
            node.gameObject.tag          = dataModel.tag;

            dataModel.transform = node.transform;

            foreach (var child in dataModel.children)
            {
                RebuildTransform(node.transform, child, partsGroup);
            }

            return(node.transform);
        }
Esempio n. 2
0
        private void RebuildPathLink(RobotGameObjectDataModel dataModel)
        {
            foreach (var component in dataModel.components)
            {
                ComponentDeserializer.DeserializeFromJson(component);
            }

            foreach (var child in dataModel.children)
            {
                RebuildPathLink(child);
            }
        }
Esempio n. 3
0
        private void AttachComponents(RobotGameObjectDataModel dataModel)
        {
            foreach (var component in dataModel.components)
            {
                ComponentDeserializer.AttachComponent(dataModel.transform, component);
            }

            foreach (var child in dataModel.children)
            {
                AttachComponents(child);
            }
        }
Esempio n. 4
0
        public bool Parse(LitJson.JsonData modelData)
        {
            mAssetDatas.Clear();

            mModelData = modelData;
            if (modelData.ContainsKey(SerializationConst.assets))
            {
                LitJsonHelper.ParseJsonObject(modelData[SerializationConst.assets], assetDatas);
            }
            mGameObjectDataModel = new RobotGameObjectDataModel(modelData);
            return(true);
        }
Esempio n. 5
0
 private void RebuildComponents(RobotGameObjectDataModel dataModel)
 {
     AttachComponents(dataModel);
     RebuildPathLink(dataModel);
 }