【问题标题】:Hide Cursor script doesn't work correctly in Unity 5隐藏光标脚本在 Unity 5 中无法正常工作
【发布时间】:2023-04-02 02:09:02
【问题描述】:

我在“FirstPersonCharacter”游戏对象中附加了一个简单的隐藏光标脚本,但无法正常工作。

#pragma strict

var blocked = false;

function Start () {
    blockCursor (false);
}

function blockCursor (blocked) {
    this.blocked = blocked;
    Screen.lockCursor = blocked;
    Cursor.visible = !blocked;
}

function Update () {
    if (Input.GetKeyDown("e")) {
        blockCursor(!blocked);
    }
}

此脚本在 Unity 4.6 中完美运行,但现在在 Unity 5 中,当我按下“E”时,光标会移动到中心并且不会隐藏。 我做错了什么? :(

【问题讨论】:

  • 我在 OSX 上的 Unity 5 中测试了您的脚本,它对我来说效果很好。 E 键按预期隐藏和显示光标。我只是创建了一个新项目并将脚本附加到主摄像机。
  • Bugs...我认为...不久前有效。

标签: function unity3d cursor unityscript


【解决方案1】:

要锁定光标然后居中,您只需将 blockCursor 函数更改为:

function blockCursor (blocked) {
    this.blocked = blocked;
    Cursor.visible = !blocked;
    Cursor.lockState = blocked ? CursorLockMode.Locked : CursorLockMode.None;
}

这应该可以解决您的问题。

【讨论】:

  • 对不起,我不明白。你的意思是这样的?
  • #pragma strict var blocked = false;函数开始(){块光标(假); } 功能块游标(阻塞){ this.blocked = 阻塞; bool Screen.lockCursor = 被阻止; Cursor.visible = !blocked; } 函数更新 () { if (Input.GetKeyDown("e")) { blockCursor(!blocked);这给了我一个错误。如果我更改为“Cursor.visible”,光标只会隐藏并且不会居中。哦。
  • @gecko 我想我把你弄糊涂了。由于您希望光标隐藏并被锁定,请查看我编辑的答案。
  • 谢谢@Evil Tak。完美运行。
【解决方案2】:

锁定/隐藏光标 Unity 5 的代码

using UnityEngine;
using System.Collections;

public class HideLockCursorA : MonoBehaviour
{
void Start ()
  {
    Cursor.lockState = CursorLockMode.Locked;
    Cursor.visible = false;
  }
                  void Update ()
            {
                    Cursor.lockState = CursorLockMode.Locked;
                    Cursor.visible = false;
            }
}

视频:youtube.com/watch?v=2bWoRTRT_DU

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-02
    • 2012-08-19
    • 2016-08-26
    • 2017-05-23
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 2011-06-13
    相关资源
    最近更新 更多