예제 #1
0
    /// <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.");
        }
    }
예제 #6
0
    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.");
        }
    }
예제 #8
0
    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.");
        }
    }
예제 #9
0
 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);
        }
    }
예제 #12
0
    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);
    }
예제 #13
0
    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
    }
예제 #17
0
    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;
 * //*/
            }
        }
    }
예제 #19
0
    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();
    }
예제 #20
0
    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;
        //*/
            }
        }
    }
예제 #21
0
    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
    }
예제 #27
0
    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);
    }
예제 #28
0
    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;
        }
    }
예제 #29
0
    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();
        }
    }
예제 #31
0
    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();
    }
예제 #32
0
    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;
    }
예제 #33
0
    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();
    }
예제 #34
0
    //    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
    }
예제 #35
0
    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
    }
예제 #36
0
 public void InitWith( DialogPartNode node , int id )
 {
     current = node;
     m_CurrentID = id;
     UpdateGameView();
 }
예제 #37
0
    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
    }
예제 #38
0
    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( ));
 }
예제 #41
0
파일: NodeGUI.cs 프로젝트: Joon-min/wiper
    // 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();
    }
예제 #42
0
    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();
    }
예제 #43
0
파일: NodeGUI.cs 프로젝트: Joon-min/wiper
    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;
        }
    }
예제 #44
0
    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;
        }

        //*/
    }
예제 #45
0
파일: NodeGUI.cs 프로젝트: Joon-min/wiper
    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();
    }
예제 #46
0
    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();
    }
예제 #47
0
파일: NodeGUI.cs 프로젝트: Joon-min/wiper
    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();
 }
예제 #49
0
파일: NodeGUI.cs 프로젝트: Joon-min/wiper
    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
    }
예제 #51
0
 public static void Initialize( DialogPartNode dlg )
 {
     dlg.dlgDataList = new List<DialogPartData>();
     dlg.dlgDataList.Add( new DialogPartData( ) );
 }
예제 #52
0
    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();
        }
    }
예제 #53
0
    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 );
        }
    }