我如何将bool转换为Unityengine.Cursorlockmode

时间:2017-06-06 19:36:35

标签: c# unity3d unityscript

我有一个小脚本可以隐藏并将光标显示出来,我错过了一个特别是这个

的错误

错误CS0029:无法隐式转换类型bool' to UnityEngine.CursorLockMode'

这是代码

    using UnityEngine;
using System.Collections;

public class yea : MonoBehaviour {
    bool isLocked;
    void Start () {
        SetCursorLock(true);
    }


    void SetCursorLock(bool isLocked)
    {
        this.isLocked = isLocked;
        Cursor.lockState = isLocked;
        Cursor.visible = !isLocked;
    }

    void Update () {
        if (Input.GetKeyDown(KeyCode.I))
        {
            SetCursorLock(!isLocked);
        }

        if (Input.GetKeyDown(KeyCode.H))
        {
            SetCursorLock(isLocked);
        }
    }
}

2 个答案:

答案 0 :(得分:6)

您应该使用CursorLockMode。您可以使用CursorLockMode.Locked来锁定光标。有关更多信息,请访问: https://docs.unity3d.com/ScriptReference/CursorLockMode.html

代码示例:

 void SetCursorLock(bool isLocked)
 {
     if(isLocked)
        Cursor.lockState = CursorLockMode.Locked;
     else
        Cursor.lockState = CursorLockMode.None;

     Cursor.visible = !isLocked;
 }

答案 1 :(得分:6)

Cursor.lockState是一个枚举(CursorLockMode),因此您无法为其指定bool

void SetCursorLock(bool isLocked)
{
    this.isLocked = isLocked;
    if(this.isLocked)
    {
        Cursor.lockState = CursorLockMode.Locked;
    }else
    {
        Cursor.lockState = CursorLockMode.None;
    }
    Cursor.visible = !isLocked;
}