protected override void OnExecute()
        {
            if (useAgent == null || nameClass == null)
            {
                EndAction();
            }


            GameObject obj = null;

            if (!useAgent.value && nameRoot != null)
            {
                string root = nameRoot.value;
                obj = GameObject.Find(root);
            }
            else
            {
                obj = agent.gameObject;
            }

            Type type = nameClass.value.GetTypeFromName();

            if (obj != null)
            {
                Component component = obj.GetChildInHierarchy(type);

                if (component != null)
                {
                    ReflectionExtend.SetField(component, nameField.value, GetValue(component));
                }
            }

            EndAction();
        }
        protected override void Awake()
        {
            base.Awake();

            if (useFiller && imageFillerType != null)
            {
                filler = ReflectionExtend.CreateInstance <Filler <ImageElementInfo> >(imageFillerType);
            }
        }
        private object GetValue(Component component)
        {
            if (primitiveStruct != null)
            {
                switch (primitiveStruct.value)
                {
                case PrimitiveEnum.Bool:
                    return(boolValue != null ? boolValue.value : false);

                case PrimitiveEnum.Enum:
                    int index = 0;
                    if (nameField == null || enumValue == null)
                    {
                        LogManager.LogWarning("Enum problem");
                        return(index);
                    }

                    if (ReflectionExtend.GetField(component, nameField.value, out object result))
                    {
                        index = EnumExtend.ParseEnum(enumValue.value, result.GetType());
                    }
                    else
                    {
                        LogManager.LogWarning("Enum problem");
                    }
                    return(index);

                case PrimitiveEnum.Float:
                    return(floatValue != null ? floatValue.value : 0f);

                case PrimitiveEnum.Integer:
                    return(integerValue != null ? integerValue.value : 0);

                case PrimitiveEnum.String:
                    return(stringValue != null ? stringValue.value : "");
                }
            }
            return(null);
        }