Can';t在C#/Unity上加载鼠标光标纹理
无论我在何处实例化游标,都会获得NullReferenceException:对象引用未设置为对象的实例Can';t在C#/Unity上加载鼠标光标纹理,c#,nullreferenceexception,texture2d,mouse-cursor,C#,Nullreferenceexception,Texture2d,Mouse Cursor,无论我在何处实例化游标,都会获得NullReferenceException:对象引用未设置为对象的实例 Cursor.Update(),我缺少什么?您应该把这行 public class Cursor : MonoBehaviour { public Texture2D cursor; public int cursorSizeX = 16; // default public int cursorSizeY = 16; // default // U
Cursor.Update(),我缺少什么?您应该把这行
public class Cursor : MonoBehaviour
{
public Texture2D cursor;
public int cursorSizeX = 16; // default
public int cursorSizeY = 16; // default
// Use this for initialization
void Start ()
{
Object temp = Resources.Load("Textures/CR_Cursor (Custom)");
if (temp == null)
Debug.Log("Load Object Fail");
cursor = (Texture2D)Resources.Load("Textures/CR_Cursor (Custom)");
if (cursor == null)
Debug.Log("Load Cursor Fail");
Screen.showCursor = false;
}
// Update is called once per frame
void Update ()
{
GUI.DrawTexture(new Rect(Event.current.mousePosition.x - cursorSizeX / 2, Event.current.mousePosition.y - cursorSizeY / 2, cursorSizeX, cursorSizeY), cursor);
}
在OnGUI()内部,而不是在更新中
GUI.DrawTexture(new Rect(Event.current.mousePosition.x - cursorSizeX / 2, Event.current.mousePosition.y - cursorSizeY / 2, cursorSizeX, cursorSizeY), cursor);
下面是一张关于脚本生命周期的图表
成功了。即使如此,我有时也会看到鼠标闪烁,特别是在场景开始时。有办法避免吗?那么我应该使用no Update()函数吗?如果我真的使用了一个,OnGUI将被执行得很快或比更新更晚?我放了一个脚本生命周期图,我很确定你可以在播放器设置的某个地方设置鼠标光标的图形
void OnGUI(){
GUI.DrawTexture(new Rect(Event.current.mousePosition.x - cursorSizeX / 2, Event.current.mousePosition.y - cursorSizeY / 2, cursorSizeX, cursorSizeY), cursor);
}