备份CatanBuilding瘦身独立工程
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
|
||||
#if !UNITY_CLOUD_BUILD
|
||||
namespace HeurekaGames.AssetHunterPRO
|
||||
{
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
#endif
|
||||
using UnityEditor.Build.Reporting;
|
||||
using UnityEditor.Build;
|
||||
|
||||
class AH_BuildProcessor : IPreprocessBuildWithReport, IPostprocessBuildWithReport, IProcessSceneWithReport
|
||||
{
|
||||
public void OnProcessScene(UnityEngine.SceneManagement.Scene scene, BuildReport report)
|
||||
{
|
||||
//This was called on "Editor Play", so ignore
|
||||
if (report == null)
|
||||
return;
|
||||
|
||||
//For some reason I have to do both recursive, and non-recursive version
|
||||
string[] dependencies = AssetDatabase.GetDependencies(scene.path, true);
|
||||
dependencies.ToList().AddRange(AssetDatabase.GetDependencies(scene.path, false));
|
||||
{
|
||||
foreach (string dependency in dependencies)
|
||||
processUsedAsset(scene.path, dependency);
|
||||
}
|
||||
}
|
||||
|
||||
public void OnPreprocessBuild(BuildReport report)
|
||||
{
|
||||
initBuildReport(report.summary.platform, report.summary.outputPath);
|
||||
}
|
||||
|
||||
public void OnPostprocessBuild(BuildReport report)
|
||||
{
|
||||
finalizeBuildReport(report);
|
||||
}
|
||||
|
||||
private void finalizeBuildReport(BuildReport report)
|
||||
{
|
||||
addBuildReportInfo(report);
|
||||
|
||||
//Dont force add special folders (resources etc) in 2018.1 because we have asccess to buildreport
|
||||
finalizeBuildReport(report.summary.platform);
|
||||
}
|
||||
|
||||
private void addBuildReportInfo(BuildReport report)
|
||||
{
|
||||
if (buildInfo != null)
|
||||
buildInfo.ProcessBuildReport(report);
|
||||
}
|
||||
|
||||
static AH_SerializedBuildInfo buildInfo;
|
||||
|
||||
private bool isProcessing;
|
||||
//private static bool isGenerating;
|
||||
|
||||
private void initBuildReport(BuildTarget platform, string outputPath)
|
||||
{
|
||||
//Only start processing if its set in preferences
|
||||
isProcessing = AH_SettingsManager.Instance.AutoCreateLog /*|| isGenerating*/;
|
||||
|
||||
if (isProcessing)
|
||||
{
|
||||
Debug.Log("AH: Initiated new buildreport - " + System.DateTime.Now);
|
||||
buildInfo = new AH_SerializedBuildInfo();
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log("AH: Build logging not automatically started. Open Asset Hunter preferences if you want it to run");
|
||||
}
|
||||
}
|
||||
|
||||
private void finalizeBuildReport(BuildTarget target)
|
||||
{
|
||||
if (isProcessing)
|
||||
{
|
||||
isProcessing = false;
|
||||
|
||||
Debug.Log("AH: Finalizing new build report - " + System.DateTime.Now);
|
||||
|
||||
buildInfo.FinalizeReport(target);
|
||||
}
|
||||
}
|
||||
|
||||
private void processUsedAsset(string scenePath, string assetPath)
|
||||
{
|
||||
if (isProcessing)
|
||||
buildInfo.AddBuildDependency(scenePath, assetPath);
|
||||
}
|
||||
|
||||
public int callbackOrder { get { return 0; } }
|
||||
}
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user