Creating a custom cursor.

How do I create a custom cursor?
When I set my cursor image in the player settings it just gives me a gray box as the cursor.

Try setting the texture type to Cursor, and limiting the size to 32x32. I found that while setting the cursor in the player settings worked in the editor, it did not show up in a build. I worked around that by using Cursor.SetCursor in a script instead.

You could also use GUI.DrawTexture like so:

    var mouse : Vector2;
    var w : int = 32;
    var h : int = 32;
    var cursor : Texture2D;
    
    function Start()
    {
        Screen.showCursor = false;
    }
    
    function Update()
    {
        mouse = new Vector2(Input.mousePosition.x, Screen.height - Input.mousePosition.y);
    }
    
    function OnGUI()
    {
        GUI.DrawTexture(new Rect(mouse.x - (w / 2), mouse.y - (h / 2), w, h), cursor);
    }