Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 furProgrammer · Jun 21, 2018 at 05:04 AM · c#variablereferencestuck

Why is refrence to parent variable not updating

So I've looked up the problem and asked someone else option but to no result. I have a variable trying to reference the parents script variable and use it to update. The parent variable is updating but the variable referenced to it is not updating after its first referenced.

default parent variable:

 public float time { get; private set;} //2 to 26 hours

code to refrence new variable to parent:

 void Awake () {
         renderColor = this.GetComponent<SpriteRenderer> ().color;
         time = this.transform.GetComponentInParent<DayNightTime> ().time;
     }
 
     void FixedUpdate (){
 
         Debug.Log (time);
         if(time >= 5 && time < 8){
             float percentage = ((time - 5) * 100) / 8 - 5;
             renderColor = Color.Lerp(nightColor, dayColor, percentage);
         }else if (time >= 19 && time < 21) {
             float percentage = ((time - 19) * 100) / 19 - 21;
             renderColor = Color.Lerp(dayColor, nightColor, percentage);
         }
     }

I've been a bit frustrated using different methods to see if the problem would be fixed. I'm hoping I'm not doing anything stupid but I would be grateful for someone to possibly point me in the right direction!

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

1 Reply

· Add your reply
  • Sort: 
avatar image
1

Answer by tormentoarmagedoom · Jun 21, 2018 at 10:13 AM

Good day.

First, as a good practice yo umust know if the "if sentences" are working fine, if all variables get assigned, etc.

Debug your code while executing, and/or make some Debug.Log with all the variables after they are suposed to be assigned... this way you can detect possible fails, or if some if/else if is not working as you desire.

Another way to be sure you are getting the correct compoenent of a parent is this

 time = gameObject.transform.parent.gameObject.GetComponent().time;
 renderColor = gameObject.GetComponent<SpriteRenderer> ().color;

( think that "this" refears to this script, the component, not the gameobject containing it... thats why is better use always "gameObject", in some cases it will prevent to refear the wrong thing. In this case is exactly the same, but you know, is a good practice)

Explore the results of Debugs.Log and say what you get, maybe you find the solution by your own. If not, come and say what results you get. As more information we have, best answer you will get

Bye!! :D


Extension:

You must know how the coputer executes the codes.

Take a look at Unity Execution Order to know what you need.

Is possible you need that scriptA send some information to scriptB so scriptB can send other information to scriptA. All of this before the first Update. So you must know how are they executed.

Each frame, will commence for ALL Awakes of new objects, then ALL OnEnables, then ALL Starts, then ALL Updates. Will not begin this cycle until all Updates has finished.

So think where you need to write every code, to get the correct information flow.

Tip: You can always make a bool variable like "Initializaed" and use the first update to still configure things... :D

Bye

Goiod luck! Bye!

Comment
Add comment · Show 3 · 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 furProgrammer · Jun 21, 2018 at 03:14 PM 0
Share

Thanks for the tip on using gameobject ins$$anonymous$$d. So I switched over to gameobject and I have been testing the Debug.Log() outside of the if statement but it seems that the:


  • refrenced variable grabs the value before the start method on the parent is called.


I found this interesting as the start method on the parent gives the value to its variable from 2 to 26 which works fine. So if the variable is being accessed before going through the start statement does that mean that object is not created yet and the child is created first? Seems weird.



EDIT: So now I got that $$anonymous$$or problem fixed: I switched awake and Start and I at least get the varaible created in that, still the refrence doesnt seem to update after assigned the first number though so more testing is needed to find out why

avatar image tormentoarmagedoom furProgrammer · Jun 21, 2018 at 03:42 PM 0
Share

Extended answer!

avatar image furProgrammer tormentoarmagedoom · Jun 21, 2018 at 03:52 PM 0
Share

So I did fix the execution order I was using and it does grab the variable... but only once, it seems it grabs an instance of the variable but not a refrence as after it grabs its number during the next call in Debug.Log() its not updating with the original script variable. Also thanks for all the help so far I've been learning interesting things I didn't realize before hand.

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

570 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image 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

Why is my referenced variable changing values? 1 Answer

What are some best practices for static variables in multiplayer? 0 Answers

Instantiate a script into an instantiated prefab 3 Answers

Can't see a public variable on a overloaded Event Trigger script 2 Answers

Problem with decrement 0 Answers


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