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); } }
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); } }