您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 

53 行
1.9 KiB

using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.SceneManagement;
public class ScenePostProcessor
{
// TODO (ulfj) : At some point we need to set these when building different configs
public static LevelManager.BuildType buildType = LevelManager.BuildType.Default;
public static bool isDevelopmentBuild = false;
[PostProcessScene(0)]
public static void OnPostProcessScene()
{
// Only strip if building levels or if in preview mode in Editor
if(BuildPipeline.isBuildingPlayer || Game.game == null)
{
LevelManager.StripCode(buildType, isDevelopmentBuild);
}
// In editor, we inject the game object to ensure preview mode works
var info = EditorLevelManager.GetLevelInfoFor(EditorSceneManager.GetSceneAt(0).path);
if(!BuildPipeline.isBuildingPlayer && Game.game == null && info != null && info.levelType != LevelInfo.LevelType.Generic)
{
var gamePrefab = AssetDatabase.LoadAssetAtPath("Assets/Prefabs/Game.prefab", typeof(GameObject));
PrefabUtility.InstantiatePrefab(gamePrefab);
}
AddBuildInfo();
/*
if(BuildPipeline.isBuildingPlayer)
{
Debug.Log("Baking Occlusion data.");
StaticOcclusionCulling.Compute();
while(StaticOcclusionCulling.isRunning)
{
}
}
*/
}
static void AddBuildInfo()
{
// Only if building player and only for bootstrapper scene
if(BuildPipeline.isBuildingPlayer && EditorSceneManager.GetActiveScene().buildIndex == 0)
{
var gameObject = new GameObject("BuildInfo");
var buildInfo = gameObject.AddComponent<BuildInfo>();
buildInfo.buildId = System.Environment.GetEnvironmentVariable("BUILD_ID", System.EnvironmentVariableTarget.Process);
}
}
}