Just an extra tip and heads up for the fellow learners: You can still attack during enemy's turn because your Attack & heal buttons still show up and is enabled during enemy's turn so make sure you add an extra method that either disables or hides the button when its the enemy's turn and then ReEnables/Unhide the button when its your turn. Should be really easy to implement, just look up the tuts, they are easy to find.
@epion6604 жыл бұрын
*enemy begins attack* *_player violently slaps them again_*
@vickrpg4 жыл бұрын
Actually you cannot because of the state machine. The buttons are still there, but they do nothing during gamestate.enemy turn. still a good UI tip though
@bienvenualexis45644 жыл бұрын
If you spam the attack button during your turn, it will start the coroutine several times until the first one to change the state. This will still perform several attacks in one turn.
@caidenbond19884 жыл бұрын
IF statements work for this, correct? Like if it's the enemy's turn, disable attack or something?
@kunz41644 жыл бұрын
@@caidenbond1988 yeah it will
@Danidev5 жыл бұрын
mmmmm yes
@nezbitnezbit53975 жыл бұрын
Lots of yes
@fridgejuice5 жыл бұрын
Mmmmmm mmmmilk
@emeraldmation70195 жыл бұрын
Milk
@vathsalas48865 жыл бұрын
It is real
@kooperninja54595 жыл бұрын
Ahhhh yeeeeeeeeeees
@NagyerdeiKorisok5 жыл бұрын
There is a mistake in the logic that handles Player's turn and Enemy's turn. 20:35 You need to set the ENEMYTURN flag immediately after the player has chosen an action. Right now as you can see it waits for 2 seconds, in that timeframe we still have our PLAYERTURN, meaning we can spam the attack button and start as many attack coroutines as we can. By changing to ENEMYTURN immediately, we block the attack button's function as it is only available in the player's turn.
@hotlinefrenzy3 жыл бұрын
My man you got it
@AuraBreaker2 жыл бұрын
Thanks for pointing that out wow
@Bolku942 жыл бұрын
I did it like this: IEnumerator PlayerAttack() { bool isDead = enemyUnit.TakeDamage(playerUnit.damage); if (isDead) { state = BattleState.WON; enemyHUD.SetHP(enemyUnit.currentHP = 0); EndBattle(); } else { state = BattleState.ENEMYTURN; enemyHUD.SetHP(enemyUnit.currentHP,); dialogueText.text = "You deal " + playerUnit.damage + " damage..."; yield return new WaitForSeconds(2f); StartCoroutine(EnemyTurn()); } } AND: IEnumerator PlayerHeal() { playerUnit.Heal(5); state = BattleState.ENEMYTURN; playerHUD.SetHP(playerUnit.currentHP); dialogueText.text = "You healed for 5."; yield return new WaitForSeconds(2f); StartCoroutine(EnemyTurn()); }
@cosmicrenegade Жыл бұрын
I handled this by having an intermediate state called WAITING. This is a "blank" state that prevents the button spam, keeps me conscious about state switching as I'm programming, and also a state I can use later to let animations play out.
@andreferreira24565 жыл бұрын
I can't believe that after years online I actually saw an Ad that is actually useful! Milanote sounds like what I've been looking for years!
@zahhym4 жыл бұрын
you can just use trello, much easier
@se99794 жыл бұрын
Probably bot
@Brahvim4 жыл бұрын
Evernote?
@alexsouthworth49784 жыл бұрын
@@se9979 No, milanote actually seems really good from what little I've done with it. Perhaps there's some paywall that i haven't come across yet, but it does actually seem really helpful for planning stuff. I definitely sound like a bot. I recommend you give it a go though.
@purple_fox_arts4 жыл бұрын
Milanote is great 👌
@warlockconnor58615 жыл бұрын
I literally spent a week building a turn based combat system then this comes out
@lethn29295 жыл бұрын
He's a bastard for that isn't he?
@Axodus5 жыл бұрын
@Lethn Why are you being so rude.
@lethn29295 жыл бұрын
@@Axodus Why are you being so dumb?
@waelalr92035 жыл бұрын
@@Axodus r/woosh you soo hard
@Axodus5 жыл бұрын
@Lethn [Sees you're getting super defensive over a single comment] I think this proves I'm right, why would you get defensive otherwise unless you realized you _were_ being rude. Me: [Presses F to Doubt I'm the dumb one in this scenario]
@SamFoit05 жыл бұрын
When you're just starting to create an RPG game and this pops into your recommended...
@se99794 жыл бұрын
I need help: do you know some way to make random encounters or some video that talks about it?
@redgeoblaze37524 жыл бұрын
@@se9979 If you're thinking about a random encounter system like Pokemon, Add a property to tiles for if they are dangerous or not. Have a list of encounters your player can encounter in that general area, and perhaps set the ID for these encounters in individual tiles if you want to get more specific. Perform a random roll when the player steps or turns within one of these dangerous tiles, (Pokemon also makes the chance at an encounter more likely if the player is running.) Then store relevant level data before transitioning to the battle scene, and when it's over, load your player back where they were. (I'm still really new at game design, but I think this is how it's done from a logistics standpoint.)
@KaosWater3 жыл бұрын
@@redgeoblaze3752 That sounds right.
@chillmadude3 жыл бұрын
a role playing game game?
@cam47225 жыл бұрын
This tutorial rocks. Thanks, man.
@marvpeelow31375 жыл бұрын
ba tum tsss... I see what you did there buddy
@mreverything70564 жыл бұрын
What are you playing? Yotsuyu Yagiyama stand ...What?
@lslightningstrike2844 жыл бұрын
Mr Everything 70 what
@itsrachnime4 жыл бұрын
Noice joke my dude
@BroomieHERE3 жыл бұрын
Ice-y what you did there pal
@sheenufilms5 жыл бұрын
This was an awesome tutorial. You are one of the best Unity tutorial channels I've ever run into! However, I found a HUGE problem in the way this battle system works. There is now way to check if the player is spamming the Attack or Heal button, so when the button is spam clicked, you can attack or heal multiple times. I fixed it by creating new BattleStates called "PLAYERATTACKED" and "PLAYERHEALED" and immediately switching to that state when the PlayerAttack() or PlayerHeal() is called.
@NorthGMD4 жыл бұрын
Thank you so much!
@Athinis_Crettos8 ай бұрын
I know you recently came back from the gates of death *spooky* and started to make new videos!! I loved the content, thank you for that, I'm not a programmer but I could finished the turned base combat you purposed and the most great party of it is that I was able by myself to clear all the bug I had and made it work!! I feel really happy for achieving that!! Thank you, Brackeys!! Your contents are awesome!! We're glad you are back =]
@agitated_cat4 жыл бұрын
most repeated words of 2019: "so let's go ahead and get rid of our start and update functions"
@irishbruse5 жыл бұрын
How to create pokemon the copyright free version
@Catervus5 жыл бұрын
Ayy it's you! :D you helped me with code earlier today!
@forget69175 жыл бұрын
Or just ROM hack (since then you have all the Pokémon data)
@OCPyrit5 жыл бұрын
I spend a week setting up the canvas before doing anything.
@MorRochben5 жыл бұрын
pocket rocks!
@Zihan1185 жыл бұрын
@@καλαμ come on help the poor guy, yeah that videos quality is a bit low but come on! I shared all what is important aye?
@Hyde2334 жыл бұрын
After I followed this tutorial, I found Infallible Code's video "How to Code a Simple State Machine (Unity Tutorial)." It shows how to create a state machine and the tutorial is based somewhat off of the battle system shown in this video. I recommend that you guys check it out; it'll help you organize the code for each individual action (attacking and healing) better.
@KaosWater3 жыл бұрын
I learned a lot from this. I am currently trying to make a rpg with 6 party members and each taking a turn. Now to sit at the code screen and stare till things come to me.
@DanCreaMundos5 жыл бұрын
I love your videos, and specially more nowadays. You've improved so much. I was watching for example one of your old videos a out parallax effect in 2d games and I have to say it, oh God it was so hard to watch. In those days you explained everything while you were writing the code like in live video, it was so slow and painful compared to your new videos lol still very useful all of them, but maybe you should remake a few of the more dense and long ones to this new format.
@danielwitt76455 жыл бұрын
Perhaps the changes in Unity 2020 will be reason enough to update old video tutorials in the new style
@sharif475 жыл бұрын
Blender Guru did something similar when Blender 2.8 came out. So, why not the same for Brackeys?
@patrickmorter90974 жыл бұрын
Hey Asbjørn, so much to say. Firstly a massive thank you for helping me get into game dev. Less than two years ago I knew nothing of this world, but since watching your videos and using them almost exclusively as a learning resource, I've gone from zero to...competent coder (bet you thought I was going to say hero). I was saddened to hear your announcement on ending your Brackey's videos, but as the old saying goes, don't be sad that it's over, smile because it happened and thanks to the medium, your youtube videos remain and are still a vital resource that I plunge into on a regular basis. Your professional approach to making clear and informative tutorials were (and still are) an absolute God send. I have you personally to thank for this new skillset and wish you the best of luck for the future. EndlessGratitude(); Patmaaan return;
@DoorsExciteMe5 жыл бұрын
The sheer quality of this tutorial is amazing
@worldismyne5 жыл бұрын
THANK YOU SO MUCH FOR MAKING THIS!!!!! Seriously I can't express how difficult it has been to find a comprehensive tutorial on this subject (paid for or for free). You have saved my game man. I'm seriously so grateful. OTL
@TheDuccyGaming Жыл бұрын
for people who are about to watch this video, 100% WORTH IT!! Follow along the whole 30 mins. completely customizable and very user friendly!
@LeAlexo5 жыл бұрын
I think it’s the first time ever that a sponsor convinces me to try the product that it sells!
@inodedentry88875 жыл бұрын
tbf the advertisement was also really clever, with him using the product being advertised throughout the whole video to show it off at the same time as teaching you gamedev skills. i'd say it was Brackeys that convinced you more so than the sponsor did :)
@abigorm.90565 жыл бұрын
4 Minutes in and its pass 3 PM ... Great guide ! having fun modifying with free art and thinking what changes could be made to the UI Would love to see more guides for rpg , Especially how to trigger the turn base combat from another menu. Thanks for the video !
@JoshyMRaj5 жыл бұрын
Hi Asbjorn, we missed you in Unite India. But happy to see you in FaceTime. Met Andreas and I conveyed my hearful thanks to Brackeys team. Wish you all the happiness in life. Thanks Guru.
@ugurcankarakas65544 жыл бұрын
Dude you're a life saver. This is a great place if you're new to unity and learn. Thanks for everything.
@micaiahstevens88405 жыл бұрын
Gotta say that was the BEST AD EVER! It was nicely integrated, teaches people how to use a cool tool and IS part of the larger Game Development tutorials that MOST don't seem to show. YAY I did all this, with a TON of work but its like 10 mins of video. I mean great job, I think Milinote is great, I like its drag and drag. I know a Dark Theme would help, from my browser, but those sites REALLY are missing that, not sure if it has it.
@micaiahstevens88405 жыл бұрын
Just signed up, COOL you can increase the font, and SO far does work NICELY with the Dark Theme browser extension I use. MY GAWD Why is Unity not charging me $1000 for my use of Dark THEME! - ITS free Unity IMAGINE that!
@Warpgatez4 жыл бұрын
I was literally looking for milanote after I saw a indie dev using it but I didn't know what it's name was. I thought it was notion but couldn't find the templates that matched this look so ruled it out. Thanks brackets! Not only for the great tutorial but also finishing my quest to find it!
@GameDevExperiments4 жыл бұрын
This tutorial gave me nostalgia and inspired me to create a small pokemon game clone. I've also created a pokemon game tutorial series in unity to help anyone who wants to create something similar.
@Halfscreen5 жыл бұрын
The best youtube channel if you want to learn unity3D! Thanks!
@chaosmastermind4 жыл бұрын
"A wild The Rock approaches..." I love that you kept it like that. LOL
@WagnerGFX5 жыл бұрын
Awesome video and awesome AD, perfectly integrated in the content and actually showing how it can be useful for development.
@Neox9995 жыл бұрын
There is a small problem in this project. You can spam the Attack and Heal buttons for 2 seconds because the battle state doesn't get changed immediately. I would suggest to add a new battle state like "PLAYERACTION" and change the state to that on line 62 at 20:12 before you call the Coroutine (or inside the Corioutine but before the 2 seconds wait).
@JR-ky5sm2 жыл бұрын
what would that look like?
@michalstary99203 жыл бұрын
All my questions answered in one video. Thanks! I have no idea how he manages to speak and type this fast at the same time though...
@Soundy7775 жыл бұрын
Good intro to the topic, wouldn't mind a whole series on fleshing this kind of system to show off better coding techniques & some juicy fx! \o/
@DakarrtheTerminator4 жыл бұрын
when adapting the contents of this tutorial I decided to change one key aspect. I find it a little silly to adapt a creature's stats to a prefab, create objects from prefabs every single encounter and every time you catch something etc. So instead, I just load the specific sprite that matches the fighter's name from Resources and keep all the fighter-specific data in its own instance of class Creature. That way it persists across all systems of the game.
@raviolipopcorn6685 жыл бұрын
As always brackeys, you have an answer for every problem I encounter. Thanks man!
@Chevifier5 жыл бұрын
Wow I didnt know we could call "yield return WaiforSeconds" multiple times in one IEnumerator!! So much cool ideas just popped up in my head XD
@connorschultz380 Жыл бұрын
I am personally attmepting to recreate a childhood flash game in unity, it had a turn based combat system and a lot of mechanics! So thank you!
@xyhc-cnc5 жыл бұрын
Oh shoot, I was just gonna have to research about programming turn-based combat and the report is due tomorrow then I saw this in my subscription feeds! Thank you!!!
@Maxb0tbeep5 жыл бұрын
Thank you! This is just what I needed at like the (strangely) perfect time!
@nandorbacso46255 жыл бұрын
It's amazing how you help people to grow in game development. I love your channel :D
@StefanLopuszanski5 жыл бұрын
Nice. I'm sure a lot of students I know would love to see this stuff. Great first step.
@YulRun5 жыл бұрын
Been wanting a basics turn based combat system forever, thanks!
@カーマイケル-l2b5 жыл бұрын
Thank you for great videos every week!! This's I've been waiting for. By the way, I found a bug in the code. If I click the attack button or heal button again and again in my turn (before WaitForSeconds() ends), I can attack or heal many times in 1 turn. After my turn ends, I get attacked many times in 1 turn. A solution for this is add new BattleState named "PLAYER_CHOOSED_ACTION". When the attack button or heal button was pressed in player's turn, change the state PLAYER_TURN to PLAYER_CHOOSED_ACTION and fix the if statement such like "if (state != BattleState.PLAYER_TURN && state == BattleState.PLAYER_ACTION_CHOOSED) return;". Of course to fix this, we can change the UI as soon as the attack button or heal button was pressed. Thanks for reading and happy coding!
@MaxParasite5 жыл бұрын
I had the same issue and solved it similarly: public enum ButtonState { ACTIVE, INACTIVE } Initiate it to ACTIVE in the Start function and set it to INACTIVE in the Button Functions before PlayerAttack or PlayerHeal are called. Reset it to ACTIVE when the Enemy Turn ends.
@rigradgaming2534 жыл бұрын
@@MaxParasite Alright, I'm confused. Where exactly am i putting the inactive and active and how do i make them affect the buttons i want?
@AndersonReis425 жыл бұрын
I say thank you. You're a real lifesaver, i've been trying to do this since march! Been struggling with those unholy finite state machines with variable degrees of success.... If i ever finish my game i'll be sure to thank this channel
@AndersonReis425 жыл бұрын
I've just tried it. It has worked perfectly fine (well, with minor bugs but nothing serious). This tutorial is easy to follow, and it is really easy to modify the code. I've been researching a bit and some people do actually use corroutines as FSM. WELL, my other projects will surely work really fine now!
@MonochromeChromosome5 жыл бұрын
@@AndersonReis42 great job:) by the way, what are you working on? Might wanna play!
@AndersonReis425 жыл бұрын
@@MonochromeChromosome oh, nothing too ambitious. Just a "chicken fighting game". Chicken fights are a brazilian meme :) But i'll use the algorithm later to develop a game where you train a boxer to his way to success. Things are in a very early development stage however
@Handidev5 жыл бұрын
That's cool ! "The Rock vs An actual Rock" 🤣
@boris-schacter5 жыл бұрын
Great video! As usual, useful content right when needed.
@raffe78895 жыл бұрын
yayy it's apparently Sunday again! good to see you post :)
@danielsaix21604 жыл бұрын
Just worked this out, works great! Only difficulty I have is that whenever the enemy attacks, all it says is "enemy (clone)" rather than the name I assigned it. Aside from that tiny issue, everything works great!
@RagoxHatena4 жыл бұрын
That is because you are likely referencing the name of the object "enemy(clone)" instead of their assigned name. Perhaps you could make their name a bit more clear, that way you can make a clear reference to the unit?
@danielsaix21604 жыл бұрын
@@RagoxHatena I just figured it out last night, but thank you for the reply!
@nezbro20115 жыл бұрын
Seems like something you should continue haha.
@Coda024 жыл бұрын
This is actually what I need and its not really that difficult, thanks again!
@XEqualsPenguin5 жыл бұрын
I need to make a Turn-Based Combat system for an AI tech demo for a class, so this was timed AMAZINGLY!
@trackernivrig4 жыл бұрын
Extremely helpful video. Really helped out, and while I will definitely add more to it, and change it so that it fits my vision for my game more, this is really useful for getting the basics down. However, I did notice that if you keep clicking on the player attack, it will cause the damage to just continually go down. I think I was able to solve this by changing the state in the PlayerHeal and PlayerAttack methods before waiting, since that will make it so that the attack and heal methods just return without doing anything else.
@UzanLatif4 жыл бұрын
That script was very structured love it
@itsjoffrey14765 жыл бұрын
I was just looking for this... Perfect timing
@dotaportalvideo5 жыл бұрын
This was a great video. Learned a lot from implementing it while following your example.
@wadegamez18243 жыл бұрын
Просто спасибо тебе за твои гайды, ты просто лучший. Столько всего пересмотрел на ютубе и твои гайды просто лучшие
@khalilboss28555 жыл бұрын
Best unity tutorial channel ever!
@MatrixRex055 жыл бұрын
"dwayne" johnson the "rock"....... Thanks for the tutorial. You are awesome.
@codegnatstudios5 жыл бұрын
Thanks so much! These tutorials make my day a whole lot better!
@danh96764 жыл бұрын
I like this system. I also added my own implementation of the ATB meter from the final fantasy series.
@youtubewatcher61244 жыл бұрын
How
@AlexanderFrischbutter5 жыл бұрын
Please make a video about camera and scaling the ui, it is so hard for me to get this right :) btw, love your content!!!
@antominom81754 жыл бұрын
I recommend changing the UI scale mode on the canvas to: scale with screen. It’s a lot easier to work with trust me.
@itsmeolee67105 жыл бұрын
As a solo developer, I tried Milanote and found it to be a much better, tailored experience than something of the likes of Trello. I had been using Trello up until now, and while it serves its purpose well, I will be using Milanote from now on. Thanks @Brackeys :D That awfully sounded like a paid comment, yikes lol
@lukek.57735 жыл бұрын
HOLY FUCK, this couldn't have come at a more perfect time, I have a tactics move system that's broken and this may help me buff up the turn based manager
@Ebrodrool Жыл бұрын
Merry Christmas from Majou ;)
@marosmierka19049 ай бұрын
about 2:00 - potential error (i had trouble here later when stuff spawned) its better to create emptz objects and insert picture underneath it why- if you need to scale the picture, it would scale the object that spawns on it as well, with empty object it does not have to scale yet you get scalable picture
@iminyourwallsthereisnoescape9 ай бұрын
HES BACK
@timbelion37655 жыл бұрын
You looks great today! Ou btw congrats on 900k subs!!
@Melvin88ify5 жыл бұрын
Thanks for sharing the IEnumerators, they should be heard!. I discovered them very late and no one really talks that much about their full potential. Now almost nothing runs in the updates function and i also cut down on using the animator because of the IEnumerators. Very powerfull and fairly cheap
@rosh63695 жыл бұрын
do you have some videos/documentation where I could learn more about IEnumerators? I've been seeing them a lot recently whilst I'm learning and, like you mentioned, couldn't find much in the way of information on them.
@Melvin88ify5 жыл бұрын
@@rosh6369 Not really actually.. it just kinda clicked at some point, seeing them being used in all kinds of different ways over time. I'd say this video does a good job, maybe Brackeys can do a more in-depth topic on this ?? :) For me one of the most powerful things is that it can fire on one frame using the startcoroutine and then have its own independent update running, you can even loop it until you tell it to stop which is very useful for frame by frame animations and tweening positions.
@rosh63695 жыл бұрын
@@Melvin88ify Does this not contribute to memory leaks, though? they seem very powerful, I should do some digging.
@DravicPL5 жыл бұрын
@@rosh6369 good question. I have no idea if it contributes to memory leaks over time. I would assume it's unwise to keep an IEnumerator working for longer than a few seconds but who knows. I am sure that they fall under garbage collection after they end executing all of their code.
@endorphingames29575 жыл бұрын
@@DravicPL you can keep a coroutine running as long as you like. It gets stopped on scene change/gameobject removal.
@orange13045 жыл бұрын
That's funny. Just today I've been wondering how to implement something similar. Great!
@Gers2175 жыл бұрын
A video about SOLID principles in Unity would be pretty nice
@melodicfish78335 жыл бұрын
Sweet man! Thanks for making this :)
@davegamedevelopment5 жыл бұрын
Nice video, helps me a lot.
@wis66885 жыл бұрын
Just in time for my project! Love your videos btw.. Great content! Will you make an advanced tutorial about water and maybe swimming?
@In-N-Out3335 жыл бұрын
You can simplify GameObject playerGO = Instantiate(playerPrefab, playerBattleStation); playerUnit = playerGO.GetComponent(); to just playerUnit = Instantiate(playerPrefab, playerBattleStation).GetComponent(); That way you can instantiate the object while also setting a variable to one of its components. You also don't need the 'playerGO' variable.
@oisinmcl5 жыл бұрын
What if you need another component? Your version is less flexible and maintainable. Shorting code to one liners is rarely better if at all.
@hunterbanks37465 жыл бұрын
Thank you so much I have been looking for a good turn based tutorial
@TheJaviJB5 жыл бұрын
In the TakeDamage method you could directly return currentHP
@PatrickAngel5254 жыл бұрын
Here is a quick breakdown of what would be really nice for milanote to be able to * Create references to other boards anywhere (like a hyperlink) * Create a KanBan board that can connect to all todo lists (KanBan boards are used by a lot of professionals for organizing which todo tasks are more important to least important and include a backlog) * Better tutorial and/or documentation if not already available on how to use milanote, if available make it easier to access I'll add onto this if/when I come up with better and/or more ideas. This is just my first impressions messing around with Milanote for an hour. Let me know what you think :) Otherwise this is a really good tool for organization!!!!
@energyeve21524 жыл бұрын
This is awesome! I’m just starting to learn and this was very helpful. Thank you ^_^
@frozenhat4203 жыл бұрын
That Battle shown in the checklist is the battle from pokemon ruby and sapphire where you choose your starter to save Professor Birch from the poochyena
@Zethneralith5 жыл бұрын
5:54 It was at this point that I got the joke. Dwayne vs The Rock. Well played, Brackeys. Well played.
@Argenuto4 жыл бұрын
Brackey saving my day... Again! thank you very much!
@Muphet5 жыл бұрын
finally, i waited for this
@1singe_4 жыл бұрын
You should call this episode "Definitly not a Pokemon combat tutorial"
@ziraw59415 жыл бұрын
OMG I LOVE U This is EXACTLY what I wanted YESS ❤
@birgerevan5 жыл бұрын
Are you going to make tutorials for Unity ECS once Entities 1.0 is released?
@MegaGameCore5 жыл бұрын
Honestly, i doubt that he understands ECS. I also doubt that ECS is something that will be well recieved by the larger part of the community.
@lucianomcardoso4 жыл бұрын
kzbin.info/www/bejne/f33Jhqh4gcutfas
@matthewm21394 жыл бұрын
Exactly what I was looking for this week. Nice work.
@rpgtogether70225 жыл бұрын
I made different attacks possible by making a scriptable object to store attack data and a ratio probability system for enemies
@rosh63695 жыл бұрын
Good tip!!
@RatDudeee4 жыл бұрын
Thanks for the help i am working on an rpg for my coding class and this was a big help
@TransGuyShane5 жыл бұрын
You make this look so easy XD I suck at making turn based games, hopefully this will help :)
@crazy4videogames_4 жыл бұрын
Hey nice tutorial, would there be a chance for an extended tutorial which covers multiple combatants and different attacks/actions per combatant?
@eduardodominguesfenner62772 жыл бұрын
For some reason, the unity doesn't recognise the Unit. It says "The type or namespace 'Unit' could not be found" Edit: found the answer. Unit is not a "variable". Is the name of the script you use in the player and enemy
@TheKrou3 жыл бұрын
How would you change the BattleSystem code to have multiple enemies or multiple player-controlled characters, like in Final Fantasy?
@JarlThorson5 жыл бұрын
I really like the working off the checklist... I wonder if you would consider doing a few video's on how you figure the architectural design before you do the coding? This is the area where I get crippled with choice.
@DravicPL5 жыл бұрын
Use your imagination and put yourself in the shoes of a player who does not know anything about your design other than what he sees right now and has seen up until this point. Then go step by step meticulously. What does the player need to see? What has to be hidden from the player? Where will the UI be most visible but least obstructing? Etc.
@JarlThorson5 жыл бұрын
@@DravicPL I appreciate the answer, but I think you are talking about design. I am talking about architecture. I can make something in five different ways where the end user can't tell the difference. Choosing which method to go with is the issue I am talking about.
@Jacob-bd9vw3 жыл бұрын
"The player should be a rock. That's just inherently cool" Lmao.
@RauKom5 жыл бұрын
OMG FINALLY, I LOVE YOU. 💙
@southpawdevelopment5 жыл бұрын
I swear I was making a D&D modeled game yesterday and couldnt get good turn mechanics down. You're a mind reader
@DravicPL5 жыл бұрын
This is not a good turn mechanic. This is a basic turn mechanic. It's not bad but it's not good. It's basic. With that said this can be expanded upon and perfected into a great turn mechanic. Good luck!
@RoyalMunjask5 жыл бұрын
You should make a second episode about changing unit, have the values still saved when changing (like life) and attack priority (the fastest attacks first) But well that's a really interesting video and seems really useful... Thank you.
@DravicPL5 жыл бұрын
When it comes to turn based battles, I'm a bigger fan of attack speed allowing for multiple attacks within the same turn. It's very simple to implement: Every turn, add a float value if unit.attackSpeed to float unit.timer If unit.timer > 1.0f, then set the state to allow an attack. After this attack, check again if unit.timer is still > 1.0f. If not, add unit.attackSpeed to unit.timer to the opposing unit. Check if opposing unit.timer > 1.0f and let it attack if appropriate. If not, go back to the other unit. Continue doing this until one of the units can attack. After every attack, subtract 1.0f from unit.timer. With this system in place, here's a few example scenarios: * Player unit has attack speed of 1.5f. = this means every second turn, player unit will attack twice in the same turn. * Enemy unit has attack speed of 0.34f = this means enemy unit can only attack every third turn. Etc.
@jangou47633 жыл бұрын
Do you by any chance know how to store the hp and stuff like that in the prefab ?
@SkyLoad1004 жыл бұрын
is there any chance someone know how to manage multiple character in one team such as FF
@radquwhack Жыл бұрын
When coding the TakeDamage function REMEMBER TO CHANGE “void” INTO “bool”!! I missed this the first time watching and was losing my mind why calling one TakeDamage function as a bool was fine while a different TakeDamage function had an error for trying to call it as a bool.
@nezajac5 жыл бұрын
I like it! Very good video, thk you!
@emersondiego84013 жыл бұрын
Sou Brasileiro e seu vídeo foi o único que me ajudou de verdade, Obrigado man!!
@richardmaia87323 жыл бұрын
Mané se tem discord ? huahuahua to começando na Unity e preciso de falantes da lingua ptbr pra Estudar e talz