2014-09-18 86 views
2
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); 
} 

不管我在哪里实例化光标IM门槛越来越的NullReferenceException:未将对象引用设置到对象 Cursor.Update()的一个实例,有什么我失踪?无法在C#加载鼠标光标纹理/统一

回答

2

你应该把这个线

GUI.DrawTexture(new Rect(Event.current.mousePosition.x - cursorSizeX/2,  Event.current.mousePosition.y - cursorSizeY/2, cursorSizeX, cursorSizeY), cursor); 

OnGUI()的更新里,而不是在

void OnGUI(){ 

GUI.DrawTexture(new Rect(Event.current.mousePosition.x - cursorSizeX/2,  Event.current.mousePosition.y - cursorSizeY/2, cursorSizeX, cursorSizeY), cursor); 

} 

这里是关于脚本的生命周期

Scripting Lifecycle

+0

一个图表,做到了。即使如此,我有时也会看到鼠标闪烁,特别是在场景开始时。任何方式来避免它?我应该不使用Update()函数呢?如果我使用了一个,OnGUI会明显或晚于Update执行? – Ajna 2014-09-19 00:22:11

+1

我建立了一个脚本生命周期图表,我很确定你可以在播放器设置的某处设置鼠标光标的图形 – JRowan 2014-09-19 00:25:34