Esempio n. 1
0
        public void CopyFromActionList(ActionList actionList)
        {
            isSkippable    = actionList.isSkippable;
            actionListType = actionList.actionListType;
            useParameters  = actionList.useParameters;

            // Copy parameters
            parameters = new List <ActionParameter>();
            parameters.Clear();
            foreach (ActionParameter parameter in actionList.parameters)
            {
                parameters.Add(new ActionParameter(parameter));
            }

            // Actions
            actions = new List <Action>();
            actions.Clear();

            Vector2 firstPosition = new Vector2(14f, 14f);

            foreach (Action originalAction in actionList.actions)
            {
                if (originalAction == null)
                {
                    continue;
                }

                AC.Action duplicatedAction = Object.Instantiate(originalAction) as AC.Action;

                if (actionList.actions.IndexOf(originalAction) == 0)
                {
                    duplicatedAction.nodeRect.x = firstPosition.x;
                    duplicatedAction.nodeRect.y = firstPosition.y;
                }
                else
                {
                    duplicatedAction.nodeRect.x = firstPosition.x + (originalAction.nodeRect.x - firstPosition.x);
                    duplicatedAction.nodeRect.y = firstPosition.y + (originalAction.nodeRect.y - firstPosition.y);
                }

                duplicatedAction.isAssetFile = true;
                duplicatedAction.AssignConstantIDs();
                duplicatedAction.isMarked = false;
                duplicatedAction.ClearIDs();

                duplicatedAction.hideFlags = HideFlags.HideInHierarchy;

                AssetDatabase.AddObjectToAsset(duplicatedAction, this);
                AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(duplicatedAction));
                AssetDatabase.SaveAssets();
                AssetDatabase.Refresh();

                actions.Add(duplicatedAction);
            }
        }
Esempio n. 2
0
        public void CopyFromActionList(ActionList actionList)
        {
            isSkippable = actionList.isSkippable;
            actionListType = actionList.actionListType;
            useParameters = actionList.useParameters;

            // Copy parameters
            parameters = new List<ActionParameter>();
            parameters.Clear ();
            foreach (ActionParameter parameter in actionList.parameters)
            {
                parameters.Add (new ActionParameter (parameter));
            }

            // Actions
            actions = new List<Action>();
            actions.Clear ();

            Vector2 firstPosition = new Vector2 (14f, 14f);
            foreach (Action originalAction in actionList.actions)
            {
                if (originalAction == null)
                {
                    continue;
                }

                AC.Action duplicatedAction = Object.Instantiate (originalAction) as AC.Action;

                if (actionList.actions.IndexOf (originalAction) == 0)
                {
                    duplicatedAction.nodeRect.x = firstPosition.x;
                    duplicatedAction.nodeRect.y = firstPosition.y;
                }
                else
                {
                    duplicatedAction.nodeRect.x = firstPosition.x + (originalAction.nodeRect.x - firstPosition.x);
                    duplicatedAction.nodeRect.y = firstPosition.y + (originalAction.nodeRect.y - firstPosition.y);
                }

                duplicatedAction.isAssetFile = true;
                duplicatedAction.AssignConstantIDs ();
                duplicatedAction.isMarked = false;

                duplicatedAction.hideFlags = HideFlags.HideInHierarchy;

                AssetDatabase.AddObjectToAsset (duplicatedAction, this);
                AssetDatabase.ImportAsset (AssetDatabase.GetAssetPath (duplicatedAction));
                AssetDatabase.SaveAssets ();
                AssetDatabase.Refresh ();

                actions.Add (duplicatedAction);
            }
        }