/// <summary>
        /// Set new cursor
        /// </summary>
        /// <param name="newCursor">Cursor.</param>
        void SetCursor(CursorDefinition newCursor)
        {
            if (newCursor == null || currentCursor == newCursor)
            {
                return;
            }

            previouseCursor = currentCursor;
            currentCursor   = newCursor;

            Cursor.SetCursor(newCursor.image, newCursor.hotspot, CursorMode.Auto);
        }
        /// <summary>
        /// Come back to previous cursor
        /// </summary>
        void SetPreviousCursor()
        {
            if (previouseCursor == currentCursor)
            {
                return;
            }

            if (previouseCursor == null)
            {
                Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
                previouseCursor = currentCursor;
                currentCursor   = null;
            }
            else
            {
                SetCursor(previouseCursor);
            }
        }