Version: 2019.2
故障排除
创建自定义包

网络问题

配置防火墙

确保 Unity Package Manager 可以使用 HTTPS 访问以下域名:

  • packages.unity.com
  • download.packages.unity.com
  • upm-cdn.unity.com(对于中国的地点,则是 upm-cdn-china.unitychina.cn)

将上述域名添加到防火墙的允许域列表中。

配置代理服务器

使用代理服务器时,请配置 Unity Package Manager 的 HTTP_PROXYHTTPS_PROXY 环境变量(用于针对 Unity 包注册表执行请求)。

您可以根据操作系统来全局设置这些变量(系统变量或用户变量)。或者,您可以仅为 Unity Hub 设置环境变量(在 Unity Hub 启动后)。

对于处于防火墙后面的环境,可以为自签名证书配置 SSL 证书颁发机构。

自签名证书

在某些公司和机构中,用户位于防火墙后面,只能通过代理访问互联网。一些代理会解压缩 HTTPS 内容,并使用其自己的自签名证书重新打包这些内容。Unity Package Manager 的基础 HTTPS 层会拒绝这些自签名证书,因为它无法识别这些自签名证书,并将连接视为可能是中间人攻击。这意味着除非您配置其他 SSL 证书颁发机构以允许这些证书,否则您将无法在 Unity 中使用许多功能,包括 Package Manager。

要配置其他 SSL 证书颁发机构,请执行以下操作:

1.创建一个包含一个或多个自定义证书颁发机构的文本文件。该文件应包含一个或多个 Privacy-Enhanced Mail (PEM) 格式的受信任证书。例如:

```pem
-----BEGIN CERTIFICATE-----
MIIC+zCCAeOgAwIBAgIJAO0U6hVJnbvjMA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNV
BAMMCWxvY2FsaG9zdDAeFw0xOTAzMTIwMTIxMzRaFw0yOTAzMDkwMTIxMzRaMBQx
EjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBAKNh0EM7j57pXorGs5OHzlk9TYeUqITtXXdWfY1fbqRdj+a8qLNs4m/nDsDW
KgibHYG3FUqIidjPL61DLQuWUPY9Zo+uQaccIe0E5wb+To9mwMlLuhMD6iCPFRpe
jcDhNj4vG1RVARMO1jupeZqdb+xHBZqtmMJmtiDOBxt662Z4hvoH8mdqNEuSkozz
HqXmcdigrTO37DspGRBx08GJlHFHUs7C+hYOsOdNjME3dH/8uihjKYiqQb1E12dN
PNL7jYm3AZv+qUmDFM3BJE0hSmAP00GuTJxbe31Kh4e7N5/XSiLsnqwircOj/Hfi
eWjtsoXbCNDIiWUQtXBeLD/BdvkCAwEAAaNQME4wHQYDVR0OBBYEFDFw8VDkgMne
mDjgo+b1iaPfUkdVMB8GA1UdIwQYMBaAFDFw8VDkgMnemDjgo+b1iaPfUkdVMAwG
A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAFEjUWGz1r3xSsbwUJsRhbMc
M7Jjf9/r833H7eq31mbl/JbXPnpo8IctMuWyw42ccMtgq7i+coQeKwvWnHtI5rhe
vshEkIqNPAoCnpW5NLprYDDTG1PDEhv6FYpW8Alq65i03tptzaoHlH3sH+97E/h0
qSYI7yNHWMC5u0r1DB0BR+lZsj6RnwWPySMSuXx5sSiKIS/HkkMVwwmxKa4ZwuwS
LFwHSUdqk0lJK4b0mCwyTHNvYO1IDziE5EKwfuaKVgOa62iCHVahgIVa+een4EfS
hCCr3M3cq11Mi+mnRi1scxxrOno4OEEChWg2szZLlxBrkVJllrrq620XJ6RLB/8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
-----END CERTIFICATE-----
```

2.尽管 Unity 支持文件系统上的任何位置,但尽量将此文件与 upm-config.json 放在同一个位置。

3.在系统级 Unity 配置文件夹中创建一个名为 upm-config.json 的空 JSON 文件:

* Windows:`%ALLUSERSPROFILE%Unity/config`
* macOS:`/Library/Application Support/Unity/config`
* Linux:`/usr/share/unity3d/config`

4.在 upm-config.json 文件中,将 caFile 属性集添加到 PEM 文件的绝对文件路径。例如:

```json
{
  "caFile": "C:\\ProgramData\\Unity\\config\\cert.pem"
}
```

为 Unity Hub 设置环境变量

本节说明了如何创建一个可从 Windows 命令提示符macOS 或 Linux 终端运行的命令文件。或者,也可以将命令直接复制并粘贴到提示窗口或终端窗口中。

NOTE: Before you run the command file, shut down the Hub completely. If the Hub is already running, the script switches focus to the Hub without relaunching, so it does not apply the changed proxy settings.

Windows

请按照以下说明在 Windows 上创建一个命令文件。

该文件将启动设置了环境变量的 Hub。您可以双击文件,也可以从命令提示符调用文件。Unity 将这些环境变量传递给从 Hub 启动的任何 Unity Editor 进程。

1.打开一个文本编辑器,如记事本。

2.输入以下文本,将 proxy-url 替换为正确的代理服务器 URL,并根据需要调整 Hub 安装路径:

```powershell
@echo off
set HTTP_PROXY=proxy-url
set HTTPS_PROXY=proxy-url
start "" "C:\Program Files\Unity Hub\Unity Hub.exe"

```

**NOTE:** If there are spaces in the path, you must use double quotes around the path to the program.

3.将文件保存到易于找到的位置(例如 Desktop),并确保文件具有 .cmd 后缀(例如 launchUnityHub.cmd)。

macOS

请按照以下说明在 macOS 上创建 launchUnityHub.command 文件。

该文件将启动设置了环境变量的 Hub。您可以双击文件,也可以从 Bash 终端调用文件。Unity 将这些环境变量传递给从 Hub 启动的任何 Unity Editor 进程。

NOTE: Double-clicking the command file opens a Terminal window or tab and leaves it open, even after the script finishes. You can change this behavior in the preferences for the Terminal.app.

1.打开终端窗口。

2.输入以下脚本,将 proxy-url 替换为正确的代理服务器 URL,并根据需要调整 Hub 安装路径:

```bash
echo '#!/bin/bash
export HTTP_PROXY=proxy-url
export HTTPS_PROXY=proxy-url
nohup "/Applications/Unity Hub.app/Contents/MacOS/Unity Hub" &>/dev/null &' > launchUnityHub.command
chmod +x launchUnityHub.command
```

**NOTE:** If there are spaces in the path, you must use double quotes around the path to the program.

3.如果愿意,可以将 launchUnityHub.command 文件移动到方便的位置(例如,Desktop)。

故障排除
创建自定义包