UE5 3rd Person Tower Defense Part 10: Enemy Wave Variety
ฝัง
- เผยแพร่เมื่อ 25 ส.ค. 2024
- This tutorial will cover creating a adaptable wave system for the 3rd Person Tower Defense Tutorial using Unreal Engine 5. In this tutorial, we will:
-Create a Structure and a Data Table
-Add the Data Table into the system we already created.
Music by Bensound.com
License code: Y2YLQS8WZWLEHB7J
This is a good system to create a wave system, but usually in games, not all the enemies in the wave come at once, for example, when wave 1 is active, if a total of 30 enemies come, first 5, then 10, and finally the last ones come, how can we do this and thank you.
Great point! I will create a video on that tonight and upload it tomorrow. If you want to know right now though here is how you do it: In order to do that all you would have to do is go to the structure that we created and add a new variable of type float and make the container type array like we did for the others. Then go to the data table and add the index with a delay of whatever length you want that matches the index of the enemy you want delayed. Then go back to the third person character blueprint. Go to the custom event "Spawn" and under the "Break S_Enemies" we created there should be the new float array we created. Get a copy of that like we did for the other 2 arrays and attach the variable "Enemy Select" to it. Create a delay after the point where we "Set Enemies Spawned" and attach the "Get" float array we created into it.
Here is the video: th-cam.com/video/V3fFt2lKHEw/w-d-xo.html
Went through this video last night and at the end, it all worked except for actually selecting the enemies. I have the data table and struc built exactly the same so im thinking something I made in the enemy selector is incorrect. I will refollow and hopefully correct in a bit
It might also be the current wave event. Make sure that appended string you made matches the exact name of the row or it won't work. It will work for the 1st wave but when you reach the second wave it won't spawn the next wave.
@@CarbonicAcidStudios @CarbonicAcidStudios just cut my computer on so will check in a second but considering it follows the number of enemies each wave correctly and not the type of enemy, i was thinking it was reading it correctly, just not selecting the correct one. Will check asap. Thanks!
@@CarbonicAcidStudios could i upload a video of my code and see if you see any issues? or reach out to you via discord or email?
Sorry for all the comments, just debugging everything. The enemy selected print shows it changes from 1, 2, 3. The enemies spawned and alive print accurate. I even added a print string to the row name and it shows it changes to match the wave, so Wave1, Wave2, and Wave3. Unsure what I am missing but will keep trying
okay, last comment as I have resolved my issue. On the Spawn CustomEvent, the SpawnActor node, I did not have the Enemy Class variable attached, so it would still spawn the first enemy even though the enemy select was printing as the accurate number. Sorry for all the trouble and notifications. So i just missed one small thing around 10:50
I've had abit of my own blueprint but now i have understodd i have to change everything to yours. But I have a hard time finding where it doesnt work for me. I'm trying to copy and jumping back and forth in the video. Can you uploaded your project ? Would be easier for me to find where I am wrong or missed something
It does create the wave 1 for me but then the widget is not even showing. Option2 is that I uploaded tonyoutube again and maybe you can see over it
A wish i have is that you in the end of the videos show the whole blueprints we worked with
So it turned out that I solved this. I played anf I noticed that I never got the money from when my towers killed the enemy. So I removed the towers So they died to the Base. Turned out everything works now! :) I added cast to BPI decreasing enemy in the death event in BP enemy and got player character from topdowncharacter.
I will look into uploading my project. You are right that it would be very helpful.
hello i would like to know wat would be done for a endless mode we cant create 300 waves manually, is there a way to automate it so that it spawns the enemies on its own? i would like to know how to achieve that
Great idea! Are you thinking increasing the enemy health and having it loop with the same waves (like in sanctum)? Or increasing the number of enemies? Or Both? Or something else?
@@CarbonicAcidStudios both as time goes one the number of waves increases ie the wave number goes up and after a certain wave number les say multiples of 50 the enemies health goes up by 50 or something. Also i was wondering making the enemies spawn in player bp is efficient? or is making a spawner separate better.
Ok, I think I know what you are saying. Correct me if I am wrong. You are talking about an automatic wave system based on time that automatically starts after a certain amount of time has passed since the last enemy in a wave was spawned. Then every certain amount of waves the health goes up. That would be hard to type out instructions for but I can make a video on that. For the spawner thing you are right, keeping it in the player bp is not efficient when it comes to a multi-level game. Making a separate spawner would be better in a lot of ways or using the level blueprint.
@@CarbonicAcidStudios yes sir, similar to Bloon Toon TD 6 it has a normal and endless mode. would love to wait for the video