/** * <summary>Creates a new instance of the 'Object: Record transform' Action</summary> * <param name = "objectToRecord">The GameObject whose transform to record</param> * <param name = "recordType">The type of recording to take</param> * <param name = "inWorldSpace">If True, the GameObjects's transform values will be read in world space</param> * <param name = "variableLocation">The location of the Vector3 variable to store the values</param> * <param name = "variableID">The ID number of the Vector3 variable to store the values</param> * <param name = "variables">The variable's associated Variables component, if a Component Variable</param> * <returns>The generated Action</returns> */ public static ActionTransformRecord CreateNew(GameObject objectToRecord, TransformRecordType recordType, bool inWorldSpace, VariableLocation variableLocation, int variableID, Variables variables = null) { ActionTransformRecord newAction = (ActionTransformRecord)CreateInstance <ActionTransformRecord>(); newAction.obToRead = objectToRecord; newAction.transformRecordType = recordType; newAction.transformLocation = (inWorldSpace) ? GlobalLocal.Global : GlobalLocal.Local; newAction.variableLocation = variableLocation; newAction.variableID = variableID; newAction.variables = variables; return(newAction); }
override public void ShowGUI(List <ActionParameter> parameters) { obToReadParameterID = Action.ChooseParameterGUI("Object to record:", parameters, obToReadParameterID, ParameterType.GameObject); if (obToReadParameterID >= 0) { obToReadConstantID = 0; obToRead = null; } else { obToRead = (GameObject)EditorGUILayout.ObjectField("Object to record:", obToRead, typeof(GameObject), true); obToReadConstantID = FieldToID(obToRead, obToReadConstantID); obToRead = IDToField(obToRead, obToReadConstantID, false); } EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Record:", GUILayout.MaxWidth(100f)); transformLocation = (VariableLocation)EditorGUILayout.EnumPopup(transformLocation); transformRecordType = (TransformRecordType)EditorGUILayout.EnumPopup(transformRecordType); EditorGUILayout.EndHorizontal(); if (isAssetFile) { variableLocation = VariableLocation.Global; } else { variableLocation = (VariableLocation)EditorGUILayout.EnumPopup("Variable location:", variableLocation); } if (variableLocation == VariableLocation.Global) { variableID = AdvGame.GlobalVariableGUI("Record to variable:", variableID, VariableType.Vector3); } else if (variableLocation == VariableLocation.Local) { variableID = AdvGame.LocalVariableGUI("Record to variable:", variableID, VariableType.Vector3); } AfterRunningOption(); }
override public void ShowGUI(List <ActionParameter> parameters) { obToReadParameterID = Action.ChooseParameterGUI("Object to record:", parameters, obToReadParameterID, ParameterType.GameObject); if (obToReadParameterID >= 0) { obToReadConstantID = 0; obToRead = null; } else { obToRead = (GameObject)EditorGUILayout.ObjectField("Object to record:", obToRead, typeof(GameObject), true); obToReadConstantID = FieldToID(obToRead, obToReadConstantID); obToRead = IDToField(obToRead, obToReadConstantID, false); } EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Record:", GUILayout.MaxWidth(100f)); transformLocation = (GlobalLocal)EditorGUILayout.EnumPopup(transformLocation); transformRecordType = (TransformRecordType)EditorGUILayout.EnumPopup(transformRecordType); EditorGUILayout.EndHorizontal(); variableLocation = (VariableLocation)EditorGUILayout.EnumPopup("Variable location:", variableLocation); switch (variableLocation) { case VariableLocation.Global: variableParameterID = Action.ChooseParameterGUI("Record to variable:", parameters, variableParameterID, ParameterType.GlobalVariable); if (variableParameterID < 0) { variableID = AdvGame.GlobalVariableGUI("Record to variable:", variableID, VariableType.Vector3); } break; case VariableLocation.Local: if (!isAssetFile) { variableParameterID = Action.ChooseParameterGUI("Record to variable:", parameters, variableParameterID, ParameterType.LocalVariable); if (variableParameterID < 0) { variableID = AdvGame.LocalVariableGUI("Record to variable:", variableID, VariableType.Vector3); } } else { EditorGUILayout.HelpBox("Local variables cannot be accessed in ActionList assets.", MessageType.Info); } break; case VariableLocation.Component: variableParameterID = Action.ChooseParameterGUI("Record to variable:", parameters, variableParameterID, ParameterType.ComponentVariable); if (variableParameterID >= 0) { variables = null; variablesConstantID = 0; } else { variables = (Variables)EditorGUILayout.ObjectField("Component:", variables, typeof(Variables), true); variablesConstantID = FieldToID <Variables> (variables, variablesConstantID); variables = IDToField <Variables> (variables, variablesConstantID, false); if (variables != null) { variableID = AdvGame.ComponentVariableGUI("Record to variable:", variableID, VariableType.Vector3, variables); } } break; } AfterRunningOption(); }