/// <summary> /// Gets the node tags under this object. /// </summary> /// <returns> /// The node tags under me. /// </returns> public List <string> GetNodeTagsUnderMe( ) { List <string> tagList = new List <string>(); ViNode[] nodes = GetComponentsInChildren <ViNode>(); if (nodes != null && nodes.Length > 0) { for (int i = 0; i < nodes.Length; i++) { DialogPartNode asDlg = nodes[i] as DialogPartNode; if (asDlg != null) { string[] tags = asDlg.GetNodeTags(); for (int k = 0; k < tags.Length; k++) { tagList.Add(tags[k]); } } else { string tag = nodes[i].GetNodeTag(nodes[i].name); tagList.Add(tag); } } } return(tagList); }
static public void DrawDialogTextBoxAndNameField(DialogPartNode node) { EditorGUILayout.BeginHorizontal(); GUILayout.Space(15f); if (GUILayout.Button("Find")) { DialogPartNodeUtility.FindNameTextBox(node); } EditorGUILayout.LabelField("NameTextBox", GUILayout.Width(100f)); node.m_NameTextBox = (ViNoTextBox)EditorGUILayout.ObjectField(node.m_NameTextBox, typeof(ViNoTextBox), true); if (node.m_NameTextBox != null) { node.m_NameHndName = node.m_NameTextBox.name; } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Space(15f); if (GUILayout.Button("Find")) { DialogPartNodeUtility.FindDialogTextBox(node); } EditorGUILayout.LabelField("TextBox", GUILayout.Width(100f)); node.m_ViNoTextBox = (ViNoTextBox)EditorGUILayout.ObjectField(node.m_ViNoTextBox, typeof(ViNoTextBox), true); if (node.m_ViNoTextBox != null) { node.m_DialogHndName = node.m_ViNoTextBox.name; } EditorGUILayout.EndHorizontal(); }
static public void DrawSceneCategory(DialogPartNode node, DialogPartData unit) { if (EditorGUIUtility.isProSkin) { GUI.contentColor = Color.white; GUICommon.DrawLineSpace(2f, 22f); EditorGUILayout.BeginHorizontal(); GUILayout.Space(15f); sceneToggle = EditorGUILayout.Foldout(sceneToggle, "Scene"); EditorGUILayout.EndHorizontal(); } else { EditorGUILayout.BeginHorizontal(); GUILayout.Space(15f); sceneToggle = EditorGUILayout.Foldout(sceneToggle, "Scene"); EditorGUILayout.EndHorizontal(); GUI.contentColor = Color.white; GUICommon.DrawLineSpace(3f, 1f); } if (sceneToggle) { NodeGUI.DrawLayoutSceneField(unit); } }
static public void DrawDialogCategory(DialogPartNode node, DialogPartData unit) { if (EditorGUIUtility.isProSkin) { GUI.contentColor = Color.white; GUICommon.DrawLineSpace(2f, 22f); EditorGUILayout.BeginHorizontal(); GUILayout.Space(15f); dialogToggle = EditorGUILayout.Foldout(dialogToggle, "Dialog"); EditorGUILayout.EndHorizontal(); } else { EditorGUILayout.BeginHorizontal(); GUILayout.Space(15f); dialogToggle = EditorGUILayout.Foldout(dialogToggle, "Dialog"); EditorGUILayout.EndHorizontal(); GUI.contentColor = Color.white; GUICommon.DrawLineSpace(3f, 1f); } if (dialogToggle) { // will be Drawn TextBox and NameTextBox field... // . // ... NodeGUI.DrawLayoutNameField(unit); NodeGUI.DrawLayoutDialogTextField(unit); } }
static public void ImportText(DialogPartNode dlg, string text, string blockDelimiter, string[] nameDelimiter, bool overWrite) { string[] delimiter = { blockDelimiter }; //{ System.Environment.NewLine + System.Environment.NewLine }; string[] blocks = text.Split(delimiter, System.StringSplitOptions.None); int dlgID = 0; if (dlg != null) { if (overWrite) { dlg.dlgDataList.Clear(); } foreach (string s in blocks) { string[] temp = s.Split(nameDelimiter, System.StringSplitOptions.None); if (temp.Length > 1) { DialogPartData data = new DialogPartData(); data.dialogID = dlgID; data.nameText = temp[0]; data.dialogText = temp[1]; data.isName = true; dlg.AddData(data); } else { dlg.AddData("", s); } dlgID++; } // Debug.Log( "Imported Text."); } }
static public void OnGUI_a(DialogPartNode node, ref DialogPartData unit, int index, ViNoTextBox textBox, ViNoTextBox nameTextBox, int viewMode) { if (!EditorGUIUtility.isProSkin) { GUICommon.DrawLineSpace(0f, 1f); } switch (viewMode) { case 0: // Actions. DrawActionViewMode(unit.actionID, node, ref unit, index, textBox, nameTextBox); break; case 1: // Edit Text. DrawEditTextViewMode(unit.actionID, node, ref unit, index, textBox, nameTextBox); break; // case 2: // XML. // DialogPartNodeInspector.DrawXMLImportField( node ); // break; } /* * case 1: * * EditorGUILayout.BeginHorizontal(); * EditorGUILayout.LabelField ( "DIALOG_ID:" + unit.dialogID.ToString () , GUILayout.Width( 100f) ); * unit.dialogText = EditorGUILayout.TextArea( unit.dialogText , GUI.skin.textArea ); * * EditorGUILayout.EndHorizontal(); * * break; * } * //*/ }
static public void Swap2Items(DialogPartNode targetNode) { int idx1 = -1; int idx2 = -1; for (int i = 0; i < targetNode.dlgDataList.Count; i++) { if (targetNode.dlgDataList[i].active) { if (idx1 == -1) { idx1 = i; } else if (idx2 == -1) { idx2 = i; break; } } } if (idx1 != -1 && idx2 != -1) { DialogPartData data1 = targetNode.dlgDataList[idx1]; DialogPartData data2 = targetNode.dlgDataList[idx2]; targetNode.dlgDataList[idx1] = data2; targetNode.dlgDataList[idx2] = data1; } else { Debug.Log("please check 2 items when swap items."); } }
public static void ImportText( DialogPartNode dlg , string text , string blockDelimiter , string[] nameDelimiter , bool overWrite ) { string[] delimiter = { blockDelimiter }; //{ System.Environment.NewLine + System.Environment.NewLine }; string[] blocks = text.Split(delimiter, System.StringSplitOptions.None ); int dlgID = 0; if( dlg != null ){ if( overWrite ){ dlg.dlgDataList.Clear(); } foreach (string s in blocks) { string[] temp = s.Split( nameDelimiter, System.StringSplitOptions.None ); if( temp.Length > 1 ){ DialogPartData data = new DialogPartData(); data.dialogID = dlgID; data.nameText = temp[ 0 ]; data.dialogText = temp[ 1 ]; data.isName = true; dlg.AddData( data ); } else{ dlg.AddData( "" , s ); } dlgID++; } // Debug.Log( "Imported Text."); } }
public static void FindNameTextBox( DialogPartNode node ) { GameObject nameTextBox = GameObject.Find( "TextBox_Name"); if( nameTextBox != null ){ node.m_NameTextBox = nameTextBox.GetComponent<ViNoTextBox>(); EditorGUIUtility.PingObject( node.m_NameTextBox.gameObject ); } }
static public void DrawImportField(DialogPartNode targetNode) { GUICommon.DrawLineSpace(10f, 5f); #if false if (GUILayout.Button("Log Scenario Script in Console")) { DialogPartNodeUtility.ExportScenarioScript(targetNode); } #endif /* m_ImportDataTypeID = GUILayout.Toolbar( m_ImportDataTypeID , m_ImportDataTypes ); * string dataType = m_ImportDataTypes[ m_ImportDataTypeID ]; * switch( dataType ){ * case "XML": * //*/ DrawXMLImportField(targetNode); /* break; * * case "Text": * EditorGUILayout.LabelField( "Overwrite ?" ); * m_IsOverwrite = EditorGUILayout.Toggle( m_IsOverwrite ); * * EditorGUILayout.LabelField( "Name Delimiter" ); * m_NameDelimiter = EditorGUILayout.TextArea( m_NameDelimiter ); * * EditorGUILayout.LabelField( "Block Delimiter" ); * m_BlockDelimiter = EditorGUILayout.TextArea( m_BlockDelimiter ); * * m_TxtAsset = EditorGUILayout.ObjectField( "Text" , m_TxtAsset , typeof(TextAsset) , false ) as TextAsset; * if( m_TxtAsset == null ){ * GUI.enabled = false; * } * * if( GUILayout.Button( "Import" ) ){ * if( EditorUtility.DisplayDialog( "Overwrite ?" , "Are you sure you really want to import?" * , "Yes", "Cancel") ){ * string[] nameDelimiter = { m_NameDelimiter }; * DialogPartNodeUtility.ImportText( targetNode , m_TxtAsset.text , m_BlockDelimiter , nameDelimiter , true ); * } * } * * GUI.enabled = true; * * EditorGUILayout.LabelField( "Text Flagment" ); * m_FlagmentText = EditorGUILayout.TextArea( m_FlagmentText ); * if( GUILayout.Button( "Add Text Flagment" ) ){ * string[] nameDelimiter = { m_NameDelimiter }; * DialogPartNodeUtility.ImportText( targetNode , m_FlagmentText , m_BlockDelimiter , nameDelimiter , false ); * } * * break; * } * * //*/ }
static public void FindDialogTextBox(DialogPartNode node) { GameObject textBox = GameObject.Find("TextBox"); if (textBox != null) { node.m_ViNoTextBox = textBox.GetComponent <ViNoTextBox>(); EditorGUIUtility.PingObject(node.m_ViNoTextBox.gameObject); } }
static public DialogPartNode CreateDialogNode(string nameText, string dialogText) { Transform parentNodeTra = (Selection.activeGameObject != null) ? Selection.activeGameObject.transform : null; DialogPartNode dlgNode = ViNoToolUtil.AddDialogPartNode(parentNodeTra); dlgNode.AddData(nameText, dialogText); EditorGUIUtility.PingObject(dlgNode.gameObject); return(dlgNode); }
static public void LoadViNodeTemplates( ) { if (animNode == null) { animNode = LoadViNodeTempl <AnimationNode>("AnimationNode"); } if (dialogNode == null) { dialogNode = LoadViNodeTempl <DialogPartNode>("DialogPartNode"); } }
void OnExitDialog(Hashtable args) { GameObject dlgNodeObj = GameObject.Find(args["nodeName"] as string); if (dlgNodeObj != null) { DialogPartNode dlg = dlgNodeObj.GetComponent <DialogPartNode>(); string id = args["ID"] as string; int messageID = int.Parse(id); dlg.TriggerOnExitEvent(messageID); } }
public override void OnInspectorGUI() { serializedObject.Update(); DialogPartNode targetNode = target as DialogPartNode; // m_ScrollPos = EditorGUILayout.BeginScrollView( m_ScrollPos ); OnGUI_DialogPart(targetNode); // EditorGUILayout.EndScrollView(); serializedObject.ApplyModifiedProperties(); }
// static private Vector2 m_ScrollPos = Vector2.zero; void OnEnable( ) { // Debug.Log( "OnEnable DialogPartNode"); DialogPartNode dlgNode = (target as DialogPartNode); serializedObject.FindProperty("__dummy__"); // soundDataProp = serializedObject.FindProperty ("soundData"); // DialogPartNodeUtility.RestoreSceneData( dlgNode ); dlgNode.FindTextBoxObjects(); // Assign DialogID. dlgNode.ReAssignDialogIDsInThisObject(); if (m_SoundPlInstance == null) { m_SoundPlInstance = GameObject.FindObjectOfType(typeof(ViNoSoundPlayer)) as ViNoSoundPlayer; } if (m_SoundPlInstance != null) { m_BgmEntries = m_SoundPlInstance.GetSoundEntryNames(); m_VoiceEntries = m_SoundPlInstance.GetVoiceEntryNames(); m_SeEntries = m_SoundPlInstance.GetSeEntryNames(); #if false ScriptableSoundData sound = soundDataProp.objectReferenceValue as ScriptableSoundData; if (sound != null) { /* m_SoundPlInstance.soundEntry = sound.bgmEntries; * m_SoundPlInstance.seEntries = sound.seEntries; * m_SoundPlInstance.voiceEntries = sound.voiceEntries; * * //*/ } #endif } #if false if (m_AnimManagerInstance == null) { m_AnimManagerInstance = GameObject.FindObjectOfType(typeof(ViNoAnimationManager)) as ViNoAnimationManager; } if (m_AnimManagerInstance != null) { m_AnimManagerInstance.CollectAnimationNames(); m_AnimationEntries = m_AnimManagerInstance.animNames; } #endif }
static public DialogPartNode AddDialogPartNode(Transform parent) { DialogPartNode dlgNode = ViNoToolUtil.AddViNodeGameObject <DialogPartNode>("Dialog", parent); //selection.transform ); GameObject textBoxObj = GameObject.Find("TextBox"); if (textBoxObj != null) { dlgNode.m_ViNoTextBox = textBoxObj.GetComponent <ViNoTextBox>(); Transform nameTextTra = textBoxObj.transform.FindChild("TextBox_Name"); if (nameTextTra != null) { dlgNode.m_NameTextBox = nameTextTra.GetComponent <ViNoTextBox>(); } } return(dlgNode); }
static public void DrawActorCategory(DialogPartNode node, DialogPartData unit) { if (EditorGUIUtility.isProSkin) { GUI.contentColor = Color.white; GUICommon.DrawLineSpace(2f, 22f); EditorGUILayout.BeginHorizontal(); GUILayout.Space(15f); actorToggle = EditorGUILayout.Foldout(actorToggle, "Actors"); EditorGUILayout.EndHorizontal(); } else { EditorGUILayout.BeginHorizontal(); GUILayout.Space(15f); actorToggle = EditorGUILayout.Foldout(actorToggle, "Actors"); EditorGUILayout.EndHorizontal(); GUI.contentColor = Color.white; GUICommon.DrawLineSpace(3f, 1f); } if (actorToggle) { switch (unit.actionID) { case DialogPartNodeActionType.MoveActor: case DialogPartNodeActionType.EnterActor: NodeGUI.DrawLayoutEnterActorField(unit); break; // case DialogPartNodeActionType.Shake: case DialogPartNodeActionType.ExitActor: NodeGUI.DrawLayoutExitActorField(unit); break; /* case DialogPartNodeActionType.ChangeState: * NodeGUI.DrawLayoutChangeStateActorField( unit ); * break; * //*/ } } }
static public void DrawEnterActorActionsView(DialogPartNode node, ref DialogPartData unit) { if (unit.enterActorEntries == null || unit.enterActorEntries.Length == 0) { unit.enterActorEntries = new DialogPartData.ActorEntry[1]; unit.enterActorEntries[0] = new DialogPartData.ActorEntry(); } EditorGUILayout.BeginHorizontal(); GUI.enabled = false; GUILayout.Space(15f); string[] label = new string[k_PositionEntryNum]; int enterActorNum = unit.enterActorEntries.Length; for (int i = 0; i < enterActorNum; i++) { int posIndex = 1; switch (unit.enterActorEntries[i].position) { case ViNoToolkit.SceneEvent.ActorPosition.left: posIndex = 0; break; case ViNoToolkit.SceneEvent.ActorPosition.middle_left: posIndex = 1; break; case ViNoToolkit.SceneEvent.ActorPosition.center: posIndex = 2; break; case ViNoToolkit.SceneEvent.ActorPosition.middle_right: posIndex = 3; break; case ViNoToolkit.SceneEvent.ActorPosition.right: posIndex = 4; break; } label[posIndex] = unit.enterActorEntries[i].actorName; } for (int i = 0; i < k_PositionEntryNum; i++) { if (string.IsNullOrEmpty(label[i])) { label[i] = ""; } GUILayout.Button(label[i]); //, GUILayout.Width( 100f ) ); } GUI.enabled = true; EditorGUILayout.EndHorizontal(); }
public static void DrawActorCategory( DialogPartNode node , DialogPartData unit ) { if( EditorGUIUtility.isProSkin ){ GUI.contentColor = Color.white; GUICommon.DrawLineSpace( 2f , 22f ); EditorGUILayout.BeginHorizontal(); GUILayout.Space( 15f ); actorToggle = EditorGUILayout.Foldout( actorToggle , "Actors" ); EditorGUILayout.EndHorizontal(); } else{ EditorGUILayout.BeginHorizontal(); GUILayout.Space( 15f ); actorToggle = EditorGUILayout.Foldout( actorToggle , "Actors" ); EditorGUILayout.EndHorizontal(); GUI.contentColor = Color.white; GUICommon.DrawLineSpace( 3f , 1f ); } if( actorToggle ){ switch( unit.actionID ){ case DialogPartNodeActionType.MoveActor: case DialogPartNodeActionType.EnterActor: NodeGUI.DrawLayoutEnterActorField( unit ); break; // case DialogPartNodeActionType.Shake: case DialogPartNodeActionType.ExitActor: NodeGUI.DrawLayoutExitActorField( unit ); break; /* case DialogPartNodeActionType.ChangeState: NodeGUI.DrawLayoutChangeStateActorField( unit ); break; //*/ } } }
public static void ExportScenarioScript( DialogPartNode targetNode ) { // int num = targetNode.GetMessageNum(); System.Text.StringBuilder sb = new System.Text.StringBuilder(); targetNode.ToScenarioScript( ref sb ); // TextAsset text = new TextAsset(); // AssetDatabase.CreateAsset(text, "Assets/" + targetNode.name + ".txt" ); // text.text = sb.ToString(); // AssetDatabase.SaveAssets(); File.WriteAllText(Application.dataPath + "/" + targetNode.name + ".txt", sb.ToString() ) ; AssetDatabase.Refresh(); /* for( int i=0;i<num;i++){ DialogPartData data = targetNode.GetItemAt( i ); switch( data.actionID ){ case DialogPartNodeActionType.Dialog: string nm = targetNode.GetNameBy( i ); string msg = targetNode.GetMessageBy( i ); if( ! string.IsNullOrEmpty( nm ) ){ sb.Append( nm + ":" ); sb.Append( System.Environment.NewLine ); } sb.Append( msg ); sb.Append( System.Environment.NewLine ); sb.Append( System.Environment.NewLine ); break; case DialogPartNodeActionType.EnterActor: case DialogPartNodeActionType.ExitActor: case DialogPartNodeActionType.Shake: case DialogPartNodeActionType.ChangeState: case DialogPartNodeActionType.MoveActor: sb.Append( "[" + data.actionID + "]" ); sb.Append( System.Environment.NewLine ); break; } } //*/ Debug.Log ( sb.ToString() ); }
static public void ExportScenarioScript(DialogPartNode targetNode) { // int num = targetNode.GetMessageNum(); System.Text.StringBuilder sb = new System.Text.StringBuilder(); targetNode.ToScenarioScript(ref sb); // TextAsset text = new TextAsset(); // AssetDatabase.CreateAsset(text, "Assets/" + targetNode.name + ".txt" ); // text.text = sb.ToString(); // AssetDatabase.SaveAssets(); File.WriteAllText(Application.dataPath + "/" + targetNode.name + ".txt", sb.ToString()); AssetDatabase.Refresh(); /* * for( int i=0;i<num;i++){ * DialogPartData data = targetNode.GetItemAt( i ); * switch( data.actionID ){ * case DialogPartNodeActionType.Dialog: * string nm = targetNode.GetNameBy( i ); * string msg = targetNode.GetMessageBy( i ); * if( ! string.IsNullOrEmpty( nm ) ){ * sb.Append( nm + ":" ); * sb.Append( System.Environment.NewLine ); * } * sb.Append( msg ); * sb.Append( System.Environment.NewLine ); * sb.Append( System.Environment.NewLine ); * break; * * case DialogPartNodeActionType.EnterActor: * case DialogPartNodeActionType.ExitActor: * case DialogPartNodeActionType.Shake: * case DialogPartNodeActionType.ChangeState: * case DialogPartNodeActionType.MoveActor: * sb.Append( "[" + data.actionID + "]" ); * sb.Append( System.Environment.NewLine ); * break; * } * } * //*/ Debug.Log(sb.ToString()); }
static public void DrawDialogListUtil(DialogPartNode node) { GUICommon.DrawLineSpace(10f, 5f); ViNoEditorUtil.BeginGUIColor(Color.green, GUI.backgroundColor, GUI.contentColor); //Color.black , Color.white ); GUILayout.BeginHorizontal(); // GUILayout.Space( Screen.width/2f ); if (GUILayout.Button("+")) { // if( GUILayout.Button( ViNoEditorResources.plusIcon ) ){ // node.AddData( new DialogPartData() );// AddData( node ); // Debug.Log( "Register Scene Undo"); Undo.RegisterUndo(node, node.name); // Undo.SetSnapshotTarget( node , node.name ); int itemNum = node.GetMessageNum(); node.AddItemAt(itemNum); node.ReAssignDialogIDsInThisObject(); } if (GUILayout.Button("-")) { // if( GUILayout.Button( ViNoEditorResources.minusIcon ) ){//} , GUILayout.Width( sa ) ) ){ Undo.RegisterUndo(node, node.name); // if( EditorUtility.DisplayDialog( "Remove the Last Item ?" , "Are you sure you really want to remove?" // , "Yes", "Cancel" ) ){ if (node.dlgDataList != null && node.dlgDataList.Count > 0) { node.dlgDataList.RemoveAt(node.dlgDataList.Count - 1); } node.ReAssignDialogIDsInThisObject(); // } } GUILayout.EndHorizontal(); ViNoEditorUtil.EndGUIColor(); }
static public void DrawVoicePopupField(DialogPartNode node, DialogPartData unit) { #if true unit.voiceAudioKey = EditorGUILayout.TextField(unit.voiceAudioKey, GUILayout.Width(175f)); /* * if( DialogPartNodeInspector.voiceEntries != null ){ * unit.voiceAudioID = EditorGUILayout.Popup( unit.voiceAudioID , DialogPartNodeInspector.voiceEntries , GUILayout.Width( 75f ) ); * if( DialogPartNodeInspector.voiceEntries.Length > unit.voiceAudioID ){ * unit.voiceAudioKey = DialogPartNodeInspector.voiceEntries[ unit.voiceAudioID ]; * } * } * // Show Dummy Contents. * else{ * unit.voiceAudioID = EditorGUILayout.Popup( unit.voiceAudioID , kDummyContents , GUILayout.Width( 75f ) ); * } * // unit.voiceAudioKey = EditorGUILayout.TextField( unit.voiceAudioKey , GUI.skin.textArea, GUILayout.Width(50f ) , GUILayout.Height(20f)); * //*/ #else if (node.soundData != null) { if (node.soundData.voiceEntries != null) { string[] entries = node.soundData.GetVoiceEntryNames(); unit.voiceAudioID = EditorGUILayout.Popup(unit.voiceAudioID, entries, GUILayout.Width(75f)); if (entries.Length > unit.voiceAudioID) { unit.voiceAudioKey = entries[unit.voiceAudioID]; } } // Show Dummy Contents. else { unit.voiceAudioID = EditorGUILayout.Popup(unit.voiceAudioID, kDummyContents, GUILayout.Width(75f)); } } #endif }
static public void DrawXMLImportField(DialogPartNode targetNode) { GUILayout.BeginHorizontal(); GUILayout.Space(30f); targetNode.xmlData = EditorGUILayout.ObjectField("XMLData", targetNode.xmlData, typeof(TextAsset), false) as TextAsset; EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Export")) { string fileName = targetNode.name + ".xml"; targetNode.SerializeXML(fileName); string path = ViNoGameSaveLoad.GetDataPath() + "/" + fileName; AssetDatabase.Refresh(); Debug.Log("Saved as Xml file path:" + path); } GUI.enabled = (targetNode.xmlData != null) ? true : false; if (GUILayout.Button("Import")) { if (EditorUtility.DisplayDialog("Overwrite ?", "Are you sure you really want to import?" , "Yes", "Cancel")) { targetNode.DeserializeXML(targetNode.xmlData.text); m_ViewMode = 0; } } GUI.enabled = true; EditorGUILayout.EndHorizontal(); }
// static private string[] kDummyContents = { "NO ENTRY" }; static public void DrawBGMPopupField(DialogPartNode node, DialogPartData unit) { #if true unit.bgmAudioKey = EditorGUILayout.TextField(unit.bgmAudioKey, GUILayout.Width(175f)); /* if( DialogPartNodeInspector.bgmEntries != null ){ * unit.bgmAudioID = EditorGUILayout.Popup( unit.bgmAudioID , DialogPartNodeInspector.bgmEntries , GUILayout.Width( 75f ) ); * if( DialogPartNodeInspector.bgmEntries.Length > unit.bgmAudioID ){ * unit.bgmAudioKey = DialogPartNodeInspector.bgmEntries[ unit.bgmAudioID ]; * } * } * // Show Dummy Contents. * else{ * unit.bgmAudioID = EditorGUILayout.Popup( unit.bgmAudioID , kDummyContents , GUILayout.Width( 75f ) ); * } * //*/ #else if (node.soundData != null) { if (node.soundData.bgmEntries != null) { string[] entries = node.soundData.GetSoundEntryNames(); unit.bgmAudioID = EditorGUILayout.Popup(unit.bgmAudioID, entries, GUILayout.Width(75f)); if (entries.Length > unit.bgmAudioID) { unit.bgmAudioKey = entries[unit.bgmAudioID]; } } // Show Dummy Contents. else { unit.bgmAudioID = EditorGUILayout.Popup(unit.bgmAudioID, kDummyContents, GUILayout.Width(75f)); } } #endif }
static public void CreateSelectionsNodeOfMenu( ) { ISelectionsCtrl sel = GameObject.FindObjectOfType(typeof(ISelectionsCtrl)) as ISelectionsCtrl; if (sel == null) { DrawObjectsTab.CreateGUISelectionsCtrl(); } Transform parentNodeTra = (Selection.activeGameObject != null) ? Selection.activeGameObject.transform : null; SelectionsNode node = ViNoToolUtil.AddViNodeGameObject <SelectionsNode>("Selections", parentNodeTra); ViNode childNode1 = ViNoToolUtil.AddViNodeGameObject <ViNode>("Selected1", node.transform); ViNode childNode2 = ViNoToolUtil.AddViNodeGameObject <ViNode>("Selected2", node.transform); DialogPartNode dlg1 = CreateDialogNode("name", "Selected 1"); //ViNoToolUtil.AddViNodeGameObject<DialogPartNode>( "Dialog" , childNode1.transform ); dlg1.transform.parent = childNode1.transform; DialogPartNode dlg2 = CreateDialogNode("name", "Selected 2"); //ViNoToolUtil.AddViNodeGameObject<DialogPartNode>( "Dialog" , childNode2.transform ); dlg2.transform.parent = childNode2.transform; node.units = new SelectionsNode.SelectUnit [2]; node.units[0] = new SelectionsNode.SelectUnit(); node.units[0].targetNode = childNode1; node.units[0].text = "Selection 1"; node.units[0].index = 0; node.units[1] = new SelectionsNode.SelectUnit(); node.units[1].targetNode = childNode2; node.units[1].text = "Selection 2"; node.units[1].index = 1; EditorGUIUtility.PingObject(node.gameObject); }
static public void DrawEditTextViewMode(DialogPartNodeActionType action, DialogPartNode node, ref DialogPartData unit, int index, ViNoTextBox textBox, ViNoTextBox nameTextBox) { // EditorGUILayout.LabelField( unit.actionName ); switch (action) { case DialogPartNodeActionType.Dialog: DrawLayoutNameField(unit); DrawLayoutDialogTextField(unit); break; default: DrawItemBarBackground(); EditorGUILayout.BeginHorizontal(); GUILayout.Space(15f); // EditorGUILayout.SelectableLabel( action.ToString() ); EditorGUILayout.LabelField("[" + action.ToString() + "]"); EditorGUILayout.EndHorizontal(); break; } }
public static void DrawSceneCategory( DialogPartNode node , DialogPartData unit ) { if( EditorGUIUtility.isProSkin ){ GUI.contentColor = Color.white; GUICommon.DrawLineSpace( 2f , 22f ); EditorGUILayout.BeginHorizontal(); GUILayout.Space( 15f ); sceneToggle = EditorGUILayout.Foldout( sceneToggle , "Scene" ); EditorGUILayout.EndHorizontal(); } else{ EditorGUILayout.BeginHorizontal(); GUILayout.Space( 15f ); sceneToggle = EditorGUILayout.Foldout( sceneToggle , "Scene" ); EditorGUILayout.EndHorizontal(); GUI.contentColor = Color.white; GUICommon.DrawLineSpace( 3f , 1f ); } if( sceneToggle ){ NodeGUI.DrawLayoutSceneField( unit ); } }
static public void DrawSoundCategory(DialogPartNode node, DialogPartData unit) { if (EditorGUIUtility.isProSkin) { GUI.contentColor = Color.white; GUICommon.DrawLineSpace(2f, 22f); EditorGUILayout.BeginHorizontal(); GUILayout.Space(15f); soundsToggle = EditorGUILayout.Foldout(soundsToggle, "Sounds"); EditorGUILayout.EndHorizontal(); } else { EditorGUILayout.BeginHorizontal(); GUILayout.Space(15f); soundsToggle = EditorGUILayout.Foldout(soundsToggle, "Sounds"); EditorGUILayout.EndHorizontal(); GUI.contentColor = Color.white; GUICommon.DrawLineSpace(3f, 1f); } if (soundsToggle) { float space = 30f; EditorGUILayout.BeginHorizontal(); GUILayout.Space(space); unit.isBGM = EditorGUILayout.Toggle(unit.isBGM, GUILayout.Width(10f)); EditorGUILayout.LabelField("Bgm", GUILayout.Width(35f)); EditorGUILayout.LabelField(folderIconContent, GUILayout.Width(16f)); if (unit.isBGM) { DrawBGMPopupField(node, unit); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Space(space); unit.isSE = EditorGUILayout.Toggle(unit.isSE, GUILayout.Width(10f)); EditorGUILayout.LabelField("SE", GUILayout.Width(35f)); EditorGUILayout.LabelField(folderIconContent, GUILayout.Width(16f)); if (unit.isSE) { DrawSEPopupField(node, unit); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Space(space); unit.isVoice = EditorGUILayout.Toggle(unit.isVoice, GUILayout.Width(10f)); EditorGUILayout.LabelField("Voice", GUILayout.Width(35f)); EditorGUILayout.LabelField(folderIconContent, GUILayout.Width(16f)); if (unit.isVoice) { DrawVoicePopupField(node, unit); } EditorGUILayout.EndHorizontal(); } }
public static void DrawDialogTextBoxAndNameField( DialogPartNode node ) { EditorGUILayout.BeginHorizontal(); GUILayout.Space( 15f ); if( GUILayout.Button( "Find" ) ){ DialogPartNodeUtility.FindNameTextBox( node ); } EditorGUILayout.LabelField( "NameTextBox" , GUILayout.Width( 100f) ); node.m_NameTextBox = (ViNoTextBox)EditorGUILayout.ObjectField( node.m_NameTextBox , typeof( ViNoTextBox ) , true ); if( node.m_NameTextBox != null ){ node.m_NameHndName = node.m_NameTextBox.name; } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Space( 15f ); if( GUILayout.Button( "Find" ) ){ DialogPartNodeUtility.FindDialogTextBox( node ); } EditorGUILayout.LabelField( "TextBox", GUILayout.Width( 100f) ); node.m_ViNoTextBox = (ViNoTextBox)EditorGUILayout.ObjectField( node.m_ViNoTextBox , typeof( ViNoTextBox ) , true ); if( node.m_ViNoTextBox != null ){ node.m_DialogHndName = node.m_ViNoTextBox.name; } EditorGUILayout.EndHorizontal(); }
static public void CreateConvScene(string templScenePath) { GameObject sceneRoot = CreateTemplScene(templScenePath); sceneRoot.name = "A Conversation Scene"; string scenarioName = "A_Conversation"; if (!System.IO.Directory.Exists("Assets/" + scenarioName)) { AssetDatabase.CreateFolder("Assets", scenarioName); } GameObject scenarioObj = ViNoToolUtil.CreateANewScenario(scenarioName, true); GameObject startObj = scenarioObj.transform.FindChild("START").gameObject; // scenarioObj.transform.parent.transform.parent = sceneRoot.transform; GameObject node0 = new GameObject("0_Scene"); LoadSceneNode loadSceneNode = node0.AddComponent <LoadSceneNode>(); loadSceneNode.sceneName = "Scene1"; loadSceneNode.method = LoadSceneNode.Methods.DESTROY_AND_LOAD; loadSceneNode.withFadeIn = true; loadSceneNode.transform.parent = startObj.transform; DialogPartNode dlgNode = ViNoToolUtil.AddDialogPartNode(startObj.transform); dlgNode.name = "1_Dialog"; DialogPartData data0 = dlgNode.AddData("", ""); DialogPartData data1 = dlgNode.AddData("Sachi", "Hello. I am Sachi."); DialogPartData data2 = dlgNode.AddData("", ""); DialogPartData data3 = dlgNode.AddData("Maiko", "Hi. Sachi."); DialogPartData data4 = dlgNode.AddData("Sachi", "Bye Bye !"); DialogPartData data5 = dlgNode.AddData("Maiko", "Bye Bye !"); DialogPartData data6 = dlgNode.AddData("", ""); data0.enterActorEntries = new DialogPartData.ActorEntry[1]; data0.enterActorEntries[0] = new DialogPartData.ActorEntry(); data0.enterActorEntries[0].actorName = "Sachi"; data0.actionID = DialogPartNodeActionType.EnterActor; data0.enterActorEntries[0].position = ViNoToolkit.SceneEvent.ActorPosition.middle_left; data1.isName = true; data2.enterActorEntries = new DialogPartData.ActorEntry[1]; data2.enterActorEntries[0] = new DialogPartData.ActorEntry(); data2.enterActorEntries[0].actorName = "Maiko"; data2.actionID = DialogPartNodeActionType.EnterActor; data2.enterActorEntries[0].position = ViNoToolkit.SceneEvent.ActorPosition.middle_right; data3.isName = true; data4.isName = true; data5.isName = true; data6.actionID = DialogPartNodeActionType.ExitActor; data6.exitActorEntries = new DialogPartData.ActorEntry[2]; data6.exitActorEntries[0] = new DialogPartData.ActorEntry(); data6.exitActorEntries[1] = new DialogPartData.ActorEntry(); data6.exitActorEntries[0].actorName = "Sachi"; data6.exitActorEntries[1].actorName = "Maiko"; #if false GameObject parentObj = GameObject.Find("Panels"); DrawObjectsTab.CreateBG("BG", parentObj); GameObject ch1 = DrawObjectsTab.Create2Layer("Ch1", parentObj); GameObject ch2 = DrawObjectsTab.Create2Layer("Ch2", parentObj); ch1.transform.localPosition = new Vector3(-120f, 0f, 0f); ch2.transform.localPosition = new Vector3(120f, 0f, 0f); AssetDatabase.MoveAsset("Assets/BG", "Assets/" + scenarioName + "/BG"); AssetDatabase.MoveAsset("Assets/Ch1", "Assets/" + scenarioName + "/Ch1"); AssetDatabase.MoveAsset("Assets/Ch2", "Assets/" + scenarioName + "/Ch2"); #endif string scenarioFlagDataPath = "Assets/" + scenarioName + "/" + scenarioName + "Flags.asset"; string scenarioSaveDataPath = "Assets/" + scenarioName + "/" + scenarioName + "SaveData.asset"; FlagTable flagTable = ScriptableObjectUtility.CreateScriptableObject("FlagTable", scenarioFlagDataPath) as FlagTable; ViNoSaveInfo saveInfo = ScriptableObjectUtility.CreateScriptableObject("ViNoSaveInfo", scenarioSaveDataPath) as ViNoSaveInfo; ScenarioNode scenarioNode = scenarioObj.GetComponent <ScenarioNode>(); scenarioNode.m_PlayAtStart = true; scenarioNode.flagTable = flagTable; // scenarioNode.saveInfo = saveInfo; ScenarioCtrl scenarioCtrl = GameObject.FindObjectOfType(typeof(ScenarioCtrl)) as ScenarioCtrl; scenarioCtrl.quickSaveSlot = saveInfo; scenarioCtrl.saveInfo = saveInfo; // Create an ActorLibrary and a SceneLibrary. string actorLibPrefabPath = "Assets/" + scenarioName + "/ActorLibrary.prefab"; string sceneLibPrefabPath = "Assets/" + scenarioName + "/SceneLibrary.prefab"; ViNoScenarioDataUtil.CreateActorLibrary(actorLibPrefabPath); ViNoScenarioDataUtil.CreateSceneLibrary(sceneLibPrefabPath); GameObject.DestroyImmediate(GameObject.Find("ActorLibrary")); GameObject.DestroyImmediate(GameObject.Find("SceneLibrary")); // ViNoToolkit.ActorInfo actor1 = ViNoScenarioDataUtil.CreateActorInfo() as ViNoToolkit.ActorInfo; ViNoToolkit.SceneEvent sceneEvt = GameObject.FindObjectOfType(typeof(ViNoToolkit.SceneEvent)) as ViNoToolkit.SceneEvent; ViNoToolkit.ActorLibrary actorLib = AssetDatabase.LoadAssetAtPath(actorLibPrefabPath, typeof(ViNoToolkit.ActorLibrary)) as ViNoToolkit.ActorLibrary; ViNoToolkit.SceneLibrary sceneLib = AssetDatabase.LoadAssetAtPath(sceneLibPrefabPath, typeof(ViNoToolkit.SceneLibrary)) as ViNoToolkit.SceneLibrary; /* actorLib.actorEntries = new ViNoToolkit.ActorInfo[ 1 ]; * actorLib.actorEntries[ 0 ] = actor1; * //*/ sceneEvt.actorLib = actorLib; sceneEvt.sceneLib = sceneLib; }
public void OnGUI_DialogPart( DialogPartNode targetNode ) { // m_SelectedModeID = GUILayout.Toolbar( m_SelectedModeID , m_ModeItems ); // m_CurrMode = (Mode)m_SelectedModeID; // ------- There are two TextBox field before ! ------. DrawDialogTextBoxAndNameField( targetNode ); // ---------------------------------------------------. //TODO : TEST SOUND DATA PROPERTY!! #if false if ( soundDataProp != null){ EditorGUILayout.PropertyField( soundDataProp ); } /* EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField( "SoundData", GUILayout.Width( 100f) ); soundData = EditorGUILayout.ObjectField( soundData , typeof( ScriptableSoundData ) , true ) as ScriptableSoundData; // soundDataProp = EditorGUILayout.ObjectField( soundDataProp, typeof( ScriptableSoundData ) , true ) as ScriptableSoundData; EditorGUILayout.EndHorizontal(); //*/ #endif // EditorGUILayout.EndVertical(); // EditorGUILayout.BeginHorizontal(); // EditorGUILayout.EndHorizontal(); m_ViewMode = GUILayout.Toolbar( m_ViewMode , m_MenuItems ); // ViNoEditorUtil.BeginGreenColor(); string menu = m_MenuItems[ m_ViewMode ]; // View Mode : XML. if( menu == "XML" ){ ViNoEditorUtil.BeginGreenColor(); DrawImportField( targetNode ); ViNoEditorUtil.EndGUIColor(); } // Actions or Edit Text Mode. else{ #if true if( menu == "Actions" ){ EditorGUILayout.BeginHorizontal(); /* if( GUILayout.Button( "Open "+ System.Environment.NewLine +" Dialogs" )){ m_ShowAllToggle = ! m_ShowAllToggle; for( int i=0;i<targetNode.dlgDataList.Count;i++){ targetNode.dlgDataList[ i ].show = m_ShowAllToggle; } } //*/ if( GUILayout.Button( "Check " + System.Environment.NewLine + " ALL" )){ // if( GUILayout.Button( new GUIContent( "All" , ViNoEditorResources.checkAllcon ) , GUILayout.Width( 62f ) , GUILayout.Height( 22f ) ) ){// "Check " + System.Environment.NewLine + " ALL" )){ for( int i=0;i<targetNode.dlgDataList.Count;i++){ targetNode.dlgDataList[ i ].active = true; } } if( GUILayout.Button( "UNCheck" + System.Environment.NewLine + "ALL" )){ // if( GUILayout.Button( uncheckTex ) ){ for( int i=0;i<targetNode.dlgDataList.Count;i++){ targetNode.dlgDataList[ i ].active = false; } } if( GUILayout.Button( "Swap Checked"+ System.Environment.NewLine + "2 Items" )){ DialogPartNodeUtility.Swap2Items( targetNode ); } GUI.enabled = true; EditorGUILayout.EndHorizontal(); } #endif if( targetNode.dlgDataList != null ){ for( int i=0;i<targetNode.dlgDataList.Count;i++){ DialogPartData unit = targetNode.dlgDataList[ i ]; if( menu == "Actions" ){//&& unit.actionID != DialogPartNodeActionType.Dialog ){ NodeGUI.DrawDialogItemBar( targetNode , ref unit , i , targetNode.m_ViNoTextBox , targetNode.m_NameTextBox ); } NodeGUI.OnGUI_a( targetNode , ref unit , i , targetNode.m_ViNoTextBox , targetNode.m_NameTextBox , m_ViewMode ); } } else{ DialogPartNodeUtility.Initialize( targetNode ); } DialogPartNodeInspector.DrawDialogListUtil( targetNode ); } // ViNoEditorUtil.EndGUIColor(); }
// static private string[] kDummyContents = { "NO ENTRY" }; public static void DrawBGMPopupField( DialogPartNode node , DialogPartData unit ) { #if true unit.bgmAudioKey = EditorGUILayout.TextField( unit.bgmAudioKey , GUILayout.Width( 175f ) ); /* if( DialogPartNodeInspector.bgmEntries != null ){ unit.bgmAudioID = EditorGUILayout.Popup( unit.bgmAudioID , DialogPartNodeInspector.bgmEntries , GUILayout.Width( 75f ) ); if( DialogPartNodeInspector.bgmEntries.Length > unit.bgmAudioID ){ unit.bgmAudioKey = DialogPartNodeInspector.bgmEntries[ unit.bgmAudioID ]; } } // Show Dummy Contents. else{ unit.bgmAudioID = EditorGUILayout.Popup( unit.bgmAudioID , kDummyContents , GUILayout.Width( 75f ) ); } //*/ #else if( node.soundData != null ){ if( node.soundData.bgmEntries != null ){ string[] entries = node.soundData.GetSoundEntryNames(); unit.bgmAudioID = EditorGUILayout.Popup( unit.bgmAudioID , entries , GUILayout.Width( 75f ) ); if( entries.Length > unit.bgmAudioID ){ unit.bgmAudioKey = entries[ unit.bgmAudioID ]; } } // Show Dummy Contents. else{ unit.bgmAudioID = EditorGUILayout.Popup( unit.bgmAudioID , kDummyContents , GUILayout.Width( 75f ) ); } } #endif }
void OnGUI() { /* if( m_DialogIconTex == null || m_ArrowBackTex == null || m_ArrowForwardTex == null ){ LoadIcons(); } //*/ #if false if( EditorGUIUtility.isProSkin ){ ViNoEditorUtil.BeginGUIColor( GUI.color , Color.green , GUI.contentColor ); } else{ // ViNoEditorUtil.BeginGUIColor( Color.white , new Color( 0f , 0.8f , 0f , 1f ) , Color.black ); ViNoEditorUtil.BeginGUIColor( Color.white , new Color( 0.8f , 0.8f , 0.8f , 1f ) , Color.black ); } #endif m_ScrollPos = EditorGUILayout.BeginScrollView( m_ScrollPos ); #if false EditorGUILayout.BeginHorizontal(); // GUILayout.Box( m_DialogIconTex , GUILayout.Width( 44f ) , GUILayout.Height( 44f ) ); current = EditorGUILayout.ObjectField( "Target" , current , typeof( DialogPartNode ) , true ) as DialogPartNode; // current = EditorGUILayout.ObjectField( m_DialogIconTex , current , typeof( DialogPartNode ) , true ) as DialogPartNode; EditorGUILayout.EndHorizontal(); /* if( Selection.activeGameObject != null ){ if( current != null ){ if( current.gameObject != Selection.activeGameObject ){ current = Selection.activeGameObject.GetComponent<DialogPartNode>(); UpdateGameView(); } } else{ current = Selection.activeGameObject.GetComponent<DialogPartNode>(); UpdateGameView(); } } else{ m_CurrentID = 0; current = null; return; } //*/ if( current != null ){ m_DialogItemNum = current.GetMessageNum(); GUI.enabled = true; } else{ GUI.enabled = false; } DrawMessageControl(); #endif if( current != null ){ if( currentData != null ){ currentData.show = false; } if( current.dlgDataList.Count == 0 ){ ShowNotificate(); } else{ if( m_CurrentID >= current.dlgDataList.Count ){ m_CurrentID = 0; } currentData = current.dlgDataList[ m_CurrentID ];//current.GetItemAt( m_CurrentID ); currentData.show = true; // NodeGUI.DrawDialogItemBar( current , ref currentData , m_CurrentID , current.m_ViNoTextBox , current.m_NameTextBox ); switch( currentData.actionID ){ case DialogPartNodeActionType.Dialog: // DrawSceneCategory( current , currentData ); // DrawActorCategory( current , currentData ); DrawSoundCategory( current , currentData ); DrawDialogCategory( current , currentData ); break; case DialogPartNodeActionType.EnterActor: case DialogPartNodeActionType.ExitActor: // case DialogPartNodeActionType.Shake: // case DialogPartNodeActionType.ChangeState: case DialogPartNodeActionType.MoveActor: DrawActorCategory( current , currentData ); break; // case DialogPartNodeActionType.EnterScene: // case DialogPartNodeActionType.ExitScene: // DrawSceneCategory( current , currentData ); // break; } } } else{ ShowNotificate(); } // If not play mode , Change the scene and Message . if( GUI.changed ){//&& ! Application.isPlaying ){ UpdateGameView(); } // EditorGUILayout.LabelField( "Dialog Item Num" + m_DialogItemNum.ToString() ); EditorGUILayout.EndScrollView(); GUI.enabled = true; #if false ViNoEditorUtil.EndGUIColor(); #endif }
public void InitWith( DialogPartNode node , int id ) { current = node; m_CurrentID = id; UpdateGameView(); }
public static void DrawVoicePopupField( DialogPartNode node , DialogPartData unit ) { #if true unit.voiceAudioKey = EditorGUILayout.TextField( unit.voiceAudioKey , GUILayout.Width( 175f ) ); /* if( DialogPartNodeInspector.voiceEntries != null ){ unit.voiceAudioID = EditorGUILayout.Popup( unit.voiceAudioID , DialogPartNodeInspector.voiceEntries , GUILayout.Width( 75f ) ); if( DialogPartNodeInspector.voiceEntries.Length > unit.voiceAudioID ){ unit.voiceAudioKey = DialogPartNodeInspector.voiceEntries[ unit.voiceAudioID ]; } } // Show Dummy Contents. else{ unit.voiceAudioID = EditorGUILayout.Popup( unit.voiceAudioID , kDummyContents , GUILayout.Width( 75f ) ); } // unit.voiceAudioKey = EditorGUILayout.TextField( unit.voiceAudioKey , GUI.skin.textArea, GUILayout.Width(50f ) , GUILayout.Height(20f)); //*/ #else if( node.soundData != null ){ if( node.soundData.voiceEntries != null ){ string[] entries = node.soundData.GetVoiceEntryNames(); unit.voiceAudioID = EditorGUILayout.Popup( unit.voiceAudioID , entries , GUILayout.Width( 75f ) ); if( entries.Length > unit.voiceAudioID ){ unit.voiceAudioKey = entries[ unit.voiceAudioID ]; } } // Show Dummy Contents. else{ unit.voiceAudioID = EditorGUILayout.Popup( unit.voiceAudioID , kDummyContents , GUILayout.Width( 75f ) ); } } #endif }
public static void Swap2Items( DialogPartNode targetNode ) { int idx1 = -1; int idx2 = -1; for( int i=0;i<targetNode.dlgDataList.Count;i++){ if( targetNode.dlgDataList[ i ].active ){ if( idx1 == -1 ){ idx1 = i; } else if( idx2 == -1 ){ idx2 = i; break; } } } if( idx1 != -1 && idx2 != -1 ){ DialogPartData data1 = targetNode.dlgDataList[ idx1 ]; DialogPartData data2 = targetNode.dlgDataList[ idx2 ]; targetNode.dlgDataList[ idx1 ] = data2; targetNode.dlgDataList[ idx2 ] = data1; } else{ Debug.Log( "please check 2 items when swap items."); } }
public void OnGUI_DialogPart(DialogPartNode targetNode) { // m_SelectedModeID = GUILayout.Toolbar( m_SelectedModeID , m_ModeItems ); // m_CurrMode = (Mode)m_SelectedModeID; // ------- There are two TextBox field before ! ------. DrawDialogTextBoxAndNameField(targetNode); // ---------------------------------------------------. //TODO : TEST SOUND DATA PROPERTY!! #if false if (soundDataProp != null) { EditorGUILayout.PropertyField(soundDataProp); } /* * EditorGUILayout.BeginHorizontal(); * EditorGUILayout.LabelField( "SoundData", GUILayout.Width( 100f) ); * soundData = EditorGUILayout.ObjectField( soundData , typeof( ScriptableSoundData ) , true ) as ScriptableSoundData; * // soundDataProp = EditorGUILayout.ObjectField( soundDataProp, typeof( ScriptableSoundData ) , true ) as ScriptableSoundData; * EditorGUILayout.EndHorizontal(); * //*/ #endif // EditorGUILayout.EndVertical(); // EditorGUILayout.BeginHorizontal(); // EditorGUILayout.EndHorizontal(); m_ViewMode = GUILayout.Toolbar(m_ViewMode, m_MenuItems); // ViNoEditorUtil.BeginGreenColor(); string menu = m_MenuItems[m_ViewMode]; // View Mode : XML. if (menu == "XML") { ViNoEditorUtil.BeginGreenColor(); DrawImportField(targetNode); ViNoEditorUtil.EndGUIColor(); } // Actions or Edit Text Mode. else { #if true if (menu == "Actions") { EditorGUILayout.BeginHorizontal(); /* if( GUILayout.Button( "Open "+ System.Environment.NewLine +" Dialogs" )){ * m_ShowAllToggle = ! m_ShowAllToggle; * for( int i=0;i<targetNode.dlgDataList.Count;i++){ * targetNode.dlgDataList[ i ].show = m_ShowAllToggle; * } * } * //*/ if (GUILayout.Button("Check " + System.Environment.NewLine + " ALL")) { // if( GUILayout.Button( new GUIContent( "All" , ViNoEditorResources.checkAllcon ) , GUILayout.Width( 62f ) , GUILayout.Height( 22f ) ) ){// "Check " + System.Environment.NewLine + " ALL" )){ for (int i = 0; i < targetNode.dlgDataList.Count; i++) { targetNode.dlgDataList[i].active = true; } } if (GUILayout.Button("UNCheck" + System.Environment.NewLine + "ALL")) { // if( GUILayout.Button( uncheckTex ) ){ for (int i = 0; i < targetNode.dlgDataList.Count; i++) { targetNode.dlgDataList[i].active = false; } } if (GUILayout.Button("Swap Checked" + System.Environment.NewLine + "2 Items")) { DialogPartNodeUtility.Swap2Items(targetNode); } GUI.enabled = true; EditorGUILayout.EndHorizontal(); } #endif if (targetNode.dlgDataList != null) { for (int i = 0; i < targetNode.dlgDataList.Count; i++) { DialogPartData unit = targetNode.dlgDataList[i]; if (menu == "Actions") //&& unit.actionID != DialogPartNodeActionType.Dialog ){ { NodeGUI.DrawDialogItemBar(targetNode, ref unit, i, targetNode.m_ViNoTextBox, targetNode.m_NameTextBox); } NodeGUI.OnGUI_a(targetNode, ref unit, i, targetNode.m_ViNoTextBox, targetNode.m_NameTextBox, m_ViewMode); } } else { DialogPartNodeUtility.Initialize(targetNode); } DialogPartNodeInspector.DrawDialogListUtil(targetNode); } // ViNoEditorUtil.EndGUIColor(); }
static public void Initialize(DialogPartNode dlg) { dlg.dlgDataList = new List <DialogPartData>(); dlg.dlgDataList.Add(new DialogPartData( )); }
// ViewMode 0 : Actions 1 : Edit Text. public static void DrawDialogItemBar( DialogPartNode node , ref DialogPartData unit , int index , ViNoTextBox textBox , ViNoTextBox nameTextBox ) { #if true DrawItemBarBackground(); #else EditorGUIUtility.LookLikeInspector(); #endif EditorGUILayout.BeginHorizontal(); unit.active = EditorGUILayout.Toggle( unit.active , GUILayout.Width( 10f ) ); #if true EditorGUILayout.LabelField( "ID_" + unit.dialogID , GUILayout.Width( 42f ) ); //*/ unit.actionID = (DialogPartNodeActionType)EditorGUILayout.EnumPopup( unit.actionID , GUILayout.Width( 100f ) ); if( node != null ){ // if( unit.actionID != DialogPartNodeActionType.ClearScene ){ if( GUILayout.Button( "Edit" , GUILayout.Width( 40f ) ) ){ DialogItemInspector browser = EditorWindow.GetWindow( typeof(DialogItemInspector) ) as DialogItemInspector; browser.InitWith( node , index ); } // } } switch( unit.actionID){ case DialogPartNodeActionType.Dialog: // unit.show = EditorGUILayout.Foldout( unit.show , "" ); break; } /* if( GUILayout.Button( "View" , GUILayout.Width( 40f ) ) ){ DialogPartNodeUtility.ViewDialog( unit , textBox , nameTextBox ); DialogPartNodeUtility.ViewScene( unit ); } //*/ #else // EditorGUILayout.LabelField( "ID_" + unit.dialogID , GUILayout.Width( 42f ) ); #endif ///////////////////////// #if true if( GUILayout.Button( "+" , GUILayout.Width( 25f ) ) ){ node.AddItemAt( index + 1 ); node.ReAssignDialogIDsInThisObject(); } if( GUILayout.Button( "-" , GUILayout.Width( 25f ) ) ){ if( EditorUtility.DisplayDialog( "Remove Item at ID_" + index.ToString() + " ?" , "Are you sure you really want to remove?" , "Yes", "Cancel" ) ){ node.RemoveItemAt( index ); node.ReAssignDialogIDsInThisObject(); } } #else // unit.show = EditorGUILayout.Foldout( unit.show , "_" ); EditorGUILayout.BeginHorizontal(); GUILayout.Space( 15f ); unit.isName = EditorGUILayout.Toggle( unit.isName , GUILayout.Width( 10f ) ); EditorGUILayout.LabelField( "Name" , GUILayout.Width(40f ) , GUILayout.Height( 20f ) ); if( unit.isName ){ unit.nameText = EditorGUILayout.TextField( unit.nameText , GUI.skin.textArea, GUILayout.Width(75f ) , GUILayout.Height(20f)); } unit.dialogText = EditorGUILayout.TextArea( unit.dialogText , GUI.skin.textArea ); DrawBGMPopupField( node , unit ); DrawSEPopupField( node , unit ); DrawVoicePopupField( node , unit ); EditorGUILayout.EndHorizontal(); #endif EditorGUILayout.EndHorizontal(); }
public static void DrawXMLImportField( DialogPartNode targetNode ) { GUILayout.BeginHorizontal(); GUILayout.Space( 30f ); targetNode.xmlData = EditorGUILayout.ObjectField( "XMLData" , targetNode.xmlData , typeof( TextAsset ) , false ) as TextAsset; EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if( GUILayout.Button ( "Export" ) ){ string fileName =targetNode.name + ".xml"; targetNode.SerializeXML( fileName ); string path = ViNoGameSaveLoad.GetDataPath() + "/" + fileName; AssetDatabase.Refresh(); Debug.Log( "Saved as Xml file path:" + path ); } GUI.enabled = ( targetNode.xmlData != null ) ? true : false; if( GUILayout.Button ( "Import" ) ){ if( EditorUtility.DisplayDialog( "Overwrite ?" , "Are you sure you really want to import?" , "Yes", "Cancel") ){ targetNode.DeserializeXML( targetNode.xmlData.text ); m_ViewMode = 0; } } GUI.enabled = true; EditorGUILayout.EndHorizontal(); }
public static void DrawEditTextViewMode( DialogPartNodeActionType action , DialogPartNode node , ref DialogPartData unit , int index , ViNoTextBox textBox , ViNoTextBox nameTextBox ) { // EditorGUILayout.LabelField( unit.actionName ); switch( action ){ case DialogPartNodeActionType.Dialog: DrawLayoutNameField( unit ); DrawLayoutDialogTextField( unit ); break; default: DrawItemBarBackground(); EditorGUILayout.BeginHorizontal(); GUILayout.Space( 15f ); // EditorGUILayout.SelectableLabel( action.ToString() ); EditorGUILayout.LabelField( "[" + action.ToString() + "]" ); EditorGUILayout.EndHorizontal(); break; } }
public static void DrawImportField( DialogPartNode targetNode ) { GUICommon.DrawLineSpace( 10f , 5f ); #if false if( GUILayout.Button ( "Log Scenario Script in Console" ) ){ DialogPartNodeUtility.ExportScenarioScript( targetNode ); } #endif /* m_ImportDataTypeID = GUILayout.Toolbar( m_ImportDataTypeID , m_ImportDataTypes ); string dataType = m_ImportDataTypes[ m_ImportDataTypeID ]; switch( dataType ){ case "XML": //*/ DrawXMLImportField( targetNode ); /* break; case "Text": EditorGUILayout.LabelField( "Overwrite ?" ); m_IsOverwrite = EditorGUILayout.Toggle( m_IsOverwrite ); EditorGUILayout.LabelField( "Name Delimiter" ); m_NameDelimiter = EditorGUILayout.TextArea( m_NameDelimiter ); EditorGUILayout.LabelField( "Block Delimiter" ); m_BlockDelimiter = EditorGUILayout.TextArea( m_BlockDelimiter ); m_TxtAsset = EditorGUILayout.ObjectField( "Text" , m_TxtAsset , typeof(TextAsset) , false ) as TextAsset; if( m_TxtAsset == null ){ GUI.enabled = false; } if( GUILayout.Button( "Import" ) ){ if( EditorUtility.DisplayDialog( "Overwrite ?" , "Are you sure you really want to import?" , "Yes", "Cancel") ){ string[] nameDelimiter = { m_NameDelimiter }; DialogPartNodeUtility.ImportText( targetNode , m_TxtAsset.text , m_BlockDelimiter , nameDelimiter , true ); } } GUI.enabled = true; EditorGUILayout.LabelField( "Text Flagment" ); m_FlagmentText = EditorGUILayout.TextArea( m_FlagmentText ); if( GUILayout.Button( "Add Text Flagment" ) ){ string[] nameDelimiter = { m_NameDelimiter }; DialogPartNodeUtility.ImportText( targetNode , m_FlagmentText , m_BlockDelimiter , nameDelimiter , false ); } break; } //*/ }
public static void DrawEnterActorActionsView( DialogPartNode node , ref DialogPartData unit ) { if( unit.enterActorEntries == null || unit.enterActorEntries.Length == 0 ){ unit.enterActorEntries = new DialogPartData.ActorEntry[ 1 ]; unit.enterActorEntries[ 0 ] = new DialogPartData.ActorEntry(); } EditorGUILayout.BeginHorizontal(); GUI.enabled = false; GUILayout.Space( 15f ); string[] label = new string[ k_PositionEntryNum ]; int enterActorNum = unit.enterActorEntries.Length; for( int i=0;i<enterActorNum;i++){ int posIndex = 1; switch( unit.enterActorEntries[ i ].position ){ case ViNoToolkit.SceneEvent.ActorPosition.left: posIndex = 0; break; case ViNoToolkit.SceneEvent.ActorPosition.middle_left: posIndex = 1; break; case ViNoToolkit.SceneEvent.ActorPosition.center: posIndex = 2; break; case ViNoToolkit.SceneEvent.ActorPosition.middle_right: posIndex = 3; break; case ViNoToolkit.SceneEvent.ActorPosition.right: posIndex = 4; break; } label[ posIndex ] = unit.enterActorEntries[ i ].actorName; } for( int i=0;i<k_PositionEntryNum;i++){ if( string.IsNullOrEmpty( label[ i ] ) ){ label[ i ] = ""; } GUILayout.Button( label[ i ] );//, GUILayout.Width( 100f ) ); } GUI.enabled = true; EditorGUILayout.EndHorizontal(); }
public static void DrawDialogListUtil( DialogPartNode node ) { GUICommon.DrawLineSpace( 10f , 5f ); ViNoEditorUtil.BeginGUIColor( Color.green , GUI.backgroundColor , GUI.contentColor );//Color.black , Color.white ); GUILayout.BeginHorizontal(); // GUILayout.Space( Screen.width/2f ); if( GUILayout.Button( "+" ) ){ // if( GUILayout.Button( ViNoEditorResources.plusIcon ) ){ // node.AddData( new DialogPartData() );// AddData( node ); // Debug.Log( "Register Scene Undo"); Undo.RegisterUndo ( node , node.name ); // Undo.SetSnapshotTarget( node , node.name ); int itemNum = node.GetMessageNum(); node.AddItemAt( itemNum ); node.ReAssignDialogIDsInThisObject(); } if( GUILayout.Button( "-" ) ){ // if( GUILayout.Button( ViNoEditorResources.minusIcon ) ){//} , GUILayout.Width( sa ) ) ){ Undo.RegisterUndo ( node , node.name ); // if( EditorUtility.DisplayDialog( "Remove the Last Item ?" , "Are you sure you really want to remove?" // , "Yes", "Cancel" ) ){ if( node.dlgDataList != null && node.dlgDataList.Count > 0 ){ node.dlgDataList.RemoveAt( node.dlgDataList.Count - 1 ); } node.ReAssignDialogIDsInThisObject(); // } } GUILayout.EndHorizontal(); ViNoEditorUtil.EndGUIColor(); }
public static void DrawActionViewMode( DialogPartNodeActionType action , DialogPartNode node , ref DialogPartData unit , int index , ViNoTextBox textBox , ViNoTextBox nameTextBox ) { switch( action ){ case DialogPartNodeActionType.EnterActor: DrawEnterActorActionsView( node , ref unit ); break; case DialogPartNodeActionType.ExitActor: if( unit.exitActorEntries != null && unit.exitActorEntries.Length != 0 ){ int actorNum = unit.exitActorEntries.Length; GUILayout.BeginHorizontal(); GUILayout.Space( 30f ); string label = ""; for( int i=0;i<actorNum;i++){ label += unit.exitActorEntries[ i ].actorName; if( i < actorNum - 1 ){ label += ","; } } GUILayout.Label( label , GUILayout.Width( 100f ) ); GUILayout.EndHorizontal(); } break; /* case DialogPartNodeActionType.Selections: if( unit.selection == null ){ unit.selection = new SelectionsNode1.SelectUnit(); } OnGUISelectionNode1Unit( unit.selection ); break; case DialogPartNodeActionType.Scene: DrawLayoutSceneField( unit ); // break; //*/ case DialogPartNodeActionType.Dialog: EditorGUILayout.BeginHorizontal(); GUILayout.Space( 15f ); GUILayout.Box( ViNoEditorResources.dialogIcon , GUILayout.Width( 30f ) , GUILayout.Height( 25f ) ); /* string subStr = ( unit.dialogText.Length > k_TextDispNum )? unit.dialogText.Substring( 0 , k_TextDispNum ) : unit.dialogText; subStr += "..."; subStr = subStr.Replace( "\n" , "" ); //*/ // unit.nameText = unit.nameText .Replace ( "\n" , "" ); // unit.show = EditorGUILayout.Foldout( unit.show ,"ID_" + unit.dialogID + ":" + unit.nameText + " < " + subStr ); if( unit.isName ){ if( string.IsNullOrEmpty( unit.nameText) ){ // unit.show = EditorGUILayout.Foldout( unit.show , subStr ); EditorGUILayout.LabelField( unit.dialogText );// subStr ); } else{ // unit.show = EditorGUILayout.Foldout( unit.show , unit.nameText + " : " + subStr ); EditorGUILayout.LabelField( unit.nameText + " : " + unit.dialogText ); //subStr ); } } else{ // unit.show = EditorGUILayout.Foldout( unit.show , subStr ); EditorGUILayout.LabelField( unit.dialogText );//unit.nameText + " : " + subStr ); } unit.isClearMessageAfter = EditorGUILayout.Toggle( unit.isClearMessageAfter , GUILayout.Width( 10f ) ); EditorGUILayout.LabelField( "ClearMessage" , GUILayout.Width( 80f ) , GUILayout.Height( 20f ) ); EditorGUILayout.EndHorizontal(); /* EditorGUILayout.BeginHorizontal(); GUILayout.Space( 30f ); EditorGUILayout.EndHorizontal(); //*/ break; } }
public void InitWith(DialogPartNode node, int id) { current = node; m_CurrentID = id; UpdateGameView(); }
public static void OnGUI_a( DialogPartNode node , ref DialogPartData unit , int index , ViNoTextBox textBox , ViNoTextBox nameTextBox , int viewMode ) { if( ! EditorGUIUtility.isProSkin ){ GUICommon.DrawLineSpace( 0f , 1f ); } switch( viewMode ){ case 0 : // Actions. DrawActionViewMode( unit.actionID , node , ref unit , index , textBox , nameTextBox ); break; case 1: // Edit Text. DrawEditTextViewMode( unit.actionID , node , ref unit , index , textBox , nameTextBox ); break; // case 2: // XML. // DialogPartNodeInspector.DrawXMLImportField( node ); // break; } /* case 1: EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField ( "DIALOG_ID:" + unit.dialogID.ToString () , GUILayout.Width( 100f) ); unit.dialogText = EditorGUILayout.TextArea( unit.dialogText , GUI.skin.textArea ); EditorGUILayout.EndHorizontal(); break; } //*/ }
void OnGUI() { /* if( m_DialogIconTex == null || m_ArrowBackTex == null || m_ArrowForwardTex == null ){ * LoadIcons(); * } * //*/ #if false if (EditorGUIUtility.isProSkin) { ViNoEditorUtil.BeginGUIColor(GUI.color, Color.green, GUI.contentColor); } else { // ViNoEditorUtil.BeginGUIColor( Color.white , new Color( 0f , 0.8f , 0f , 1f ) , Color.black ); ViNoEditorUtil.BeginGUIColor(Color.white, new Color(0.8f, 0.8f, 0.8f, 1f), Color.black); } #endif m_ScrollPos = EditorGUILayout.BeginScrollView(m_ScrollPos); #if false EditorGUILayout.BeginHorizontal(); // GUILayout.Box( m_DialogIconTex , GUILayout.Width( 44f ) , GUILayout.Height( 44f ) ); current = EditorGUILayout.ObjectField("Target", current, typeof(DialogPartNode), true) as DialogPartNode; // current = EditorGUILayout.ObjectField( m_DialogIconTex , current , typeof( DialogPartNode ) , true ) as DialogPartNode; EditorGUILayout.EndHorizontal(); /* * if( Selection.activeGameObject != null ){ * if( current != null ){ * if( current.gameObject != Selection.activeGameObject ){ * current = Selection.activeGameObject.GetComponent<DialogPartNode>(); * UpdateGameView(); * } * } * else{ * current = Selection.activeGameObject.GetComponent<DialogPartNode>(); * UpdateGameView(); * } * } * else{ * m_CurrentID = 0; * current = null; * return; * } * //*/ if (current != null) { m_DialogItemNum = current.GetMessageNum(); GUI.enabled = true; } else { GUI.enabled = false; } DrawMessageControl(); #endif if (current != null) { if (currentData != null) { currentData.show = false; } if (current.dlgDataList.Count == 0) { ShowNotificate(); } else { if (m_CurrentID >= current.dlgDataList.Count) { m_CurrentID = 0; } currentData = current.dlgDataList[m_CurrentID]; //current.GetItemAt( m_CurrentID ); currentData.show = true; // NodeGUI.DrawDialogItemBar( current , ref currentData , m_CurrentID , current.m_ViNoTextBox , current.m_NameTextBox ); switch (currentData.actionID) { case DialogPartNodeActionType.Dialog: // DrawSceneCategory( current , currentData ); // DrawActorCategory( current , currentData ); DrawSoundCategory(current, currentData); DrawDialogCategory(current, currentData); break; case DialogPartNodeActionType.EnterActor: case DialogPartNodeActionType.ExitActor: // case DialogPartNodeActionType.Shake: // case DialogPartNodeActionType.ChangeState: case DialogPartNodeActionType.MoveActor: DrawActorCategory(current, currentData); break; // case DialogPartNodeActionType.EnterScene: // case DialogPartNodeActionType.ExitScene: // DrawSceneCategory( current , currentData ); // break; } } } else { ShowNotificate(); } // If not play mode , Change the scene and Message . if (GUI.changed) //&& ! Application.isPlaying ){ { UpdateGameView(); } // EditorGUILayout.LabelField( "Dialog Item Num" + m_DialogItemNum.ToString() ); EditorGUILayout.EndScrollView(); GUI.enabled = true; #if false ViNoEditorUtil.EndGUIColor(); #endif }
public static void Initialize( DialogPartNode dlg ) { dlg.dlgDataList = new List<DialogPartData>(); dlg.dlgDataList.Add( new DialogPartData( ) ); }
public static void DrawSoundCategory( DialogPartNode node , DialogPartData unit ) { if( EditorGUIUtility.isProSkin ){ GUI.contentColor = Color.white; GUICommon.DrawLineSpace( 2f , 22f ); EditorGUILayout.BeginHorizontal(); GUILayout.Space( 15f ); soundsToggle = EditorGUILayout.Foldout( soundsToggle , "Sounds" ); EditorGUILayout.EndHorizontal(); } else{ EditorGUILayout.BeginHorizontal(); GUILayout.Space( 15f ); soundsToggle = EditorGUILayout.Foldout( soundsToggle , "Sounds" ); EditorGUILayout.EndHorizontal(); GUI.contentColor = Color.white; GUICommon.DrawLineSpace( 3f , 1f ); } if( soundsToggle ){ float space = 30f; EditorGUILayout.BeginHorizontal(); GUILayout.Space( space ); unit.isBGM = EditorGUILayout.Toggle( unit.isBGM , GUILayout.Width( 10f ) ); EditorGUILayout.LabelField( "Bgm" , GUILayout.Width( 35f ) ); EditorGUILayout.LabelField( folderIconContent , GUILayout.Width( 16f ) ); if( unit.isBGM ){ DrawBGMPopupField( node , unit ); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Space( space ); unit.isSE = EditorGUILayout.Toggle( unit.isSE , GUILayout.Width( 10f ) ); EditorGUILayout.LabelField( "SE" , GUILayout.Width(35f ) ); EditorGUILayout.LabelField( folderIconContent , GUILayout.Width( 16f ) ); if( unit.isSE ){ DrawSEPopupField( node , unit ); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Space( space ); unit.isVoice = EditorGUILayout.Toggle( unit.isVoice , GUILayout.Width( 10f ) ); EditorGUILayout.LabelField( "Voice" , GUILayout.Width(35f ) ); EditorGUILayout.LabelField( folderIconContent , GUILayout.Width( 16f ) ); if( unit.isVoice ){ DrawVoicePopupField( node , unit ); } EditorGUILayout.EndHorizontal(); } }
public static void DrawDialogCategory( DialogPartNode node , DialogPartData unit ) { if( EditorGUIUtility.isProSkin ){ GUI.contentColor = Color.white; GUICommon.DrawLineSpace( 2f , 22f ); EditorGUILayout.BeginHorizontal(); GUILayout.Space( 15f ); dialogToggle = EditorGUILayout.Foldout( dialogToggle , "Dialog" ); EditorGUILayout.EndHorizontal(); } else{ EditorGUILayout.BeginHorizontal(); GUILayout.Space( 15f ); dialogToggle = EditorGUILayout.Foldout( dialogToggle , "Dialog" ); EditorGUILayout.EndHorizontal(); GUI.contentColor = Color.white; GUICommon.DrawLineSpace( 3f , 1f ); } if( dialogToggle ){ // will be Drawn TextBox and NameTextBox field... // . // ... NodeGUI.DrawLayoutNameField( unit ); NodeGUI.DrawLayoutDialogTextField( unit ); } }