解决云原神无法在Linux中浏览器下运行的问题

总字数:820字,预计阅读时间 01分 22秒。

本文为转载bilibili用户@SocialismTeen在他的专栏中给出的解决办法。

问题

Linux平台上使用Chromium系列内核的浏览器打开云原神会发生鼠标无法控制视角的问题。

解决

根据上面提到那位同志的研究,该问题是由于云原神在获得鼠标移动时使用的API: Pointer Lock API。在其他平台上该API支持名为unadjustedMovement的参数以关闭鼠标加速获得更好的体验,但是在Linux平台上并不支持该参数,因此程序无法正确获得到鼠标指针的位置。

该同志给出的解决办法为使用钩子函数消除调用该API时的参数,使用的代码如下:

const origin = HTMLElement.prototype.requestPointerLock
HTMLElement.prototype.requestPointerLock = function () {
  return origin.call(this)
} 

为了获得良好的游戏体验,可以使用油猴插件在进入网页时自动运行上述脚本:

// ==UserScript==
// @name         Genshin Cloud
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  fix a Genshin Impact cloud game bug
// @match        https://ys.mihoyo.com/cloud/*
// @grant        none
// ==/UserScript==

(function () {
  'use strict';

  const origin = HTMLElement.prototype.requestPointerLock
  HTMLElement.prototype.requestPointerLock = function () {
    return origin.call(this)
  }
})();
文章作者:Ricardo Ren
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,诸位读者如有兴趣可任意转载,不必征询许可,但请注明“转载自 Ricardo's Blog ”。

文章目录

2021 - 2025 © Ricardo Ren ,由 .NET 9.0.2 驱动。

Build Commit # a662ecc14b

蜀ICP备2022004429号-1