我有一个问题,在WebGL目标上构建Unity项目。只有在我尝试从脚本构建时才会出现这个问题。当我从Unity项目构建时,它可以正常构建。
我认为这也很重要,我是从PowerShell脚本中运行此方法的。
我的代码:
报告中出现的错误信息:
$unityPath = "C:\Program Files\Unity\Editor\Unity.exe"
$unityParameters = "-batchmode -projectPath `"$($repo)\`" -username USERNAME -password PASS -executeMethod `"BuildScript.PerformBuild`""
$buildProcess = Start-Process -FilePath $unityPath -ArgumentList $unityParameters -Wait -PassThru
我的代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEditor.Build.Reporting;
public class BuildScript
{
public static void PerformBuild()
{
var projectName = "scene_1";
Debug.Log("### BUILDING ###");
EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.WebGL, BuildTarget.WebGL);
var report = BuildPipeline.BuildPlayer(
new[] {$"Assets/Scenes/{projectName}.unity"},
$"Build/Win/{projectName}.exe",
BuildTarget.WebGL,
BuildOptions.None);
Debug.Log("### DONE ###");
Debug.Log(report);
EditorApplication.Exit(1);
}
}
报告中出现的错误信息:
切换到WebGL:WebGLSupport已禁用
...
DisplayProgressNotification: 构建失败,构建玩家时出错
由于不支持构建目标,因此无法构建玩家
-buildTarget WebGL
,但没有任何变化。我也尝试从 Unity 运行我的 cs 脚本,它可以正常工作,所以问题肯定出在我的脚本上。 @DougMaurer 我已将 powershell 标签从问题中删除。抱歉。 - Andrzej OsowskiSwitchActiveBuildTarget
在没有-buildTarget WebGL
的情况下完美地工作,并且从他的代码中一切都可以正常运行。也许 Unity 无法将 WebGL 找到为 Unity 包。 - Tomasz Juszczak