系统类拼图参考 - Soft8Soft
Description: 这些拼图可以用来执行各种系统功能，比如打印到控制台，测量性能，获取/设置渲染的像素比，检索GPU信息以及使用持久性浏览器存储。

# 系统 | System

这些拼图可以用来执行各种系统功能，比如打印到控制台，测量性能，获取/设置渲染的像素比，检索GPU信息以及使用持久性浏览器存储。

## 内容

- 拼图参考
  - print to console
  - print performance info
  - check performance
  - feature available
  - get GPU
  - set screen scale
  - native screen scale
  - detect gamepad device
  - gamepad index
  - get gamepad property
  - storage set
  - storage get
  - storage remove
  - storage check
  - close app

#

## 拼图参考

#

### print to console

打印任何类型的数据（某个拼图的输出，一个变量，或者只是一个文本）到浏览器控制台。打印到控制台是调试脚本最通用和最简单的方法。

#

### print performance info

记录1秒钟内的性能概况，并将其打印到浏览器控制台。使用此概况可以找到性能瓶颈，提高应用的渲染和加载速度。在这里查看详情。

#

### check performance

测量用户计算机或设备的渲染能力。其底层使用开源库Detect GPU来查找现有的基准测试结果并将用户的GPU分类为"good"或"poor"。

您可以使用此拼图的槽位为性能较差的GPU加载更简单的场景或禁用一些消耗图形性能较多的功能（例如后期处理效果）。另一方面——如果用户的GPU性能更强大——您可以提高渲染质量。

我们还将此基准测试添加到了WebGL Report页面，以便您在浏览器中打开此页面即可快速检查GPU。

如果用户的GPU报告为"good"，并不意味着您可以任意加载性能繁重的图形。您仍然需要尽可能多地优化您的应用！

#

### feature available

检查从下拉菜单中选择的功能在用户的浏览器中是否可用。如果功能可用，拼图返回`true`，否则返回`false`。

可以使用此拼图检查的功能包括：

功能 | 描述
--- | ---
Mobile Device | 应用正在移动设备（手机、平板电脑、便携式VR头显）上运行。
Android | 应用正在Android设备上运行。
iOS | 应用正在iOS或iPadOS设备上运行。
Windows | 应用正在Windows操作系统上运行。
macOS | 应用正在macOS上运行。
ChromeOS | 应用正在ChromeOS上运行。
Linux | 应用正在Linux（Ubuntu, Fedora, Red Hat等）上运行。
Google Chrome | 应用正在Google Chrome浏览器或其克隆版（Chromium, Brave，但不包括Edge）中运行。
Firefox | 应用正在Firefox浏览器中运行。
Internet Explorer | 此功能始终为`false`，因为Verge3D很久以前就不再支持Internet Explorer。保留此选项是为了兼容性。
Microsoft Edge | 应用正在Microsoft Edge浏览器中运行。
Safari | 应用正在Apple Safari浏览器中运行。
Touch Screen | 系统具有触摸屏设备。
Retina Display (HiDPI) | 系统具有高分辨率显示器（Retina），即其原生屏幕比例值大于或等于`2`。
High Dynamic Range (HDR) | Verge3D应用在启用了HDR功能的情况下运行。这与目标系统显示器的HDR支持无关。
Web Audio API | 系统支持Web Audio（现在始终为`true`）。
WebGL | 系统支持WebGL（至少此3D Web标准的1.0版本）。
WebGL 2.0 | 系统支持WebGL 2.0版本。
WooCommerce | 应用正在由WordPress的WooCommerce插件创建的产品页面上运行。
Do Not Track | 用户的浏览器启用了"Do Not Track"设置。此功能被视为已弃用，不应再使用。

#

### get GPU

输出用户的GPU信息——供应商，例如：NVIDIA Corporation, Apple Inc., Qualcomm，以及GPU型号，例如：GeForce GTX 1060 3GB/PCIe/SSE2, Apple A9 GPU, Adreno (TM) 330。

#

### set screen scale

为渲染的画布设置屏幕分辨率系数。设置 >1 以提高质量，<1 以提高性能。1是Retina（又称HiDPI）和非Retina显示器上的默认屏幕比例。

Verge3D使用1作为默认比例因子，以防止在Retina显示器上渲染过多的像素。如果性能不是问题，可以通过将屏幕比例设置为原生屏幕比例来启用Retina渲染，或者使用中间值（例如1.5）。

#

### native screen scale

原生（取决于硬件或浏览器缩放）画布分辨率系数。如果您没有放大或缩小页面，这个值对于非Retina显示器来说等于1，对于HiDPI显示器、现代智能手机和平板电脑来说大于1。

#

### detect gamepad device

检测连接到系统或与系统断开连接的游戏手柄设备。当发现新的游戏手柄设备时，在once connected do槽中指定的拼图会被触发。当设备断开连接时，在once disconnected do槽中指定的拼图会被触发。在任何情况下，gamepad index值都会被设置并返回设备索引。

#

### gamepad index

返回连接/断开连接的游戏手柄设备索引。

#

### get gamepad property

返回具有给定索引的设备的游戏手柄属性。

属性：

- connection status — 设备是否连接（返回true）或断开连接（返回false）。
- axis — 设备轴的位置，范围为-1.0–1.0。例如，所有最新游戏手柄上的模拟摇杆由两个轴表示：左-右和上-下。
- button — 设备按键状态。当按键被按下时返回true，否则返回false。
- analog button — 模拟按键状态。与按键类似，但可以检测按键被按下的程度。返回范围为0–1的值。
- id — 设备ID字符串。识别连接设备的品牌和型号。
- timestamp — 游戏手柄的轴/按键最后一次被更新的时间。您可以将此值存储在变量中，并在每一帧中与当前时间戳进行比较，以检测某个摇杆/按键是否被移动/按下。
- mapping — 设备映射：具有标准布局的游戏手柄为"standard"，具有标准AR/VR控制器布局的游戏手柄为"xr-standard"，未知设备为""（空字符串）。
- debug info — 输出带有调试信息的字符串。用print to console拼图打印此信息，以了解连接的游戏手柄设备上有哪些按键或摇杆。

有关使用示例，请查看 Farmers Journey 演示（也可在资源商店中找到）。

要在您的应用中正确分配摇杆/按键，请使用Gamepad Diagnostics工具、debug info属性，或遵循标准游戏手柄布局（可能不适用于所有类型的设备）：

在标准AR/VR控制器的情况下，布局有所不同：

#

### storage set

将键值对存储在浏览器的本地存储中，数据不会过期。这意味着即使浏览器窗口关闭，存储在浏览器中的数据仍将保留。注意：在"隐私浏览"或"无痕"会话中，最后一个"隐私"标签关闭时，浏览器的本地存储将被清除。

键必须是文本。支持将以下数据类型作为赋值：数字、文本、列表、字典。

#

### storage get

返回浏览器本地存储中与指定键关联的值。

#

### storage remove

删除浏览器本地存储中与指定键关联的值。

#

### storage check

检查浏览器的本地存储中是否存在指定的键。返回布尔类型的结果true或false。

#

### close app

关闭Verge3D应用。由于浏览器施加的安全限制，此拼图仅适用于Electron、Cordova或以编程方式打开的页面。

## 在使用拼图时遇到困难？

欢迎您随时在 论坛上提问！您还可以加入中文用户社区QQ群(171678760)，在线寻求帮助。