- Home /
MouseLock is not working
Hello,
Mouselock seems to not be working. It's probably my script, as I am new to unity and have no previous experience.
My code:
function OnMouseDown() {
Screen.lockCursor = true;
}
Can someone please tell me what I am doing wrong?
Thanks, MNKYband
On$$anonymous$$ouseDown is called when the user has pressed the mouse button while over the GUIElement or Collider.
Answer by Jesus_Freak · Jun 20, 2011 at 11:38 PM
try this code:
 function Update() {
     //Mouse0 is left click, Mouse1 is right click, Mouse3 is middle click, and so on
     if(Input.GetKeyDown (KeyCode.Mouse0)) {
         Screen.lockCursor = true;
     }
 }
or if what you want is when you click on say a GUI button, or also you could, with the following function, "click" a GUI box and a GUI label, etc.:
(but this is basically re-scripting the OnMouseDown function, but OnMouseDown only works when clicking a GUI element or collider like Dreamblur said.)
 function Update() {
     //Mouse0 is left click, Mouse1 is right click, Mouse3 is middle click, and so on
     
     var rect : Rect;
     if(rect.Contains(Input.mousePosition)) {
         if(Input.GetKeyDown(KeyCode.Mouse0)) {
             Screen.lockCursor = true;
         }
     }
 }
or c#:
 using UnityEngine;
 using System.Collections;
 
 public class Example : MonoBehaviour {
     
     void Update() {
         Rect rect;
         if(rect.Contains(Input.mousePosition)) {
             if(Input.GetKeyDown(KeyCode.Mouse0)) {
                 Screen.lockCursor = true;
             }
         }
     }
 }
You could, alternatively, use
 if(Input.Get$$anonymous$$ouseButton(0)) { ...
Thanks!
Once again, sorry I ask such noobish questions. :/
@$$anonymous$$N$$anonymous$$Yband everyone starts somewhere!
@$$anonymous$$N$$anonymous$$Yband yeah, don't worry, you'll learn the ways of scripting. and once you learn unityscript (aka javascript) very good, it's not that hard to learn c#, and it seems even easy. But you'll learn at your own pace.
Answer by exotic_gaming · Jun 21, 2011 at 04:07 AM
using UnityEngine; using System.Collections;
/// MouseLook rotates the transform based on the mouse delta. /// Minimum and Maximum values can be used to constrain the possible rotation
/// To make an FPS style character: /// - Create a capsule. /// - Add the MouseLook script to the capsule. /// -> Set the mouse look to use LookX. (You want to only turn character but not tilt it) /// - Add FPSInputController script to the capsule /// -> A CharacterMotor and a CharacterController component will be automatically added.
/// - Create a camera. Make the camera a child of the capsule. Reset it's transform. /// - Add a MouseLook script to the camera. /// -> Set the mouse look to use LookY. (You want the camera to tilt up and down like a head. The character already turns.) [AddComponentMenu("Camera-Control/Mouse Look")] public class MouseLook : MonoBehaviour {
 public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 }
 public RotationAxes axes = RotationAxes.MouseXAndY;
 public float sensitivityX = 15F;
 public float sensitivityY = 15F;
 public float minimumX = -360F;
 public float maximumX = 360F;
 public float minimumY = -60F;
 public float maximumY = 60F;
 float rotationY = 0F;
 void Update ()
 {
     if (axes == RotationAxes.MouseXAndY)
     {
         float rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX;
         
         rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
         rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
         
         transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);
     }
     else if (axes == RotationAxes.MouseX)
     {
         transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityX, 0);
     }
     else
     {
         rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
         rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
         
         transform.localEulerAngles = new Vector3(-rotationY, transform.localEulerAngles.y, 0);
     }
 }
 
 void Start ()
 {
     // Make the rigid body not change rotation
     if (rigidbody)
         rigidbody.freezeRotation = true;
 }
}
Why are you posting the mouseLOO$$anonymous$$ script? This question is about LOC$$anonymous$$ing the cursor..
Your answer
 
 
             Follow this Question
Related Questions
Null Reference Expantion 1 Answer
How to lock cursor in WebGL 1 Answer
Cursor not locking, most likely a bug 1 Answer
Call a function across several objects 1 Answer
Mouse wont relock 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                