Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • 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
0
Question by Pseu · Jul 25, 2020 at 01:33 AM · data storagedatabase handlingdata folder

Random Scriptable Object from Database?

I am making a game that I want to use a lot of Scriptable Objects in, to that end I've made a bunch of Editor tools to create what are essentially big data containers, all of the same type, all inheriting Scriptable Object; thinking these would be an ideal solution.

.

My idea focuses around the player having to meet "Requirements" to be given different options on how they react. A container looks something like this:

 public class Scenario : ScriptableObject {
   public string description;
   public List<Answer> possibleAnswers = new List<Answer>();
   public Requirements requirements; // To receive the question.
 }


 public class Answer : ScriptableObject {
   public string answer;
   public Requirements requirements; // To be presented the answer.
   public void DoSomething(PlayerCharacter pc){
   }
 }

The requirements object looks something like:

 public class Requirements : ScriptableObject {
   public int strength = 5;
   public int intellect = 0;
   public int charisma = 0;
   ...
   public bool Compare(PlayerCharacter pc) {
     if (pc.Passes()){
       return true;
     } else {
       return false;
     }
   }
 }

So what I want to do is basically search for a Scenario based on what the player character stats are; but I want a really large database of the Scenario objects. Most of the ways I've thought of involve searching a small section of the Resources folder and then hold any that the player passes the requirements of. But I have no idea how to go about searching through with that many objects.

I don't want to use Resources.LoadAll() because it isn't recommended and apparently slows it down exponentially, I plan to have a large number of SO's so anything such as that isn't an option. I don't really fancy linking 10k Scriptable Objects up to a Gameobject because that seems like a bad idea on the face of it but maybe it's not?

One solution I have is to use folders and split Scenarios into folders containing x number of objects then choose a random folder (or the next folder) to search through each frame but this seems clunky as well. Any good solutions or tried practices I'm totally missing?

Comment
Add comment · Show 1
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 Elango · Jul 25, 2020 at 08:34 AM 0
Share

10k SO already sounds like a bad idea, but if you have to ... You can store your SO database in a static variable so you only need to load them once. Search/check through 10k elements by 3 int variables should be fast enough (1-2ms). You can also try Addressable instead of Resources but it's async.

0 Replies

· Add your reply
  • Sort: 

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.

Follow this Question

Answers Answers and Comments

131 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

problem updating info to data base 0 Answers

How can I store a CSV file online on a server and use the CSV to load data into my Unity game? 1 Answer

How to store 3D object(Furniture models) files (.fbx) and then instantiate one or more in runtime.? how to create database for it? 1 Answer

How to upgrade from free to paid version and maintain established player prefrence data? 0 Answers

Files in Persistent Data path after building the game 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