Page 1 of 1

Quest Items as Scriptable Objects

Posted: Sat Jan 21, 2023 9:35 am
by JamesTFreaknKirk
Hello,

I've finished making my first quest with the dialogue system and so far it works incredibly well.

I'd like each quest to give a specific item to the player.

Right now my inventory system works with scriptable objects, and the item is given to the player through a method on a monobehavior that takes that scriptable object (and triggers UI components and all that jazz).

Question 1. is there a way to reference a scriptable object as a variable? so when the quest is complete I could somehow pass it through the method. (when I was looking at the variable system I thought, maybe I could make a reference table with integers, that refers to an item to give the player)

Question 2. How would I go about invoking a method that passes through that scriptable object?

alternatively, is there just a better way of doing this that is already designed into the dialogue system

Thanks so much for your time! :D

Re: Quest Items as Scriptable Objects

Posted: Sat Jan 21, 2023 9:58 am
by Tony Li
Hi,

The Dialogue System has a tradeoff in that its content is all text. On the plus side, this means you can export and import (e.g., import from external formats such as articy:draft, export to CSV) without losing anything. But on the minus side, it doesn't allow for asset-based references since those are Unity GUID-specific. You could either specify the item by name, or write a custom field type that shows the items in a dropdown menu. Internally, the info stored in the field would be a string or int representing an item in an item database asset or something like that. Several Dialogue System games use this approach.

Re: Quest Items as Scriptable Objects

Posted: Mon Jan 23, 2023 2:03 pm
by JamesTFreaknKirk
Thanks for your help!

It works fine if I just refer to an indexed table of my scriptable objects! thanks for your help!

Re: Quest Items as Scriptable Objects

Posted: Mon Jan 23, 2023 2:28 pm
by Tony Li
Glad to help!