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 Vopemz · Jun 10, 2012 at 07:16 PM · scene

Next Scene Script Help

I have this script to go to the next scene -

// Load the level named "Map_Select".

Application.LoadLevel ("Map_Select");

http://unity3d.com/support/documentation/ScriptReference/Application.LoadLevel.html

but it changes right away. I want it to change when i click on a box with Box Collider. Any help???

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
0

Answer by dood_legacy · Jun 11, 2012 at 04:20 AM

This is a lot of code to answer your question -- but it is generally how I do clickable buttons from content (i.e. out of Maya). I have a button of whatever shape and texture, and a plane that represents the click area, and I name that plane 'collider'.

This first script is GUITouchBase.cs. It is the base class that handles generic click events. The second script is the place where you'd handle these click events and call Application.LoadLevel()

 using UnityEngine;
 using System.Collections;
 
 public class GUITouchBase : MonoBehaviour 
 {
     private MeshCollider plane;
     private Transform collision;
     
     private RaycastHit hit;    
     public float rayDepth= 100.0f;
     
     public delegate void OnTouchedDelegate();
     public OnTouchedDelegate TouchedDelegate;
     
     void Start ()
     {        
         // content requirement: provide a mesh called 'collider'
         // that will be raytested against.
         collision = gameObject.transform.FindChild("collider");
         
         collision.renderer.enabled = false;
         
         plane = collision.gameObject.AddComponent<MeshCollider>();
         
         MeshFilter filter = collision.gameObject.GetComponent<MeshFilter>();
         
         plane.sharedMesh = filter.mesh;
     }    
     
     
     void Update ()
     {
         if ( Input.GetMouseButtonDown( 0 ) )
         {            
             Ray ray = Camera.main.ScreenPointToRay( Input.mousePosition );
             
             if ( plane.Raycast( ray, out hit, rayDepth ) )
             {
                 if ( TouchedDelegate != null )
                 {
                     OnTouched( TouchedDelegate );
                 }
             }
         }
     }
     
     public void OnTouched (OnTouchedDelegate d)
     {
         if (d != null)
         {
             d ();
         }
     }
 }

And here is the second script -- the one you'd actually attach to your button object.

 using UnityEngine;
 using System.Collections;
 
 public class GUILoadLevelButton : MonoBehaviour
 {    
     private GUITouchBase            toucher;
     
     void Start ()
     {
         toucher = gameObject.AddComponent<GUITouchBase>();
         
         toucher.TouchedDelegate = new GUITouchBase.OnTouchedDelegate(LoadLevel);
     }
 
     // If there is a successful raycast hit in the GUITouchBase Update method,
     // this function will get called here because we assigned it to the 
     // TouchedDelegate of the GUITouchBase class.
     public void LoadLevel()
     {        
         Application.LoadLevel("Map_Select");
     }
 }
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 Vopemz · Jun 11, 2012 at 08:18 PM 0
Share

That usnt working either

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

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

Multiple Cars not working 1 Answer

How to Set a bool to Individual Scenes (C#) 1 Answer

Fading To New Scene Problem? 1 Answer

Network load scene 0 Answers

Can't get simple script to work? 4 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