• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
Question by Brrokken · Oct 22, 2016 at 05:07 PM · loadingsaving

Scriptable objects as inventory items unable to save reference

I recently implemented scriptable objects as data container for inventory items. Upon collecting an item a reference to the scriptable object is stored along with information specific to that item instance such as number stacked and durability.

This system works well until I try to save the inventory to be loaded later. Its trivial to save dynamic information number stacked and durability. It does not seem possible to directly save a reference to scriptable object. I'm wondering if anyone has any idea for a work around? Or if I just need to give up on this route and remove scriptable objects from my inventory system?

As a side note I'm a disappointed that on both Unity's scriptable object tutorials the basic use case is for inventory items because its extremely limited if a reference to the scriptable object cannot be saved.

links to tutorials: https://unity3d.com/learn/tutorials/topics/scripting/overthrowing-monobehaviour-tyranny-glorious-scriptableobject

https://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/scriptable-objects

Comment

People who like this

0 Show 0
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
Best Answer

Answer by Brrokken · Oct 23, 2016 at 09:08 AM

After trying a couple more things I came to workable solution, and now see how its possible save and load a reference to a scriptable objects . Heres my solution.

Add unique ID to a scriptable object. Store a list/array of scriptable object on your script. Save the unique Id to file using player prefs or binary ( https://unity3d.com/learn/tutorials/topics/scripting/persistence-saving-and-loading-data) When loading iterate through scriptable object list and set correct references.

Although it be easier to save a reference to a scriptable object this isn't too much extra work, so I'm rejoining the glorious scriptable object revolution.

Comment

People who like this

0 Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Hornkvern · Aug 28, 2020 at 09:29 PM 0
Share

Can you please tell me how and where you stored the list with scriptable objects and how to save the id in the binary script?

Cant seem to figure this out. I have added an unique id to all items.

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Update about the future of Unity Answers

Unity Answers content will be migrated to a new Community platform and we are aiming to launch a public beta later in June. Please note, we are aiming to set Unity Answers to read-only mode on the 31st of May in order to prepare for the final data migration.

For more information, please read our full announcement.

Follow this Question

Answers Answers and Comments

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

Sharing Violation On Path 1 Answer

Save Mic input and have it load when game starts up again 0 Answers

Save & Loading Variables 2 Answers

Problem when saving and loading 1 Answer

Which is the root directory anyway? 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges