Пример #1
0
        public static Component DeserializeFromJson(RobotComponentDataModel componentDataModel)
        {
            var component = componentDataModel.component;

            if (component == null)
            {
                return(null);
            }

            var targetType = component.GetType();

            if (!msJsonToComponent.TryGetValue(targetType, out var convert))
            {
                foreach (var kv in msJsonToComponent)
                {
                    if (targetType.IsCompatibleWith(kv.Key))
                    {
                        convert = kv.Value;
                        break;
                    }
                }
            }
            if (convert != null)
            {
                try
                {
                    convert(componentDataModel, component);
                }
                catch (Exception ex)
                {
                    DebugUtility.LogException(ex);
                }
            }
            return(component);
        }
Пример #2
0
        public static Component AttachComponent(Transform transform, RobotComponentDataModel componentDataModel)
        {
            var component = transform.GetUserComponent <Component>(componentDataModel.type);

            componentDataModel.component = component;

            if (!componentDataModel.alloc)
            {
                return(component);
            }
            else if (component == null)
            {
                component = transform.AddUserComponent <Component>(componentDataModel.type);
                componentDataModel.component = component;
                if (component == null)
                {
                    DebugUtility.LogErrorTrace(LoggerTags.Project, "Missing Type {0}", componentDataModel.type);
                }
                return(component);
            }
            return(component);
        }