|
6 | 6 | namespace UnityEditor.Rendering.PostProcessing
|
7 | 7 | {
|
8 | 8 | public sealed class PostProcessResourceStripper : ScriptableObject
|
9 |
| -#if UNITY_2017_1_OR_NEWER |
10 |
| - , IPreprocessBuild, IActiveBuildTargetChanged |
11 |
| -#endif |
12 | 9 | {
|
13 |
| - public int callbackOrder { get { return 0; } } |
| 10 | + [SerializeField] private PostProcessResources resources; |
| 11 | + [SerializeField] private PostProcessResources unstrippedResources; |
| 12 | + [SerializeField] private PostProcessStrippingConfig stripping; |
14 | 13 |
|
15 |
| - [SerializeField] PostProcessResources resources; |
16 |
| - [SerializeField] PostProcessResources unstrippedResources; |
17 |
| - [SerializeField] PostProcessStrippingConfig stripping; |
| 14 | + static PostProcessResourceStripper s_Instance; |
18 | 15 |
|
19 |
| - void Awake() |
| 16 | + public static PostProcessResourceStripper instance |
20 | 17 | {
|
21 |
| - unstrippedResources.changeHandler = Update; |
| 18 | + get |
| 19 | + { |
| 20 | + if (s_Instance == null) |
| 21 | + { |
| 22 | + s_Instance = CreateInstance<PostProcessResourceStripper>(); |
| 23 | + s_Instance.unstrippedResources.changeHandler = Update; |
| 24 | + } |
| 25 | + |
| 26 | + return s_Instance; |
| 27 | + } |
22 | 28 | }
|
23 | 29 |
|
24 | 30 | void OnDestroy()
|
@@ -106,20 +112,43 @@ private void Apply(BuildTarget target)
|
106 | 112 | }
|
107 | 113 | }
|
108 | 114 |
|
109 |
| - public void OnPreprocessBuild(BuildTarget target, string path) |
| 115 | + public static void Update() |
| 116 | + { |
| 117 | + Update(EditorUserBuildSettings.activeBuildTarget); |
| 118 | + } |
| 119 | + |
| 120 | + public static void Update(BuildTarget target) |
110 | 121 | {
|
111 |
| - Apply(target); |
| 122 | + instance.Apply(EditorUserBuildSettings.activeBuildTarget); |
112 | 123 | }
|
| 124 | + } |
113 | 125 |
|
| 126 | +#if UNITY_2017_1_OR_NEWER |
| 127 | + sealed class UpdateStrippingOnBuildTargetChange : IActiveBuildTargetChanged |
| 128 | + { |
| 129 | + public int callbackOrder { get { return 0; } } |
114 | 130 | public void OnActiveBuildTargetChanged(BuildTarget previousTarget, BuildTarget newTarget)
|
115 | 131 | {
|
116 |
| - Apply(newTarget); |
| 132 | + PostProcessResourceStripper.Update(newTarget); |
117 | 133 | }
|
| 134 | + } |
118 | 135 |
|
119 |
| - public static void Update() |
| 136 | + sealed class UpdateStrippingBeforeBuild : IPreprocessBuild |
| 137 | + { |
| 138 | + public int callbackOrder { get { return 0; } } |
| 139 | + |
| 140 | + #if UNITY_2018_1_OR_NEWER |
| 141 | + public void OnPreprocessBuild(Build.Reporting.BuildReport report) |
| 142 | + { |
| 143 | + PostProcessResourceStripper.Update(report.summary.platform); |
| 144 | + } |
| 145 | + #else |
| 146 | + public void OnPreprocessBuild(BuildTarget target, string path) |
120 | 147 | {
|
121 |
| - PostProcessResourceStripper stripper = new PostProcessResourceStripper(); |
122 |
| - stripper.Apply(EditorUserBuildSettings.activeBuildTarget); |
| 148 | + PostProcessResourceStripper.Update(target); |
123 | 149 | }
|
| 150 | + #endif |
124 | 151 | }
|
| 152 | +#endif |
| 153 | + |
125 | 154 | }
|
0 commit comments