Ot is like "le bon coin". All free without ads then when the users are catched it is money time. I was sure about it 😂. I 'm dev on industry. We are using our own 3d engines. But for personnal project I decided to start learning Unity 6 month ago. Yes a great engine with lots of easy things to do. But finally a good product should be monetised. If game dev try to create a full engine + editor, they will lost A LOT MORE money than just using unity. Thx for.the video
Vary independent and simple method to organize interactions in code! Thank you a lot! P.S. Also, like for Moonlight Sonata. I had flashbacks from Earthworm Jim 2 xd
Are you also getting errors with the ObjectPoolSO? I did get them when trying to get an object from the Pool. This is weird since the Pool should always be initialized in OnEnable, however i Debugged it and noticed that isnt the case. To solve this: 1. Create a Poolmanager Script 2. In OnEnable call a new method "InitializeAllPools" 3. In that method call for each var Pool in objectPoolSo, Pool.Initialize. the same for Superobjectpool 4. Create 2 lists for the pools 5. Make the OnEnable method in the Pool scripts public and name them initialize This was really frustrating to find and i dont know why that is the case for me, when in the Video he doesnt get any errors... anyway hope that helped.
Me personally i love the idea i just dont like doing everything in the editor so instead of scriptable objects with listeners I just use a static class with a bunch of different Action/Func ‘s the system is amazing!
I am happy with this. It's not frustrating ui and is intuitive. However now learning the UI Toolkit, I'm getting that frustration. (Not from its design just from my incompetence). I'm sure I'll naturally get good with it over time, I'll just ensure to keep using ui toolkit!
I can't pass ints? [Header( "Events" )] public GameEvent OnDealCards; ... OnDealCards.Raise(2); ... public void OnDealCards(int amtToDeal) { //This always prints 0, calling it at the very beginning of the function. Debug.Log( amtToDeal ); I'm pretty sure I've double checked all the obvious stuff like making sure the scriptable object is attached. The scripts I'm using are downloaded from gamedev.
There's a part of the video missing before 11:36. You are fixing fog. Then all of a sudden you say "Here we are, our first script has been created" - but you never show how to create the script. Or, if you mean that the script is already created for people watching the video in the download, then your download is broken. Because that file is not in the current download. I don't know if you made an update to the download and removed the script.
My major concern with using this is if you get far along in the project and ever need to adjust the base class or add or remove something from it. I don’t know if this has changed in the latest versions of the Unity Editor but if you had a bunch of GameEvent SOs you had created and then edit the base SO class in anyway it tends to erase the data in ALL of the child SOs in your project. So all of those links might suddenly break. I don’t know if this is more effective than having a singleton manager system that utilizes Actions or Events built into C# natively. I automate the whole connection process you have to do manually here just inside the code like you did with the registering and unregistering. I can even have it where the manager is instantiated and sets itself as a singleton instance if it gets missed in creating a scene… It feels more robust to me.
Changing the signature of the event might break all listeners since the parameters change. There the better way is to support multiple signatures and migrate your listeners one after one. Manager with actions/event and define all by code is of course the most robust method! Have a video about that :D
@@this-is-gamedev Hmm, my experience hasn’t been about the signature and one particular function. I think with the method you’re using it may not be as big of a problem since you’re directly referencing the entire SO object and not data within it. But 100% for me at least with Unity 2021 and 2022 versions if you ever change anything in the base SO script, add a new variable, add a new function, even just add a comment, everything in the child classes gets reset to default or null if you don’t provide a default in the initialization.
if it needs references it lost its purpose for me, making it a lot more complex...even when its watched as a good practice, having adhd so this event system sounds like spaguety references for me im working on another approach, a log system, and like for example, object a send a log on console: "player - 15 hp" a script log register that log on a list and the script reader of that object, if it reads player lost -15 hp, says, life_manager it deduct the life using "X" method..... this works with 2 scripts ....but im testing it...and this is just talking i need to fix stuff to see if it actually works for its purpouses
I find it problematic that I can raise an event from any class that a reference to it, I can imagine that it can easily lead to spaghetti code if you're not careful and in case you have a bug it will become to difficult to trace its source...
The fact that I knew about all of them and their functions but still watched the full video goes to show that how well made the video was. It might be helpful for beginners I guess.
I'm a game designer and I subscribed because the event system video, which is awesome. Bu the truth is that I had a hard time to understand as I'm a beginner in coding. I would like to see something that could help predict some action for debugging, like predict the damage a skill would cause before the action. Or any tool/concept that might help during the game design. =]
I love the first solution and it's held up in a fairly large project. I came back because I thought I broke something - I just forgot to end an event call with .Invoke in one monobehavior. Duh-doy.
Wow That helped A lot but can you update this Event System to Listen to multiple different events using just 1 single Event Listener Script on the object because currently we have to add separate Event listener Scripts for different events and say if we have 20 Events then we have to attach 20 event listener scripts on the gameobject to listen to them, but if a array based Event Listener works then it would be awesome, i would like to know your thoughts on this.
As someone who's been self teaching game dev as a hobby it's really refreshing to find content that focuses on not just how to achieve a result, or implement something in the most basic sense, but instead focus on how to achieve a result that's good, or implement a feature with polish. I'm pretty sure i've learnt most of the basic implementation methods, so thank you so much for taking the time to create such high quality videos that are for a more intermediate/advanced audience.
3:01 if it blue it good got me so hard 😂😂😂😂 ( btw i really liked the way that he speaks and it is understandable course also he's really cute (i am not gay just being honest) )