Как в Unity реализовать блокировку курсора что бы он не выходил за пределы игрового поля? В Unity работает, а при загрузке в браузер нет

 public void Update()
{
    if (Input.GetKey(KeyCode.L) )
    {
        
        Cursor.visible = false;
        Cursor.lockState = CursorLockMode.Confined;           
        print("Cursor is Locked!");
    }

}

Ответы (1 шт):

Автор решения: Владислав NULL

https://docs.unity3d.com/Manual/webgl-cursorfullscreen.html

tl;dr: нужна кнопка для для блокировки курсора и перехода в полноэкранный режим.

Due to security concerns, browsers will only allow locking the cursor or going into full-screen mode in direct response to a user-initiated event (like a mouse click or key press). Unfortunately, Unity does not have separate event and rendering loops, so it defers event handling to a point where the browser no longer acknowledges a full-screen or cursor lock request issued from Unity scripting as a direct response to the event which triggered it. As a result, Unity triggers the request on the next user-initiated event, rather than the event that triggered the cursor lock or full-scree request.

To make this work with acceptable results, you should trigger cursor locking or full-screen requests on mouse/key down events, instead of mouse/key up events. This ensures that when the request is deferred to the next user-initiated event, it is triggered when the user releases the mouse or key.

If you use Unity’s UI.Button component, you can achieve the desired behaviour by creating a subclass of Button, which overrides the OnPointerDown method.

Note that browsers may show a notification message or ask the user for permission before entering full-screen mode or locking the cursor.

→ Ссылка