Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by dubiduboni_unity · Apr 02, 2019 at 03:19 AM · c#scripting problemscript.

How can it be that the editor remember the text I added to the dialogue/s ?

The scripts a bit long but they all connected that is why added them all.

I have this editor script: I can change the size of the conversations and dialogues if I filled it and then set the sizes to 0 it will delete all the text I filled. But then when I'm running the game it's showing me the dialogue/s and all texts. I can't figure out how and where did it save it.

 using System.Collections;
 using System.Collections.Generic;
 using UnityEditor;
 using UnityEditorInternal;
 using UnityEngine;
 
 [CustomEditor(typeof(DialogueTrigger))]
 public class DialogueTriggerEditor : Editor
 {
     private SerializedProperty _conversations;
 
     private void OnEnable()
     {
         _conversations = serializedObject.FindProperty("conversations");
     }
 
     public override void OnInspectorGUI()
     {
         //base.OnInspectorGUI();
 
         serializedObject.Update();
 
         _conversations.arraySize = EditorGUILayout.IntField("Conversations Size", _conversations.arraySize);
 
         for (int x = 0; x < _conversations.arraySize; x++)
         {
             var conversation = _conversations.GetArrayElementAtIndex(x);
 
             var conversationName = conversation.FindPropertyRelative("conversationName");
 
             EditorGUI.indentLevel++;
             EditorGUILayout.PropertyField(conversationName);
 
             EditorGUI.indentLevel++;
             var _dialogues = conversation.FindPropertyRelative("Dialogues");
 
             _dialogues.arraySize = EditorGUILayout.IntField("Dialogues size", _dialogues.arraySize);
 
             for (int i = 0; i < _dialogues.arraySize; i++)
             {
                 var dialogue = _dialogues.GetArrayElementAtIndex(i);
                 EditorGUI.indentLevel++;
                 EditorGUILayout.PropertyField(dialogue, new GUIContent("Dialogue " + i), true);
                 
                 EditorGUI.indentLevel--;
             }
 
             if (_dialogues.arraySize > 0)
             {
                 if (GUILayout.Button("Save Conversation"))
                 {
                     
                 }
             }
 
             EditorGUI.indentLevel--;
             EditorGUI.indentLevel--;
         }
 
         serializedObject.ApplyModifiedProperties();
     }
 }
 

Then I have this two classes files:

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 [System.Serializable]
 public class Dialogue
 {
     public string name;
 
     [TextArea(1, 10)]
     public List<string> sentences = new List<string>();
 }
 

And

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 [System.Serializable]
 public class Conversation
 {
     public string conversationName;
     public List<Dialogue> Dialogues = new List<Dialogue>();
 }
 

And

 using System.Collections;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
 using UnityEngine;
 
 public class DialogueTrigger : MonoBehaviour
 {
     public List<Conversation> conversations = new List<Conversation>();
     public List<Dialogue> dialogue = new List<Dialogue>();
 
     [HideInInspector]
     public int dialogueNum = 0;
 
     private bool triggered = false;
     private List<Dialogue> oldDialogue;
 
     private void Start()
     {
         //oldDialogue = dialogue.ToList();
     }
 
     public void TriggerDialogue()
     {
         if (triggered == false)
         {
             if (FindObjectOfType<DialogueManager>() != null)
             {
                 FindObjectOfType<DialogueManager>().StartDialogue(dialogue[dialogueNum]);
                 dialogueNum += 1;
             }
             triggered = true;
         }
     }
 
     private void Update()
     {
         if (DialogueManager.dialogueEnded == true)
         {
             if (dialogueNum == dialogue.Count)
             {
                 return;
             }
             else
             {
                 FindObjectOfType<DialogueManager>().StartDialogue(dialogue[dialogueNum]);
                 DialogueManager.dialogueEnded = false;
                 dialogueNum += 1;
             }
         }
     }
 }

And last:

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;

public class DialogueManager : MonoBehaviour { public Text dialogueText; public Text nameText; public float sentencesSwitchDuration; public bool animateSentenceChars = false; public GameObject canvas; public static bool dialogueEnded = false; public DialogueTrigger trigger;

 private Queue<string> sentence;

 // Use this for initialization
 void Start()
 {
     sentence = new Queue<string>();
 }

 public void Init()
 {
     //sentence = new Queue<string>();
 }

 public void StartDialogue(Dialogue dialogue)
 {
     canvas.SetActive(true);

     nameText.text = dialogue.name;

     sentence.Clear();
     foreach (string sentence in dialogue.sentences)
     {
         this.sentence.Enqueue(sentence);
     }

     DisplayNextSentence();
 }

 public void DisplayNextSentence()
 {
     if (this.sentence.Count == 0)
     {
         EndDialogue();
         return;
     }

     string sentence = this.sentence.Dequeue();
     dialogueText.text = sentence;

     StopAllCoroutines();
     StartCoroutine(DisplayNextSentenceWithDelay(sentence));
 }

 public IEnumerator DisplayNextSentenceWithDelay(string sentence)
 {
     if (animateSentenceChars)
     {
         dialogueText.text = "";
         foreach (char letter in sentence.ToCharArray())
         {
             dialogueText.text += letter;
             yield return null;
         }
     }

     yield return new WaitForSeconds(sentencesSwitchDuration);
     DisplayNextSentence();
 }

 private void EndDialogue()
 {
     dialogueEnded = true;
     if (trigger.dialogueNum == trigger.dialogue.Count)
         canvas.SetActive(false);
     Debug.Log("End of conversation.");
 }

}

I don't want to save it like that. I added the button in the first script:

   if (GUILayout.Button("Save Conversation"))
                     {
                         
                     }

I'm not sure how yet but this button should save all the conversations, dialogues, name, sentences

  • My first problem is to understand where and how it saved the dialogue/s if I did not save it ?

  • Second problem is how can I check if the current dialogue/s of the current conversation name and sentences in the Dialogue class are not empty and then to decide if to enable or disable the button.

  • Last problem is how to save the whole content to a file: Conversation name , dialogue/s name/s and sentences. And then to add another button to read it back from the file.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

622 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

How can i check and fire an event when the user look at specific object ? 0 Answers

Sorting a list based of a variable 1 Answer

How can i List objects by name but also in small text or big text or any kind ? 1 Answer

How can i make an entrance and exit in this maze ? 1 Answer

How can I rotate all the objects ? One of them is never rotating 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges