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 hollym16 · Feb 09, 2015 at 03:17 PM · guibuttonscenescriptingbasicsloadlevel

Change to scene based on current scene

In order to avoid multiple scripts, I'm wanting to link a GUI button to load another scene based on the current scene its on.

To expand, I have 3 scenes (lets call them 1, 2 and 3) and 3 sub scenes (lets call them 1A, 2A and 3A). When I'm on Scene 1 and I click the GUI button, I want it to link to Scene 1A, and when I'm in Scene 1A, I want the GUI button to link back to Scene 1. I've got a separate button to link to Scenes 2 and 3 but want the same thing to happen when I'm in the other scenes with that GUI button; link to Scenes 2A and 3A and back again.

I've currently got this script that doesn't work:

 if(GUI.Button (new Rect (Screen.width * (4.78f / 6.55f), Screen.height * (0f / 6.3f), Screen.width * (0.35f / 6.55f), Screen.height * (0.5f / 6.3f)), "Scale"))
                 if(Application.loadedLevelName == "Scene 1"){
                 Application.LoadLevel ("Scene 1A");
             }
                 if(Application.loadedLevelName == "Scene 1A"){
                     Application.LoadLevel ("Scene 1");
                 }
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 NoseKills · Feb 09, 2015 at 04:28 PM 0
Share

I've currently got this script that doesn't work

What does 'doesn't work' mean?

I guess you end up inside both of the ifs because you don't have an 'else' between there? The first if loads "Scene 1A" and then you end up in the second one because that scene is now loaded, throwing you right back to where you started.

ALWAYS have an else between ifs that shouldn't/can't be true at the same time.

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by hollym16 · Feb 09, 2015 at 04:33 PM

I've solved this with a bit of luck and some hard thinking; I was getting if and else statements confused. Anyway, heres what worked for me in the end:

     if(GUI.Button (new Rect (Screen.width * (4.78f / 6.55f), Screen.height * (0f / 6.3f), Screen.width * (0.35f / 6.55f), Screen.height * (0.5f / 6.3f)), "Scale"))
             if(Application.loadedLevelName == "Scene1"){
                 Application.LoadLevel ("Scene1A");
             }
             else{
             if(Application.loadedLevelName == "Scene1A"){
                 Application.LoadLevel ("Scene1");
                 }
     else{
             if(Application.loadedLevelName == "Scene2"){
                 Application.LoadLevel ("Scene2A");
             }
             else{
                 if(Application.loadedLevelName == "Scene2A"){
                     Application.LoadLevel ("Scene2");
                 }
             }
             }
             }
Comment
Add comment · 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

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

20 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

Related Questions

making and integrating Visual novel element in 3d game? 2 Answers

load level with gui button nested in a toggled window!!! 0 Answers

LoadLevel easy i know, but not working. 1 Answer

Touch button to load scene, instead of touching anywhere on screen 1 Answer

Play sound on button click before loading level. 3 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