5 Minute DIALOGUE SYSTEM in UNITY Tutorial

  Рет қаралды 146,719

BMo

BMo

3 жыл бұрын

Dialog? Dialogue? Either way, in this Unity Tutorial we'll be looking at adding a simple system into our game that types out sentences one character at a time.
Dialogue systems can get pretty elaborate, and this solution is obviously not going to support anything extensive, but its a great starting point for just being able to get a narrative into your game and interactions with NPCs.
In the video I have the conversation being triggered by the Start method of our script, but you could use triggers or key inputs to call StartDialogue() from any way that you'd want.
✨Want to support the channel?
Buy me a coffee ☕: ko-fi.com/bmoli
➤LIKE the video if you enjoyed, it really helps the channel!
➤MORE 5 Minute Tutorials: • 5 Minute Games
➤Join our DISCORD SERVER: / discord
We have channels to help you with your problems!
#bmo #unity #tutorial

Пікірлер: 260
@Cerified
@Cerified 2 ай бұрын
For those who are confused as to where to put your text. When you go to the DialogueBox’s inspector, underneath the Dialogue script tab, there’s another tab called ‘Lines’. That’s where you add it! :)
@user-sd6mp8jv2v
@user-sd6mp8jv2v Ай бұрын
nice
@amyguzman3502
@amyguzman3502 Ай бұрын
Hm weird, I cannot find it
@amyguzman3502
@amyguzman3502 Ай бұрын
nvm just found it!
@agustinquindimil6594
@agustinquindimil6594 17 күн бұрын
I can put this script anywhere and then call it when I press "e" lets say, right?
@igseatsyursoul
@igseatsyursoul Жыл бұрын
Finally a dialogue that is basic with no bells and whistles that I can fully customize. Too many of the other tutorials on this added way more than I want for my small game.
@LaneWatson
@LaneWatson 3 жыл бұрын
Ahh yes. Got my 5 minute fix. The most useful tutorials on Unity.
@BMoDev
@BMoDev 3 жыл бұрын
Haha thanks! Appreciate ya
@PlagueDoctor856
@PlagueDoctor856 3 ай бұрын
INCORRECT! THIS VIDEO IS 5:10 MINUTES LONG
@dr.adammoore
@dr.adammoore Жыл бұрын
Most efficient Unity tutorial I've ever seen--and it makes perfect sense! You just made my day. And, my first subscribed channel ever. Thank you.
@djt3rrv875
@djt3rrv875 Жыл бұрын
God thank you SO MUCH for including the complete on click function!!!! A lot of tutorials don't, and it really sucks as a player to be waiting and waiting for this shit to type itself out (especially if you read fast). Such a clean and clear cut tutorial!!! Thank you!!!
@BMoDev
@BMoDev Жыл бұрын
Appreciate it!
@revmatch6r
@revmatch6r 3 жыл бұрын
Exactly what I needed. These are the best I've been able to find. Looking forward to more videos soon 🙌
@BMoDev
@BMoDev 3 жыл бұрын
Thanks dude!
@jehriko7525
@jehriko7525 2 жыл бұрын
THANK YOU! Been struggling with this because I suck at coding but this helped a ton, def subbing.
@Luluskuy
@Luluskuy Жыл бұрын
This... Simply short and sweet. SUBSCRIBED!
@crazyconan28
@crazyconan28 2 жыл бұрын
Thank you BMo for your awesome videos. This was a awesome exercise to follow!
@barrelbrothers6896
@barrelbrothers6896 8 ай бұрын
Thank you man! Super detailed/concise tutorial 10/10.
@lordkakabel76
@lordkakabel76 3 жыл бұрын
I love the way you break things down. Very easy to understand.
@BMoDev
@BMoDev 3 жыл бұрын
delayed answer, but thanks man I appreciate ya 🙏
@section8entertainment961
@section8entertainment961 Жыл бұрын
using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; public class Dialogue : MonoBehaviour { public TextMeshProUGUI textComponent; public string[] lines; public float textSpeed; private int index; // Start is called before the first frame update void Start() { textComponent.text = string.Empty; StartDialogue(); } // Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) { if (textComponent.text == lines[index]) { NextLine(); } else { StopAllCoroutines(); textComponent.text = lines[index]; } } } void StartDialogue() { index = 0; StartCoroutine(TypeLine()); } IEnumerator TypeLine() { foreach (char c in lines[index].ToCharArray()) { textComponent.text += c; yield return new WaitForSeconds(textSpeed); } } void NextLine() { if (index < lines.Length - 1) { index++; textComponent.text = string.Empty; StartCoroutine(TypeLine()); } else { gameObject.SetActive(false); } } }
@yaboishadowninja
@yaboishadowninja Жыл бұрын
Thank you. I was following the video but for some reason it wasn't working. However, this did.
@Rdect25
@Rdect25 Жыл бұрын
chad
@fullgames8195
@fullgames8195 8 ай бұрын
You are PERFECT
@innawoodsfmj
@innawoodsfmj 5 ай бұрын
life saver you are
@TwoClutch
@TwoClutch 4 ай бұрын
i love you dad
@ajgames2363
@ajgames2363 Жыл бұрын
honestly you deserve it. This video, the last one I saw, the one before it. Subscribed
@deheane
@deheane Жыл бұрын
Muito obrigada, em 5 minutos você ensinou mais que tutoriais extremamente longos :D
@IceCream-sb7lc
@IceCream-sb7lc 3 жыл бұрын
Supporting your return by watching the entire ad and this entire tutorial. I request a gourmet dialogue system tutorial with decision making please.
@BMoDev
@BMoDev 3 жыл бұрын
The real mvp 😭
@thepolygonpilgrimage
@thepolygonpilgrimage 3 жыл бұрын
Brilliant work! Thanks so much for sharing and not wasting time. Love it. Subbed for more.
@mortalvoidstudios
@mortalvoidstudios Жыл бұрын
Thank you so much! This was exactly what I was looking for.
@bigp0y
@bigp0y 3 жыл бұрын
Missed you, Bmo! Keep up the good work - I find your vids some of the easier tutorials to follow
@BMoDev
@BMoDev 3 жыл бұрын
😘
@homiek5974
@homiek5974 12 күн бұрын
one of the best tutorials, thanks brother
@SkeletalDweller
@SkeletalDweller Жыл бұрын
This is exactly what I needed, thank you so much!
@iwoMalki
@iwoMalki 8 ай бұрын
Nice simple and fast! Lovely!
@Woots
@Woots 2 жыл бұрын
Wonderful tutorial! Thanks!
@BraedensStuff
@BraedensStuff Жыл бұрын
this was just perfect for what I needed
@ertyuu35
@ertyuu35 2 жыл бұрын
Thank you so much. Even though I watched a 30 minute tutorial, I couldn't' do it, but thanks to your 5 minute tutorial, I did it easily.
@BMoDev
@BMoDev 2 жыл бұрын
love to hear it
@odessialiu3552
@odessialiu3552 2 ай бұрын
This is so clear and useful!
@nickolasmachado9274
@nickolasmachado9274 Жыл бұрын
Thank you for this tutorial!
@neffthepanda
@neffthepanda 11 ай бұрын
Great video! Gonna use this for my NPCs.
@eileeng2492
@eileeng2492 3 жыл бұрын
Finally, you're back. Great! Keep them coming
@bobgala4494
@bobgala4494 Ай бұрын
ty
@shang_psycho7414
@shang_psycho7414 Жыл бұрын
Thanks! This helped a lot. Something cool to add would be that sounds that play while someone's talking like Undertale.
@Devlper_
@Devlper_ Жыл бұрын
Thanks For this Great Tutorial Bro
@quarteroclock1365
@quarteroclock1365 2 жыл бұрын
man, thank you! this was exactly what i was searching for!
@BMoDev
@BMoDev 2 жыл бұрын
happy to hear it!
@MadGeekGirl
@MadGeekGirl 2 жыл бұрын
Is there anyway to add this to multiple game objects and have the dialogue system come up when the game object is interacted with in some way? I've tried so many tutorials and methods and have been stuck for days.
@CASMANWHAT
@CASMANWHAT 3 жыл бұрын
Yesss!!!!!!!!!!! Welcome back love your tuts
@BMoDev
@BMoDev 3 жыл бұрын
💗
@deadbroadcastpc
@deadbroadcastpc 3 жыл бұрын
He’s alive!!!!! Glad to see you back man
@BMoDev
@BMoDev 3 жыл бұрын
Thanks man, will try to get back into a rhythm 😅
@WhiteGemDev
@WhiteGemDev 9 ай бұрын
This was effective.. thanks!
@ozgurgurbuz
@ozgurgurbuz 2 жыл бұрын
Thanks for this short tutorial. 😊
@BMoDev
@BMoDev 2 жыл бұрын
You're welcome!
@fatihbtw5288
@fatihbtw5288 Жыл бұрын
thx you so much, great video
@imabean9710
@imabean9710 Жыл бұрын
Thanks for helping me to make some task game programming
@arrexu01
@arrexu01 2 жыл бұрын
Question. How would I be able to mix this with a multiple choice dialogue system?. Like, say my player would have a voice line, then naturally the npc would respond, but only once and the conversation is done. So what I mean is, how can i transition between both?
@maayandighorker6930
@maayandighorker6930 Жыл бұрын
Great video, thanks! definitely subbing :)
@bobwinberry
@bobwinberry Жыл бұрын
Fantastic - thanks!
@Eduard02834
@Eduard02834 2 жыл бұрын
Thanks really helpful and less time !!!!
@perttihakala9847
@perttihakala9847 2 жыл бұрын
awesome! just the thing i need! :3
@happyghoststudios4237
@happyghoststudios4237 Жыл бұрын
Such a great video!!! Thank you!!!
@BMoDev
@BMoDev Жыл бұрын
Thanks
@jjbc5059
@jjbc5059 7 ай бұрын
I love this tutorial. Simple. Well explained. Short. It works. There's nothing else you can ask for. Good job m8!
@nevimkde9537
@nevimkde9537 Жыл бұрын
Absolutely love this video!!! Helped a lot, but I have a question. If I wanted to make multiple instances of waiting function for some reason code doesnt execute them at all. If I have multiple IEnumerators nor If I have If function in one IEnumerator, there it will only execute the original and if I change the text appearance to that another if statement it will completely skip any dialogue at all (my main reason of doing this if because the character not always speaks at same speed e.g. if he is surprised he will swallow some of his words or in cutscener or non-interactable dialogue which will appear and dissapear of its own). Thank you if you are willing to help me!
@hejhejhej952
@hejhejhej952 4 ай бұрын
Thank you kind sir!
@wicksley
@wicksley 9 ай бұрын
Awesome thank you :D
@madpenguin58
@madpenguin58 3 жыл бұрын
Hi @BMo! Is there some kind of way that one could add some kind of trigger collider on something like a sign or NPC and have the character hit a button like the space key in order to start the dialogue instead of having it start at the beginning of the game? I have tried some things myself but I just can't figure this one out. Thanks!
@BMoDev
@BMoDev 3 жыл бұрын
Yeah 100%, you just need that trigger to execute the StartDialogue method. I have an "Interaction" tutorial, you can use the principals in that to call the StartDialogue Method! kzbin.info/www/bejne/mX3deGR-eciAatU
@madpenguin58
@madpenguin58 3 жыл бұрын
@@BMoDev Ok! Thank you very much! I was also wondering (sorry I have so many questions. I should probably just get better at code on my own.) if there was some kind of way to implement a response, and have the dialogue loop back to the beginning every time you play it. Thanks! I have been following a bunch of your 2D tutorials and am learning a lot about making games!
@IvanThGreat
@IvanThGreat Жыл бұрын
@@madpenguin58 Hello, I would like to ask how did you get it to work with the Interact system?
@mediamermaid333
@mediamermaid333 11 ай бұрын
Thank you!!
@GrimCrayontheWraithLord
@GrimCrayontheWraithLord 4 ай бұрын
OMG! I WAS TRYING OTHER TUTORIALS, AND THEY DIDN'T WORK FOR ME, BUT THEN I COME HERE AND IT WORKS FIRST TRY!!! This is EPIC!!!
@BMoDev
@BMoDev 4 ай бұрын
You're epic
@GrimCrayontheWraithLord
@GrimCrayontheWraithLord 4 ай бұрын
@@BMoDev :O
@lejocarry
@lejocarry Жыл бұрын
Really good :)
@HivemindZalgo
@HivemindZalgo Жыл бұрын
Jesus, why is it so hard to do something like what u did? Other videos take up 20-30 minutes of my life with extra stuff that's unnecessary but if I don't add the code will break. Thanks a lot!
@cricadev
@cricadev 3 жыл бұрын
Hey bro, how can I do this but with the new input system from unity, GetMouseButtonDown, doesn't exist anymore.
@vain_rafael2868
@vain_rafael2868 6 ай бұрын
2 years old, still very useful!
@stevenhays6816
@stevenhays6816 6 ай бұрын
Top notch vid bloke
@isaacwiseau8130
@isaacwiseau8130 Жыл бұрын
this is very good good but with all the zooming around I wish I could see more of the Unity window to see other values while working at my own pace
@m4v3n95
@m4v3n95 2 жыл бұрын
Really helpful!
@BMoDev
@BMoDev 2 жыл бұрын
Love to hear it
@patrickalexander1737
@patrickalexander1737 Жыл бұрын
And is it possible to add images in the background that transition with the dialogues?
@infosource3153
@infosource3153 Жыл бұрын
Excellent
@animationanimator5143
@animationanimator5143 Жыл бұрын
Is there a way so that certain elements aren't said in the dialogue box until the player reaches a certain point?
@NAgamerOfficialYT
@NAgamerOfficialYT 11 ай бұрын
is there a way to make it pause for a small moment for stuff like commas or something like that?
@awawa5594
@awawa5594 8 ай бұрын
How do you give control back to the main game after dialogue ends? I'm having difficulties wording what I mean but after the dialogue runs using this method, I want to then get objects to show or be able to click on buttons but I don't want to add that code directly in the Dialog Manager as it'd make it messy and not specific to the dialog but I don't know how else to do it?
@arianrivaz5982
@arianrivaz5982 10 ай бұрын
hey.thanks for the great video.any ways i could use this twice? for example.i have a nurse charecter.first she starts the dialogue.then after she finished i would like to use this method once again on my player charecter and (for example answer the nurse).i would really apreciate if you answer.
@Val0r2
@Val0r2 5 ай бұрын
Question: How would I go about making new dialogue appear whenever my player returns to the same scene instead of it just repeating same stuff every time the scene is loaded?
@EnemyOTS
@EnemyOTS 2 жыл бұрын
LMAO impressive! 5 minutes indeed. Great tutorial
@BMoDev
@BMoDev 2 жыл бұрын
Appreciate ya
@Skyblade22
@Skyblade22 3 жыл бұрын
this the good stuff
@karnecita
@karnecita 5 ай бұрын
gracias, sos un capo, excelente tutorial 10/10
@karnecita
@karnecita 5 ай бұрын
using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; public class Dialogue1 : MonoBehaviour { public TextMeshProUGUI textComponent; public string[] lines; public float textSpeed; private int index; // Start is called before the first frame update void Start() { textComponent.text = string.Empty; StartDialogue(); } // Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) { if (textComponent.text == lines[index]) { NextLine(); } else { StopAllCoroutines(); textComponent.text = lines[index]; } } } void StartDialogue() { index = 0; StartCoroutine(TypeLine()); } IEnumerator TypeLine() { foreach (char c in lines[index].ToCharArray()) { textComponent.text += c; yield return new WaitForSeconds(textSpeed); } } void NextLine() { if (index < lines.Length - 1) { index++; textComponent.text = string.Empty; StartCoroutine(TypeLine()); } else { gameObject.SetActive(false); } } }
@PRAVEENKUMAR-xg6qe
@PRAVEENKUMAR-xg6qe Жыл бұрын
now i am in a good mood
@jordanthebestlass8483
@jordanthebestlass8483 2 жыл бұрын
how do i keep the the text from moving when i have it's alighnment centered?
@connorwilson-long1336
@connorwilson-long1336 2 жыл бұрын
Any easy way to reset this when coming back for more dialogue? It works if I just set the index to 0 and change the dialogue lines, but it is blank at first and when it doesn't do the animation for the first line either.
@Tea-qk6ii
@Tea-qk6ii Жыл бұрын
hey u gotta do an if/else statement to say something like if talked to then (else) this action can happen
@lorenzoaielli4605
@lorenzoaielli4605 Жыл бұрын
Ok, that's cool and all, but how did you make the actual different lines of dialogue? Where did you put them specifically?
@evannationarmy7769
@evannationarmy7769 7 ай бұрын
In the DialogueBox, where you attached the Dialogue Script, there should be a menu that says Lines. You can set how many lines you want and type in what you want them to say.
@timothy7411
@timothy7411 5 ай бұрын
@@evannationarmy7769 so i put the th dialogue box on timeline and its on activation track but everytime it start it only show one character on the first line do you know how to fix this??
@evannationarmy7769
@evannationarmy7769 5 ай бұрын
@@timothy7411 Unfortunately, I do not. I would recommend asking a forum on what to do.
@yanz3e14
@yanz3e14 3 жыл бұрын
hi how do i move to another scene whenever there is no more dialogue?..can you help ?
@dralexander6211
@dralexander6211 Жыл бұрын
Hello I was wondering if you could help me I would like to know how to stop the text from showing up when the game starts. I would highly appreciate it if you could give me some advice :)
@ginoantenucci6424
@ginoantenucci6424 Жыл бұрын
I am surprised it wasn’t one of those videos that has no talking and just coding at 3x
@yankates3752
@yankates3752 Жыл бұрын
thanks a lot
@berkepeksen5584
@berkepeksen5584 Жыл бұрын
good stuff
@RakeBye22
@RakeBye22 Жыл бұрын
thank you
@potantirittisak8494
@potantirittisak8494 2 жыл бұрын
Thank uuu
@macros3570
@macros3570 3 жыл бұрын
thank you so so much
@BMoDev
@BMoDev 3 жыл бұрын
@EricYoungVFX
@EricYoungVFX 3 жыл бұрын
You're amazing...
@BMoDev
@BMoDev 3 жыл бұрын
@charm558
@charm558 Жыл бұрын
ty so mch
@triggerdc3gaming617
@triggerdc3gaming617 2 жыл бұрын
great video! but does anyone know how to have different lines of text for two separate NPCs? my brain is fried and idk how to pull it off
@muttlymartin2621
@muttlymartin2621 Жыл бұрын
ngl i got a really odd error when goin though his steps, its displaying 0 which i suspect is the index then flashes each character after the number. ive double checked my code to his but i dont understand wondering if someone might of had the same issue?
@sarmsaklomlet5852
@sarmsaklomlet5852 Жыл бұрын
thanks:)))
@tomo8940
@tomo8940 Жыл бұрын
Anybody know why am I getting "Object reference not set to an instance of an object Dialogue.Update() (at Assests/Dialogue.cs:26"? It's for a college project :(
@someobscuremusicchannel
@someobscuremusicchannel 2 жыл бұрын
the red x in the corner was killing me man
@MayKayy
@MayKayy 2 жыл бұрын
Thanks
@aliangemaxelcrooc877
@aliangemaxelcrooc877 6 ай бұрын
If i have only 1 element or text, it is not showing if i try to make the dialogue box appear again for the second time
@fawzamaisarah459
@fawzamaisarah459 Жыл бұрын
Hi! im following this tutorial but i dont have "text component" and "lines" under my dialogue script, so i cant drag the text into the component. how do i fix this? i need help for my university project.😭
@timothy7411
@timothy7411 5 ай бұрын
i try to put this on timeline but the firs line only showing one character how do i fix this??
@byTrident
@byTrident 2 жыл бұрын
thanks man
@BMoDev
@BMoDev 2 жыл бұрын
You bet
@yongch6407
@yongch6407 2 жыл бұрын
Could you explain the NextLine() logic?
@c-14games
@c-14games 10 ай бұрын
How can I made a dialogue with choices using this method?
@sl4ve576
@sl4ve576 6 ай бұрын
That's cool, but how do I link the dialogue to activate by talking to an Npc?
@priskon5950
@priskon5950 26 күн бұрын
Hi, I have attached this to 2 different gameObjects and have given them unique strings. I noticde that they share the index[lines] variable, so when I interact with 1 object, I can't move to the next line because the script reads both index[lines], anyone knows how to fix that?
@jeferbd7173
@jeferbd7173 3 ай бұрын
sorry, i'm new. The dialog box works, but, where i can put the texts?
@dovmandev
@dovmandev 3 ай бұрын
I expect from you a package solution for medium-sized projects like this in the video
@DemonxModRx
@DemonxModRx 2 жыл бұрын
Using an older version of unity that doesnt have TMP. does a normal text element work for this?
@BMoDev
@BMoDev 2 жыл бұрын
It does, the quality of the text will be noticeably worse. But it absolutely works.
@matthewwinnicki2586
@matthewwinnicki2586 2 жыл бұрын
How can I create a line break in the dialogue system? Is it an easy piece of code I can add to the script?
@BMoDev
@BMoDev 2 жыл бұрын
Try using in a string for a linebreak
How to Make A Simple HEALTH SYSTEM in Unity
7:15
BMo
Рет қаралды 55 М.
How to make a Dialogue System in Unity
16:19
Brackeys
Рет қаралды 910 М.
Super sport🤯
00:15
Lexa_Merin
Рет қаралды 20 МЛН
🍟Best French Fries Homemade #cooking #shorts
00:42
BANKII
Рет қаралды 32 МЛН
Chips evolution !! 😔😔
00:23
Tibo InShape
Рет қаралды 42 МЛН
UNITY 2D NPC DIALOGUE SYSTEM TUTORIAL
7:52
diving_squid
Рет қаралды 48 М.
Undertale DIALOGUE|CUTSCENE in Unity (Episode 1)
16:33
Pandemonium
Рет қаралды 63 М.
Chatting with NPCS - GAME dialog - unity3d ink
12:10
Jason Weimann
Рет қаралды 38 М.
20 Advanced Coding Tips For Big Unity Projects
22:23
Tesseract
Рет қаралды 152 М.
5 Minute MAIN MENU Unity Tutorial
5:10
BMo
Рет қаралды 391 М.
Get This DIALOGUE System For Your Godot GAME Now
42:50
DeveloperEzra
Рет қаралды 23 М.
CLEAN Game Architecture with ScriptableObjects | Unity Tutorial
13:12
Sasquatch B Studios
Рет қаралды 9 М.
Super sport🤯
00:15
Lexa_Merin
Рет қаралды 20 МЛН