示例#1
0
        /// <summary>
        /// Update inspector content.
        /// </summary>
        public override void OnInspectorGUI()
        {
            castedTargetComponent = (MobileInputReaction)target;

            serializedObject.Update();

            reactionFieldAmount           = GUIFactory.CreateIntFieldGUI("Reaction Amount (0 - 10):", castedTargetComponent.inputReactionFields.Count, 0, maxReactionFields);
            inputReactionFields.arraySize = reactionFieldAmount;

            ResizeUsageDictionary(ref useActionTriggerContainer);
            ResizeUsageDictionary(ref useArgumentTriggerContainer);

            HandleReactionFields();

            UpdateActionTriggerUsage(castedTargetComponent);
            UpdateArgumentTriggerUsage(castedTargetComponent);

            serializedObject.ApplyModifiedProperties();

            if (GUI.changed)
            {
                EditorUtility.SetDirty(castedTargetComponent);
                EditorSceneManager.MarkSceneDirty(castedTargetComponent.gameObject.scene);
            }
        }
示例#2
0
        /// <summary>
        /// Updates dictionary which contains information about the usage of action triggers.
        /// </summary>
        /// <param name="castedTarget">MobileInputReaction target object of the editor script.</param>
        private void UpdateActionTriggerUsage(MobileInputReaction castedTarget)
        {
            List <int> updatedTriggersUsingActions = new List <int>();

            foreach (var useActionTriggerEntry in useActionTriggerContainer)
            {
                if (useActionTriggerEntry.Value)
                {
                    updatedTriggersUsingActions.Add(useActionTriggerEntry.Key);
                }
            }

            var updatedUseActionTrigger = new Dictionary <int, bool>();

            foreach (var trigger in useActionTriggerContainer)
            {
                updatedUseActionTrigger.Add(trigger.Key, updatedTriggersUsingActions.Contains(trigger.Key));
            }

            castedTarget.reactionFieldsUsingActions = updatedTriggersUsingActions;
            castedTarget.useActionTriggerContainer  = updatedUseActionTrigger;
        }
示例#3
0
        /// <summary>
        /// Set serialized properties by getting them from the serialized object.
        /// </summary>
        private void SetupSerializedProperties()
        {
            castedTargetComponent = (MobileInputReaction)target;

            inputReactionFields = serializedObject.FindProperty("inputReactionFields");

            var useActionTriggerDictionary = new Dictionary <int, bool>();

            for (int i = 0; i < inputReactionFields.arraySize; i++)
            {
                useActionTriggerDictionary.Add(i, castedTargetComponent.reactionFieldsUsingActions.Contains(i));
            }

            var useArgumentTriggerDictionary = new Dictionary <int, bool>();

            for (int i = 0; i < inputReactionFields.arraySize; i++)
            {
                useArgumentTriggerDictionary.Add(i, castedTargetComponent.reactionFieldsUsingArguments.Contains(i));
            }

            useActionTriggerContainer   = useActionTriggerDictionary;
            useArgumentTriggerContainer = useArgumentTriggerDictionary;
        }