WebGL中的光标锁定和全屏模式
Unity WebGL支持光标锁定(使用Cursor.lockState)和全屏模式(使用Screen.fullScreen),使用相应的HTML5 API(Element.requestPointerLock和Element.requestFullscreen)实现。这些在Firefox和Chrome中受支持。 Safari目前不能使用全屏和光标锁定。
Enabling cursor locking and full-screen mode in WebGL 在WebGL中启用光标锁定和全屏模式
由于安全考虑,浏览器将只允许锁定光标或进入全屏模式,直接响应用户发起的事件(如鼠标点击或按键)。不幸的是,Unity没有单独的事件和渲染循环,因此它将事件处理推迟到浏览器不再承认Unity脚本发出的全屏或光标锁定请求,直接响应触发它的事件。因此,Unity会触发下一个用户启动事件的请求,而不是触发光标锁定或全屏请求的事件。
为了使这项工作取得可接受的结果,您应该在鼠标/按键事件上触发光标锁定或全屏请求,而不是鼠标/按键事件。这可以确保当请求延迟到下一个用户启动的事件时,会在用户释放鼠标或键时触发。
如果您使用Unity的UI.Button组件,您可以通过创建Button的子类来实现所需的行为,该子类重写OnPointerDown方法。
请注意,在进入全屏模式或锁定游标之前,浏览器可能会显示通知消息或要求用户许可。
Unity WebGL 中文文档 Unity 2018.1.b
1. WebGL
2. webGL Browser Compatibility
3. Building and running a WebGL project
4. WebGL: Deploying compressed builds
5. Debugging and trouble shooting WebGL builds
6. WebGL Graphics
7. WebGL Networking
8. Using Audio In WebGL
9. WebGL performance considerations
10. WebGL: Interacting with browser scripting
11. Using WebGL Templates
12. Cursor locking and full-screen mode in WebGL
13. Input in WebGL