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 /
  • Help Room /
avatar image
0
Question by punkrooks · Nov 25, 2021 at 04:24 AM · scriptableobjectscriptable object

ScriptableObject Life Cycle [ Help ]

As from the doc https://docs.unity3d.com/ScriptReference/ScriptableObject.html

We have

 Awake    This function is called when the ScriptableObject script is started.
 OnDestroy    This function is called when the scriptable object will be destroyed.
 OnDisable    This function is called when the scriptable object goes out of scope.
 OnEnable    This function is called when the object is loaded.
 OnValidate    Editor-only function that Unity calls when the script is loaded or a value changes in the Inspector.
 Reset    Reset to default values.

With this one liners, I am having multiple confusions

Q1. Awake vs OnEnable
Does Awake here mean that it is called when I create the instance of the scriptable object,
for eg say: right click asset menu and create the instance ?
and OnEnable called when the scriptableObject is in the scene referenced by someone, and when I hit play and the scene runs, this is called ?
Q2. OnDisable vs OnDestroy
Does OnDisable called when it is derefenced by the game object in the scene referenced previously?
then how come OnDestroy, is it when I delete the ScriptableObject asset which I created using right Click create ..?
Q3. Is right clicking and creating scriptable object through Asset menu equivalent to Instance creation

Q4. Is it a bad practice to store a scriptable object in a scriptable object and so on.. ? As not done carefully, this will lead to multiple reference not found exceptions.
Q5. How is there a null reference, when you add a variable in a scriptable object which takes the exposed variable input done at inspector and converts it into a different variable type acting as a provider. for eg

 //Inside Scriptable Object. This is exposed in the inspector and values are added in the inspector
     [SerializeField] private SomeScriptableObjectType[] someValues = default;
 
 //Another variable converts the above scriptableobject array into Dictionary OnEnable
 readonly private Dictionary[SomeScriptableObjectType, int] dictSomeValues = new Dictionary[SomeScriptableObjectType, int];
 
 private void OnEnable() {
            InitializeDict();
  }
 
 void InitializeDict(){
 //takes array and converts into Dictionary
 dictSomeValues .Add ... //How come ArgumentNullException point here
 }
 
 public in GetValueFromDict(SomeScriptableObject k){
 //It returns the value from the dictionary
 }

 //    How come dictSomeValues  can be null ??
 // As the array which I have provided in the inspector are all valid values not having any null

Q6. Is Awake on Scriptableobject called before Monobehaviour OnAwake scriptable object or vice versa ?

Comment
Add comment
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

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

174 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 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

Scriptable Objects inside other SO's not loading properly from Asset Bundle 1 Answer

Editor script can't find a class outside of Editor folder 0 Answers

Help with a C# script .SetActive 1 Answer

Is ScriptableObject suitable for fast data write/access? 1 Answer

Load JSON Scriptable Object and Prefabs 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