Jump to content
frighten98

Cannot convert 'boolean' to ''UnityEngine.CursorLockMode'

Recommended Posts

Soy principiante en cuanto a programación se trata , y estoy recibiendo el error del título en el siguiente script :

 

function OnGUI(){

    if(Input.GetKeyDown(KeyCode.O)){
    
        Cursor.visible = false;
        Cursor.lockState = true;        
    }
    GUI.Box(Rect(Screen.width-300,0,300,20), "Press P/O To show/hide Cursor");
}
function Update(){

    if(Input.GetKeyDown(KeyCode.P)){
    
        Cursor.visible = true;
        Cursor.lockState = false;
            
    }

}

Y no se de que clase de error se trata , lo siento si me equivoqué de categoría :D .

PD: Uso Unity 5

Edited by frighten98
Error gramatical :)

Share this post


Link to post
Share on other sites

 

using UnityEngine;
using System.Collections;

public class move : MonoBehaviour {

    public float deltaRotation = 30f;
    public float deltaMovement = 10f;

    // Use this for initialization
    void Start () 
    {

    }
    
    // Update is called once per frame
    void Update () 
    {
        Rotate ();
        Movement ();
    }

    void Rotate ()
    {
        if(Input.GetKey(KeyCode.Q))    
            transform.Rotate(new Vector3 (0f, -deltaRotation, 0f) * Time.deltaTime);
         else if(Input.GetKey(KeyCode.E))    
            transform.Rotate(new Vector3 (0f, deltaRotation, 0f) * Time.deltaTime);
    
    }

    void Movement (){
        if(Input.GetKey(KeyCode.W))
            transform.Translate(Vector3.forward * deltaMovement * Time.deltaTime);
        else if(Input.GetKey(KeyCode.S))
            transform.Translate(Vector3.back * deltaMovement * Time.deltaTime);
        else if(Input.GetKey(KeyCode.A))
            transform.Translate(Vector3.left * deltaMovement * Time.deltaTime);
        else if(Input.GetKey(KeyCode.D))
            transform.Translate(Vector3.right * deltaMovement * Time.deltaTime);
    }
}

 

como ves Rotate (); Movement (); esta declarado dentro  de void Update () asi debe quedar

Edited by diogenes64

Share this post


Link to post
Share on other sites

Es porque estás usando el Cursor.lockState de mala manera.
http://docs.unity3d.com/ScriptReference/Cursor-lockState.html

Según lo que entiendo, con Cursor.visible ya basta

pero lo que necesito es que se bloquee el cursor en el centro , ya que por ejemplo al jugar en modo ventana , el cursor se sale del juego 

 

using UnityEngine;
using System.Collections;

public class move : MonoBehaviour {

    public float deltaRotation = 30f;
    public float deltaMovement = 10f;

    // Use this for initialization
    void Start () 
    {

    }
    
    // Update is called once per frame
    void Update () 
    {
        Rotate ();
        Movement ();
    }

    void Rotate ()
    {
        if(Input.GetKey(KeyCode.Q))    
            transform.Rotate(new Vector3 (0f, -deltaRotation, 0f) * Time.deltaTime);
         else if(Input.GetKey(KeyCode.E))    
            transform.Rotate(new Vector3 (0f, deltaRotation, 0f) * Time.deltaTime);
    
    }

    void Movement (){
        if(Input.GetKey(KeyCode.W))
            transform.Translate(Vector3.forward * deltaMovement * Time.deltaTime);
        else if(Input.GetKey(KeyCode.S))
            transform.Translate(Vector3.back * deltaMovement * Time.deltaTime);
        else if(Input.GetKey(KeyCode.A))
            transform.Translate(Vector3.left * deltaMovement * Time.deltaTime);
        else if(Input.GetKey(KeyCode.D))
            transform.Translate(Vector3.right * deltaMovement * Time.deltaTime);
    }
}

 

como ves Rotate (); Movement (); esta declarado dentro  de void Update () asi debe quedar

tengo otro error , me dice parsing error:

 

 

void update()

function OnGUI(){
    
    if(Input.GetKeyDown(KeyCode.O)){
        
        Cursor.visible = false;
        Cursor.lockState = true;        
    }
    GUI.Box(Rect(Screen.width-300,0,300,20), "Press P/O To show/hide Cursor");
}
function Update(){
    
    if(Input.GetKeyDown(KeyCode.P)){
        
        Cursor.visible = true;
        Cursor.lockState = false;
        
    }
}
    

Share this post


Link to post
Share on other sites

ahora Si

move.cs

mismo error , creo que no me hara falta , ya que adjunto una imagen de lo que estoy haciendo :

 

Es un shooter clasico , y al final e optado por mover la mira con teclas , asi no me hará falta el script ( aparte que ahora la camara solo se mueve en X ).

MyGame.png

Share this post


Link to post
Share on other sites

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...