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 Nathan1258 · Dec 21, 2016 at 01:14 PM · c#scripting problemcanvasruntime

How to run a script twice in a scene

Hey,

I've got a scene and it's basically a store, and I got a script (in C#) that disables a canvas until the loading screen has finished, when I run it for the first time it works perfectly, but when I click a back button that I implemented in the game and go back to the store scene the script that disables the canvas does not run.

My only guesses are is that unity does not run a script when it's already been run, is there a way around that?

Thanks, Nathan.

Here's my script that does the job for me in case you need it:

 using UnityEngine;
  using UnityEngine.UI;
  using System.Collections;
  using System.Diagnostics;
  public class ProgressBar : MonoBehaviour
  {
      public Image circularSilder;            
      public float time;
      public Canvas loadingBar;
      public Canvas playMenu;
      public Canvas money;
      private float loadingTime;
      public float fadeTime;
  
      public void Start()
      {
          loadingTime = Random.Range(1f, 4f);
  
          StartCoroutine(Example());
  
          circularSilder.fillAmount = 0f;
      }
      public IEnumerator Example()
      {
          print(Time.time);
          yield return new WaitForSeconds(4);
          //fade it out
          CanvasGroup canvasGroup = GetComponent<CanvasGroup>();
          while (canvasGroup.alpha > 0)
          {
              canvasGroup.alpha -= Time.deltaTime / fadeTime;
              yield return null;
          }
          DestroyObject(loadingBar);
          print("Loaded Store");
          loadingBar.enabled = false;
          playMenu.enabled = false;
          money.enabled = true;
          Time.timeScale = 1;
  
      }
  
      public void Update()
      {
          circularSilder.fillAmount += Time.deltaTime / loadingTime;
  
      }
  }
  
  
Comment
Add comment · Show 4
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 UnityCoach · Dec 21, 2016 at 01:39 PM 1
Share

If the object remained in the scene, it won't be run again. You can call its Start method to start it up again.

avatar image Nathan1258 UnityCoach · Dec 21, 2016 at 02:39 PM 0
Share

That you for the answer but how would i call its start method everytime i go into that scene ?

avatar image UnityCoach Nathan1258 · Dec 21, 2016 at 02:43 PM 1
Share

So, this script is on an object that is in a scene you load, unload and reload ? Do you simply load the scene with the Scene$$anonymous$$anager?

Show more comments

2 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by RensDevolp · Dec 21, 2016 at 01:43 PM

my guess is that you have to call the ienumerator again

Comment
Add comment · 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 Nathan1258 · Dec 21, 2016 at 02:39 PM 0
Share

Thank you for the answer but how would i call its start method everytime i go into that scene ?

avatar image
0

Answer by tiggy02 · Dec 21, 2016 at 03:06 PM

Hello Skypiggy,

Your problem is that you can only call the Start() method once per time the scene is loaded, you can use OnEnabled() to bypass this as it has nearly the same propertys as Start() (being that as soon as the gameObject and script are enabled it will run) but it can be called multiple times per scene load.

Or you could use a public void MethodNameHere() so that you can call the method from another script in the same scene or a button press.

Goodluck, from tiggy02.

Comment
Add comment · Show 2 · 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 Nathan1258 · Dec 21, 2016 at 03:11 PM 0
Share

Thank you i will try that, so i just replace the method 'Start()' to 'OnEnabled()'

avatar image tiggy02 · Dec 21, 2016 at 05:27 PM 0
Share

@Skypiggy I am sorry I made a typo ins$$anonymous$$d on OnEnabled() you need OnEnable() without the "d"

Sorry for any inconvenience that may have caused.

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

295 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

Related Questions

Problem with menu 1 Answer

How to run a script twice in a scene 0 Answers

Can I change scripting runtime version in a middle of the project? 0 Answers

Adding additional C# scripts after build (Android, iOS) 1 Answer

how do i take whats on one UI canvas and make it apear on another in real time(for a card game) 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