unity3d 尝试在Unity中隐藏光标时出错

z9smfwbn  于 2023-01-26  发布在  其他
关注(0)|答案(2)|浏览(253)

因此,我尝试使用C#脚本隐藏Unity中的光标。然而,它返回了以下错误消息:

CS0117: 'Cursor' does not contain a definition for 'visible'

下面是完整的代码,以供参考

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Cursor : MonoBehaviour
{
    public Vector3 worldPosition;
    public GameObject cursorobj;
    // Start is called before the first frame update
    void Start()
    {
        Cursor.visible = false;
    }

    // Update is called once per frame
    void Update()
    {
        Vector3 mousePos = Input.mousePosition;
        mousePos.z = Camera.main.nearClipPlane;
        worldPosition = Camera.main.ScreenToWorldPoint(mousePos);
        cursorobj.transform.position = worldPosition;
    }
}

注意:除了第12行之外没有错误
我从教程网站上复制了完全相同的代码,也在谷歌上搜索了类似的情况,但我什么也没找到。

vngu2lb8

vngu2lb81#

代码中的问题是,您正在定义一个名为“Cursor”的类,该类正在名称空间UnityEngine上隐藏Cursor
因此,您的公共类Cursor缺少可见性的“属性”,然后编译器无法找到该属性,这就是错误的原因

public static bool visible;

但您肯定是指UnityEngine命名空间上的Cursor,那么您可以将其具体称为

UnityEngine.Cursor.visible = true;

在这种情况下,编译器不会抱怨试图告诉您自己的“Cursor”没有可见性的静态属性

b5buobof

b5buobof2#

相应地重命名你的类和.cs文件。我假设它与Unitys的“Cursor”类冲突。
作为一种替代方法,您可以使用显式调用:

UnityEngine.Cursor.visible = false;

只要类名为CursorUsing UnityEngine;就不能解决问题,但是显式调用可以解决这种不确定性。

相关问题