Some Questions I have before buying!
Some Questions I have before buying!
Hello, I am curious about this system.
With the triggers and interaction, say if the player has a specific "key" game object found or perhaps given from an NPC, would I be able to use this "key" item and trigger an event like opening specific doors?
The first question kinda brings me to this question. Can the quest system check to see if the player has a specific game object needed?
Would I need an inventory to receive quest items (if that is possible)?
I have a somewhat working inventory/interaction system in my game, but it's not that friendly in terms of adding new things. So I am looking for something new with a nice dialogue system as well.
I guess that is all for now. I might have a few later.
With the triggers and interaction, say if the player has a specific "key" game object found or perhaps given from an NPC, would I be able to use this "key" item and trigger an event like opening specific doors?
The first question kinda brings me to this question. Can the quest system check to see if the player has a specific game object needed?
Would I need an inventory to receive quest items (if that is possible)?
I have a somewhat working inventory/interaction system in my game, but it's not that friendly in terms of adding new things. So I am looking for something new with a nice dialogue system as well.
I guess that is all for now. I might have a few later.
Re: Some Questions I have before buying!
Hi,
Thanks for checking out the Dialogue System!
The Condition part varies from game to game. The Dialogue System has dialogue database variables. In a conversation, you could set a variable to indicate that the player has the key. The Dialogue System Trigger's Condition section can then check this variable.
All of the above can be done without scripting. If you want to tie in your own systems, you may want do a little scripting. You can register your own C# methods with the Dialogue System and then call them in the Condition to check whatever you want, such as checking for an item in your inventory system.
Thanks for checking out the Dialogue System!
Yes. The trigger and interaction components aren't required to use the Dialogue System, but you can certainly use them for this purpose, too. Briefly, you'd add a Selector or Proximity Selector to the player. To the door, you'd add a Usable component that marks the door as usable and a Dialogue System Trigger. On the Dialogue System Trigger, you'd set the Condition to require that the player has a key. If so, use the Actions section to open the door. Dialogue System Trigger supports many types of actions, such as starting conversations, playing animations, and running general UnityEvents. One of those actions are sure to cover whatever you need to open the door.
The Condition part varies from game to game. The Dialogue System has dialogue database variables. In a conversation, you could set a variable to indicate that the player has the key. The Dialogue System Trigger's Condition section can then check this variable.
All of the above can be done without scripting. If you want to tie in your own systems, you may want do a little scripting. You can register your own C# methods with the Dialogue System and then call them in the Condition to check whatever you want, such as checking for an item in your inventory system.
Yes. In the same way I mentioned above, you can either use variables to record that the player has a certain object, or you can register your own C# method and use it in the quest condition.
Not necessarily. It depends on how much you require the inventory to do. If you just need to keep track of whether the player has items or not, you can use dialogue database variables. The dialogue database actually has several tables for data -- one for variables, another for actor info, another for item info, etc. The item table isn't a full inventory system. It's just a list of user-defined values for each item record in the table (Name, Weight, Cost, etc.) without any player-end UI. But you can use it if your inventory needs are very basic. Otherwise you can use your own inventory system or one from the Asset Store. The Dialogue System has integration with Inventory Engine, Inventory Pro, and the inventory systems in several framework assets such as Opsive's Ultimate Character Controller, ORK Framework, Adventure Creator, Corgi, TopDownEngine, etc.
Re: Some Questions I have before buying!
Thank you for the in-depth reply, Tony! It was enough for me to have me sold! Thanks again!
Re: Some Questions I have before buying!
Happy to help! The online manual has a bunch of tutorial videos. They're a good way to get started with the Dialogue System. And if you have any other questions, just let me know.
Re: Some Questions I have before buying!
Tony, this is going awesome so far! I do have a question, the bubble speech dialogue UI, does it work for 2D?
I gave it a go but, perhaps I am doing something wrong. It is not working as intended. Bubble speech appears at the top of the screen, not above the NPC or the player's head. I understand that maybe because it has to do something with 3d world space. And I am creating a 2D top-down RPG.
If not, no biggie!
I gave it a go but, perhaps I am doing something wrong. It is not working as intended. Bubble speech appears at the top of the screen, not above the NPC or the player's head. I understand that maybe because it has to do something with 3d world space. And I am creating a 2D top-down RPG.
If not, no biggie!
Re: Some Questions I have before buying!
Hi,
Yes, the speech bubble also works with 2D. The Dialogue System Extras page has an example in 2D. (direct download)
In 2D or 3D, set it up like this:
1. Add a Dialogue Actor component to the character GameObject.
2. Select the actor from the dropdown.
3. Set Dialogue UI Settings > Subtitle Panel Number to Custom.
4. Assign the bubble subtitle panel prefab to the Custom Subtitle Panel field.
5. -OR- Add an instance of the prefab as a child of the character GameObject. Then assign this instance to the Custom Subtitle Panel field. This makes it easier to fine tune its position. Its default position may be a little too high for the resolution you're using.
You may need to inspect the bubble subtitle panel and adjust its canvas layer and/or sort order so it appears on top of your sprites.
Yes, the speech bubble also works with 2D. The Dialogue System Extras page has an example in 2D. (direct download)
In 2D or 3D, set it up like this:
1. Add a Dialogue Actor component to the character GameObject.
2. Select the actor from the dropdown.
3. Set Dialogue UI Settings > Subtitle Panel Number to Custom.
4. Assign the bubble subtitle panel prefab to the Custom Subtitle Panel field.
5. -OR- Add an instance of the prefab as a child of the character GameObject. Then assign this instance to the Custom Subtitle Panel field. This makes it easier to fine tune its position. Its default position may be a little too high for the resolution you're using.
You may need to inspect the bubble subtitle panel and adjust its canvas layer and/or sort order so it appears on top of your sprites.
Re: Some Questions I have before buying!
That worked Tony, thank you.
I have been testing out other UI's and I come across a problem that I can't figure out. When I hit the space key to continue, it won't. It stays stuck on the same line. Any idea's?
I have been testing out other UI's and I come across a problem that I can't figure out. When I hit the space key to continue, it won't. It stays stuck on the same line. Any idea's?
Re: Some Questions I have before buying!
Hi,
Inspect the Dialogue Manager's Input Device Manager component. Tick Always Auto Focus.
That should take care of it. Here's an explanation: By default, in Unity the "Submit" input is set to the Enter and Space keys. When Unity UI's EventSystem detects that the "Submit" input is pressed, it checks if a UI button is currently selected (aka focused). If so, it "clicks" the button.
If you use Edit > Project Settings > Input to unmap the "Submit" input from the Space key, then this could cause the problem you describe.
The more likely issue is this: If you move the mouse away from the UI button (even if you just inadvertently bump the mouse with your hand), the EventSystem will deselect the button. So when you press the Space key, it won't click anything.
If you tick Always Auto Focus, the Dialogue System will keep an appropriate UI button selected even if you move the mouse. When a subtitle is showing, it will keep the continue button focused.
Inspect the Dialogue Manager's Input Device Manager component. Tick Always Auto Focus.
That should take care of it. Here's an explanation: By default, in Unity the "Submit" input is set to the Enter and Space keys. When Unity UI's EventSystem detects that the "Submit" input is pressed, it checks if a UI button is currently selected (aka focused). If so, it "clicks" the button.
If you use Edit > Project Settings > Input to unmap the "Submit" input from the Space key, then this could cause the problem you describe.
The more likely issue is this: If you move the mouse away from the UI button (even if you just inadvertently bump the mouse with your hand), the EventSystem will deselect the button. So when you press the Space key, it won't click anything.
If you tick Always Auto Focus, the Dialogue System will keep an appropriate UI button selected even if you move the mouse. When a subtitle is showing, it will keep the continue button focused.
Re: Some Questions I have before buying!
Thank you, Tony, you are the God almighty! I appreciate your help.
I do have yet another question that I would like to ask. And it's a bit off-topic. I have been studying C#/Unity for a few months now. What would you recommend for anyone starting? How did you end up with so much experience in creating such a beautiful well-crafted system?
I do have yet another question that I would like to ask. And it's a bit off-topic. I have been studying C#/Unity for a few months now. What would you recommend for anyone starting? How did you end up with so much experience in creating such a beautiful well-crafted system?
Re: Some Questions I have before buying!
Thanks for the compliment to the system. It's been in development since 2012, so it's had a long time to get refinements and add robustness, mostly through constructive feedback from users. I've been programming professionally for almost 30 years so I know that learning things like C# and Unity just takes time and practice. Read about general software development principles in books like Steve McConnell's Code Complete. It'll help you avoid spinning your wheels with the same issues repeatedly, which helps you tackle new things faster. Just keep at it and enjoy the journey.