Skip to content
Snippets Groups Projects
updateMouseCursor.cs 2.21 KiB
using UnityEngine;

using static UIconfig;


public static class updateMouseCursor
{
    private static int setMouseCursorAlreadyDone = 0;


    
    public static void setMouse_ingame()
    {

        if (CommunicationEvents.CursorVisLastUsedIngame)
        {
            setMouse();
        }
        else
        {
            setMouse_Off();
        }
    }


    
    
    
    public static void setMouse_Off()
    {
        Cursor.visible = false;
    }



    public static void setMouse()
    {


        //updateMouseCursor.setMouse();

        if (CommunicationEvents.Opsys == CommunicationEvents.OperationSystem.Android)
        {
            CommunicationEvents.CursorVisDefault = false;
            Cursor.visible = false;
        }
        else
        {
            DefineCursorBefore(); 
            Cursor.visible = true;
            CommunicationEvents.CursorVisDefault = true;
        }

        
    }


    private static void DefineCursorBefore()
    {
        if (setMouseCursorAlreadyDone < 10) { if (DefineCursor()) { setMouseCursorAlreadyDone++; } }
    }

    private static bool DefineCursor()
    {
        //Android crashes in level scene;
        if (CommunicationEvents.Opsys != CommunicationEvents.OperationSystem.Android)
        {

            double curssz = 1 / (UIconfig.cursorSize);
            // print(UIconfig.cursorSize);

            double doesItFit;
            double bestCursTexturSize = double.MaxValue;
            //print(curssz);
            Texture2D bestCursTextur = null;
            for (int i = 0; i < CursorTexture_List_01.Count; i++)
            {
                (int, Texture2D) tupelelement = CursorTexture_List_01[i];

                doesItFit = (UIconfig.screWidth / tupelelement.Item1);

                if ((doesItFit < curssz) && (tupelelement.Item1 < bestCursTexturSize))
                {
                    bestCursTexturSize = tupelelement.Item1;
                    bestCursTextur = tupelelement.Item2;


                }
            }
            Cursor.SetCursor(bestCursTextur, Vector2.zero, CursorMode.ForceSoftware);
            //print("bestCursTexturSize " + bestCursTexturSize + " " + CursorTexture_List_01.Count);

            return true;

        }

        return false;
    }

}