因此,我尝试使用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行之外没有错误
我从教程网站上复制了完全相同的代码,也在谷歌上搜索了类似的情况,但我什么也没找到。
2条答案
按热度按时间vngu2lb81#
代码中的问题是,您正在定义一个名为“Cursor”的类,该类正在名称空间UnityEngine上隐藏Cursor
因此,您的公共类Cursor缺少可见性的“属性”,然后编译器无法找到该属性,这就是错误的原因
但您肯定是指UnityEngine命名空间上的Cursor,那么您可以将其具体称为
在这种情况下,编译器不会抱怨试图告诉您自己的“Cursor”没有可见性的静态属性
b5buobof2#
相应地重命名你的类和.cs文件。我假设它与Unitys的“Cursor”类冲突。
作为一种替代方法,您可以使用显式调用:
只要类名为
Cursor
,Using UnityEngine;
就不能解决问题,但是显式调用可以解决这种不确定性。