- 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