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 xtechadvanced · Jul 06, 2014 at 04:09 AM · mouselock

Mouse wont relock

Hi, i am working on a building game and i want to have a menu where you can select items. the mouse starts off locked when i press e(the inventory button) it unlocks like its supposed to but when i press e again the gui goes away(like it should) but the mouse stays unlocked.

Code: (Its no where near complete and may seem sloppy to you guys)

 #pragma strict
 //values
 private var showGui : boolean = false;
 private var invopen : boolean = false;
 
 //lock mouse
 var mouselocked : boolean = true;
 
 //player
 var player : Transform;
 
 //blocks and items
 var buildingplatform : Transform;
 
 
 //messy code
 
 
 
 function Update()
 {
      if (Input.GetKeyDown ("e")){
         if (invopen == true)
         {
             invopen = false;
             mouselocked = true;
             
         }
         
         else
 
         invopen = true;
         mouselocked = false;
     }
      
      
      if (mouselocked == true)
      {
         Screen.lockCursor = true; 
      }
      
      if (mouselocked == false)
      {
         Screen.lockCursor = false;
      }
 
 
     if(Input.GetKey("p"))
     {
         spawnbuildingplatform();
     }
 }
 
 function OnGUI()
 {
     if (invopen == true)
         {
             GUI.Box(new Rect(200, 200, 200, 200), "Spawn Menu");
         }
 }
 
 function spawnbuildingplatform()
 {
     Instantiate (buildingplatform, player.transform.position, Quaternion.identity);
     
     showGui = false;
 }


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 Kiwasi · Jul 06, 2014 at 04:13 AM

You need {} around the code block you use for the else on lines 32 and 33. While it is possible to use an if or else without the brackets is highly recommended against, for this reason.

If you don't have the curly brackets the else clause will only include the next line. Unity interprets it like this:

  if (Input.GetKeyDown ("e")){
     if (invopen == true)
     {
         invopen = false;
         mouselocked = true;
     } else {
         invopen = true;
     }
 mouselocked = false;
 }

What you want is this

  if (Input.GetKeyDown ("e")){
     if (invopen == true)
     {
         invopen = false;
         mouselocked = true;
     } else {
         invopen = true;
         mouselocked = false;
     }
 }

Comment
Add comment · Show 6 · 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 xtechadvanced · Jul 06, 2014 at 05:08 AM 0
Share

That didn't work. it actually made it worse now the gui is always open and the mouse never locks. Thanks anyway. :(

avatar image Kiwasi · Jul 06, 2014 at 05:37 AM 0
Share

That wasn't my intent. Can you post the new script? Are you sure all the {} are in the right place?

avatar image xtechadvanced · Jul 06, 2014 at 09:45 AM 0
Share
 #pragma strict
 //values
 private var showGui : boolean = false;
 private var invopen : boolean = false;
 
 //lock mouse
 var mouselocked : boolean = true;
 
 //player
 var player : Transform;
 
 //blocks and items
 var buildingplatform : Transform;
 
 
 //messy code
 
 
 
 function Update()
 {
      if (Input.Get$$anonymous$$eyDown ("e")){
         if (invopen == true)
         {
             invopen = false;
             mouselocked = true;
  
         }
  
         }else{
  
         invopen = true;
         mouselocked = false;
     }
  
  
      if (mouselocked == true)
      {
         Screen.lockCursor = true; 
      }
  
      if (mouselocked == false)
      {
         Screen.lockCursor = false;
      }
  
  
     if(Input.Get$$anonymous$$ey("p"))
     {
         spawnbuildingplatform();
     }
 }
  
 function OnGUI()
 {
     if (invopen == true)
         {
             GUI.Box(new Rect(200, 200, 200, 200), "Spawn $$anonymous$$enu");
         }
 }
  
 function spawnbuildingplatform()
 {
     Instantiate (buildingplatform, player.transform.position, Quaternion.identity);
  
     showGui = false;
 }
avatar image Kiwasi · Jul 06, 2014 at 09:55 AM 0
Share

Throw an extra } on line 34. Delete the one at the start of line 30.

avatar image xtechadvanced · Jul 06, 2014 at 09:59 AM 0
Share

Dude thank you so much it works now.

Show more comments

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

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Multiple Cars not working 1 Answer

Why does my var speed say it is wrong 2 Answers

BCE0044: expecting }, found 'private'. PLEASE HELP!!!!! 2 Answers

How can i make the ray cast don't go through the walls 1 Answer

Object Reference Not Set to an Instance of an object 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