net.dreditor.overlays 0.0.0-stage → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/ColorParticleProgress.cs +118 -0
  2. package/ColorParticleProgress.cs.meta +11 -0
  3. package/ControlOverlaysOnSceneEvent.cs +59 -0
  4. package/ControlOverlaysOnSceneEvent.cs.meta +11 -0
  5. package/DREditor.Overlays.asmdef +22 -0
  6. package/DREditor.Overlays.asmdef.meta +7 -0
  7. package/GameplayOverlay.cs +131 -0
  8. package/GameplayOverlay.cs.meta +11 -0
  9. package/IOverlayManager.cs +27 -0
  10. package/IOverlayManager.cs.meta +11 -0
  11. package/ObserveManager.cs +262 -0
  12. package/ObserveManager.cs.meta +15 -0
  13. package/ParticleProgress.cs +106 -0
  14. package/ParticleProgress.cs.meta +11 -0
  15. package/ParticleProgressOffset.cs +107 -0
  16. package/ParticleProgressOffset.cs.meta +11 -0
  17. package/Samples/ChangingObserve.asset +19 -0
  18. package/Samples/ChangingObserve.asset.meta +8 -0
  19. package/Samples/CheckOverlay.asset +14 -0
  20. package/Samples/CheckOverlay.asset.meta +8 -0
  21. package/Samples/Color_Particle_Progress_Overlay.prefab +168 -0
  22. package/Samples/Color_Particle_Progress_Overlay.prefab.meta +7 -0
  23. package/Samples/DisableAllOverlays.asset +15 -0
  24. package/Samples/DisableAllOverlays.asset.meta +8 -0
  25. package/Samples/Disable_All_Overlays_Event.prefab +52 -0
  26. package/Samples/Disable_All_Overlays_Event.prefab.meta +7 -0
  27. package/Samples/Display_Overlay_Condition.prefab +64 -0
  28. package/Samples/Display_Overlay_Condition.prefab.meta +7 -0
  29. package/Samples/ObserveModeLocked.asset +19 -0
  30. package/Samples/ObserveModeLocked.asset.meta +8 -0
  31. package/Samples/Observe_Mode_Overlay.prefab +181 -0
  32. package/Samples/Observe_Mode_Overlay.prefab.meta +7 -0
  33. package/Samples/Selection_Overlay_Particle.prefab +4814 -0
  34. package/Samples/Selection_Overlay_Particle.prefab.meta +7 -0
  35. package/Samples.meta +8 -0
  36. package/package.json +39 -6
  37. package/package.json.meta +7 -0
  38. package/README.md +0 -3
@@ -0,0 +1,118 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using DREditor.EventObjects;
3
+ using DREditor.LocalDialogues;
4
+ using DREditor.Services;
5
+ using UnityEngine;
6
+
7
+ namespace DREditor.Overlays
8
+ {
9
+ /// <summary>
10
+ ///
11
+ /// </summary>
12
+ /// <remarks>
13
+ ///
14
+ /// </remarks>
15
+ [ClassHeader(nameof(ParticleProgress) + ", " + nameof(GameplayOverlay) + ", " +
16
+ nameof(IOverlayManager) + ", " + nameof(IToTitleScreen) +
17
+ "\n\n")]
18
+ [DefaultExecutionOrder(1)]
19
+ public class ColorParticleProgress : ParticleProgress
20
+ {
21
+ /// <summary>
22
+ ///
23
+ /// </summary>
24
+ [Header("")]
25
+ [Divider]
26
+ [Tooltip("")]
27
+ [SerializeField] protected GameObject particlePrefab = null;
28
+
29
+
30
+ /// <summary>
31
+ ///
32
+ /// </summary>
33
+ [Header("")]
34
+ [Divider]
35
+ [Tooltip("")]
36
+ [SerializeField] protected Color allTriggeredColor = Color.blue;
37
+
38
+ /// <summary>
39
+ ///
40
+ /// </summary>
41
+ [Tooltip("")]
42
+ [SerializeField] protected Color untriggeredRequiredColor = Color.yellow;
43
+
44
+ /// <summary>
45
+ ///
46
+ /// </summary>
47
+ [Tooltip("")]
48
+ [SerializeField] protected Color untriggeredOptionalColor = Color.green;
49
+
50
+
51
+ /// <inheritdoc/>
52
+ protected override void ApplyParticleToObject(SelectableObject selectableObject)
53
+ {
54
+ if (selectableObject is not IDialogueProgression progressable)
55
+ return;
56
+
57
+ Color spawnColor = progressable.AllDialogueTriggered() ? allTriggeredColor :
58
+ progressable.HasUnTriggeredRequiredFlags() ? untriggeredRequiredColor :
59
+ untriggeredOptionalColor;
60
+
61
+ SpawnProgressParticle(selectableObject.gameObject, spawnColor);
62
+ }
63
+
64
+ /// <summary>
65
+ ///
66
+ /// </summary>
67
+ /// <param name="targetObject"></param>
68
+ /// <param name="particleColor"></param>
69
+ protected virtual void SpawnProgressParticle(GameObject targetObject, Color particleColor)
70
+ {
71
+ GameObject particleGameObject = Instantiate(particlePrefab, targetObject.transform);
72
+
73
+ InitializeParticleDimensions(targetObject, particleGameObject);
74
+
75
+ ParticleSystem particleSystem = particleGameObject.GetComponent<ParticleSystem>();
76
+
77
+ var particleModule = particleSystem.main;
78
+
79
+ particleModule.startColor = particleColor;
80
+
81
+ particles.Add(particleSystem);
82
+
83
+ if (targetObject.GetComponent<ParticleProgressOffset>() is ParticleProgressOffset off)
84
+ off.ApplyOffsets(particleSystem);
85
+
86
+ particleSystem.Play();
87
+ }
88
+
89
+ /// <summary>
90
+ ///
91
+ /// </summary>
92
+ /// <param name="targetObject"></param>
93
+ /// <param name="particleGameObject"></param>
94
+ protected virtual void InitializeParticleDimensions(GameObject targetObject, GameObject particleGameObject)
95
+ {
96
+ Transform parentTransform = targetObject.transform;
97
+
98
+ particleGameObject.transform.localPosition = Vector3.zero;
99
+
100
+ particleGameObject.transform.localEulerAngles = parentTransform.localEulerAngles;
101
+
102
+ if (parentTransform.TryGetComponent(out BoxCollider boxCollider))
103
+ {
104
+ particleGameObject.transform.localPosition = boxCollider.center;
105
+
106
+ particleGameObject.transform.localScale = boxCollider.size;
107
+ }
108
+ else if (parentTransform.TryGetComponent(out MeshCollider collider))
109
+ {
110
+ particleGameObject.transform.localPosition = collider.sharedMesh.bounds.center;
111
+
112
+ particleGameObject.transform.localScale = collider.sharedMesh.bounds.size;
113
+ }
114
+ else if (parentTransform.TryGetComponent(out MeshFilter parentRenderer))
115
+ particleGameObject.transform.localScale = parentRenderer.mesh.bounds.size;
116
+ }
117
+ }
118
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 61358103496d72f4ca4b507227b23504
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,59 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ //Shader That made this possible + Idea by LeoTheDev
3
+ using DREditor.EventObjects;
4
+ using System.Linq;
5
+ using UnityEngine;
6
+
7
+ namespace DREditor.Overlays
8
+ {
9
+ /// <summary>
10
+ ///
11
+ /// </summary>
12
+ [ClassHeader(nameof(SceneEventListener) +
13
+ "\n\n")]
14
+ public class ControlOverlaysOnSceneEvent : SceneEventListener
15
+ {
16
+ /// <summary>
17
+ ///
18
+ /// </summary>
19
+ [Space]
20
+
21
+ [Header("")]
22
+ [Divider]
23
+ [Tooltip("")]
24
+ [SerializeField] protected bool setStateTo = false;
25
+
26
+
27
+ /// <summary>
28
+ ///
29
+ /// </summary>
30
+ protected override void OnEnable()
31
+ {
32
+ base.OnEnable();
33
+
34
+ Response.AddListener(OnEventInvoked);
35
+ }
36
+
37
+ /// <summary>
38
+ ///
39
+ /// </summary>
40
+ protected override void OnDisable()
41
+ {
42
+ base.OnDisable();
43
+
44
+ Response.RemoveListener(OnEventInvoked);
45
+ }
46
+
47
+ /// <summary>
48
+ ///
49
+ /// </summary>
50
+ protected virtual void OnEventInvoked()
51
+ {
52
+ var overlayManagers = FindObjectsByType<MonoBehaviour>().OfType<IOverlayManager>();
53
+
54
+ foreach (var overlay in overlayManagers)
55
+ if (overlay != null && overlay.IsOverlaying())
56
+ overlay.SetOverlay(setStateTo);
57
+ }
58
+ }
59
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: aa87632c233eb81488ee34a4b91f75cb
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "DREditor.Overlays",
3
+ "rootNamespace": "",
4
+ "references": [
5
+ "Unity.RenderPipelines.Universal.Runtime",
6
+ "Unity.InputSystem",
7
+ "DREditor",
8
+ "DREditor.Controls",
9
+ "DREditor.Fading",
10
+ "DREditor.LocalDialogues",
11
+ "DREditor.UIHandling"
12
+ ],
13
+ "includePlatforms": [],
14
+ "excludePlatforms": [],
15
+ "allowUnsafeCode": false,
16
+ "overrideReferences": false,
17
+ "precompiledReferences": [],
18
+ "autoReferenced": true,
19
+ "defineConstraints": [],
20
+ "versionDefines": [],
21
+ "noEngineReferences": false
22
+ }
@@ -0,0 +1,7 @@
1
+ fileFormatVersion: 2
2
+ guid: 76eba6be95883e842aaf6b991c1471e6
3
+ AssemblyDefinitionImporter:
4
+ externalObjects: {}
5
+ userData:
6
+ assetBundleName:
7
+ assetBundleVariant:
@@ -0,0 +1,131 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using DREditor.Dialogues.Starting;
3
+ using DREditor.EventObjects;
4
+ using DREditor.Services;
5
+ using DREditor.UIHandling;
6
+ using System.Collections;
7
+ using System.Collections.Generic;
8
+ using System.Linq;
9
+ using UnityEngine;
10
+ using UnityEngine.InputSystem;
11
+ using static UnityEngine.InputSystem.InputAction;
12
+
13
+ namespace DREditor.Overlays
14
+ {
15
+ /// <summary>
16
+ ///
17
+ /// </summary>
18
+ public abstract class GameplayOverlay : MonoBehaviour, IOverlayManager, IToTitleScreen
19
+ {
20
+ /// <summary>
21
+ ///
22
+ /// </summary>
23
+ [Tooltip("")]
24
+ [SerializeField] protected InputActionReference observeMode = null;
25
+
26
+
27
+ /// <summary>
28
+ ///
29
+ /// </summary>
30
+ [Header("")]
31
+ [Divider]
32
+ [Tooltip("")]
33
+ [SerializeField] protected SceneEventListener checkOverlay = null;
34
+
35
+ /// <summary>
36
+ ///
37
+ /// </summary>
38
+ [Tooltip("")]
39
+ [SerializeField] protected EvaluateCondition displayOverlayCondition = null;
40
+
41
+
42
+ /// <summary>
43
+ ///
44
+ /// </summary>
45
+ protected IEnumerable<IDialoguePrepareEvent> dialoguePrepareEvents;
46
+
47
+ /// <summary>
48
+ ///
49
+ /// </summary>
50
+ protected bool overlaying = false;
51
+
52
+
53
+ /// <summary>
54
+ ///
55
+ /// </summary>
56
+ protected virtual void Awake()
57
+ => dialoguePrepareEvents ??= FindObjectsByType<MonoBehaviour>().OfType<IDialoguePrepareEvent>();
58
+
59
+ /// <summary>
60
+ ///
61
+ /// </summary>
62
+ protected virtual void OnEnable()
63
+ {
64
+ checkOverlay.Response.AddListener(ClearOverlayOnActive);
65
+
66
+ foreach (var preparer in dialoguePrepareEvents)
67
+ if (preparer != null)
68
+ preparer.OnDialoguePrepare += ClearOverlayOnActive;
69
+
70
+ observeMode.action.started += EvaluateOverlay;
71
+ }
72
+
73
+ /// <summary>
74
+ ///
75
+ /// </summary>
76
+ protected virtual void OnDisable()
77
+ {
78
+ checkOverlay.Response.RemoveListener(ClearOverlayOnActive);
79
+
80
+ foreach (var preparer in dialoguePrepareEvents)
81
+ if (preparer != null)
82
+ preparer.OnDialoguePrepare -= ClearOverlayOnActive;
83
+
84
+ observeMode.action.started -= EvaluateOverlay;
85
+ }
86
+
87
+ /// <summary>
88
+ ///
89
+ /// </summary>
90
+ /// <param name="context"></param>
91
+ protected abstract void EvaluateOverlay(CallbackContext context);
92
+
93
+ /// <inheritdoc/>
94
+ public virtual bool IsOverlaying() => overlaying;
95
+
96
+ /// <inheritdoc/>
97
+ public virtual void SetOverlay(bool to) => overlaying = to;
98
+
99
+ /// <summary>
100
+ ///
101
+ /// </summary>
102
+ protected abstract IEnumerator ToggleOverlay();
103
+
104
+ /// <summary>
105
+ ///
106
+ /// </summary>
107
+ protected abstract void TurnOnOverlay();
108
+
109
+ /// <summary>
110
+ ///
111
+ /// </summary>
112
+ protected abstract void TurnOffOverlay();
113
+
114
+
115
+ /// <inheritdoc/>
116
+ public virtual void ClearOverlayOnActive()
117
+ {
118
+ if (overlaying)
119
+ ClearOverlay();
120
+ }
121
+
122
+ /// <summary>
123
+ ///
124
+ /// </summary>
125
+ protected virtual void ClearOverlay() => StartCoroutine(ToggleOverlay());
126
+
127
+
128
+ /// <inheritdoc/>
129
+ public virtual void ToTitleScreen() => TurnOffOverlay();
130
+ }
131
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: cce1181e876abbe4592d0ad345396779
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,27 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+
3
+ namespace DREditor.Overlays
4
+ {
5
+ /// <summary>
6
+ ///
7
+ /// </summary>
8
+ public interface IOverlayManager
9
+ {
10
+ /// <summary>
11
+ ///
12
+ /// </summary>
13
+ /// <returns></returns>
14
+ bool IsOverlaying();
15
+
16
+ /// <summary>
17
+ ///
18
+ /// </summary>
19
+ /// <param name="to"></param>
20
+ void SetOverlay(bool to);
21
+
22
+ /// <summary>
23
+ ///
24
+ /// </summary>
25
+ void ClearOverlayOnActive();
26
+ }
27
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 26d2d77de0803954b8b10c95f3be25d3
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,262 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ //Shader That made this possible + Idea by LeoTheDev
3
+ using DREditor.Dialogues.Events;
4
+ using DREditor.Dialogues.Finishing;
5
+ using DREditor.EventObjects;
6
+ using DREditor.Fading;
7
+ using DREditor.Services;
8
+ using System.Collections;
9
+ using System.Linq;
10
+ using UnityEngine;
11
+ using UnityEngine.Events;
12
+
13
+ using UnityEngine.Rendering.Universal;
14
+ using static UnityEngine.InputSystem.InputAction;
15
+ using UnityEngine.InputSystem;
16
+
17
+
18
+ #if UNITY_EDITOR
19
+ using UnityEditor;
20
+ #endif
21
+
22
+ namespace DREditor.Overlays
23
+ {
24
+ /// <summary>
25
+ ///
26
+ /// </summary>
27
+ /// <remarks>
28
+ ///
29
+ /// </remarks>
30
+ [ClassHeader(nameof(GameplayOverlay) + ", " + nameof(IOverlayManager) + ", " + nameof(IToTitleScreen) +
31
+ "\n\n")]
32
+ public class ObserveManager : GameplayOverlay
33
+ {
34
+ /// <summary>
35
+ ///
36
+ /// </summary>
37
+ [Tooltip("")]
38
+ [SerializeField] protected BoolWithEvent changingObserve = null;
39
+
40
+ /// <summary>
41
+ ///
42
+ /// </summary>
43
+ [Tooltip("")]
44
+ [SerializeField] protected BoolWithEvent reticleCanSelect = null;
45
+
46
+
47
+ /// <summary>
48
+ ///
49
+ /// </summary>
50
+ [Header("")]
51
+ [Divider]
52
+ [Tooltip("")]
53
+ [SerializeField] protected BoolWithEvent isLoadingFile = null;
54
+
55
+ /// <summary>
56
+ ///
57
+ /// </summary>
58
+ [Tooltip("")]
59
+ [SerializeField] protected BoolWithEvent inLeaveProcess = null;
60
+
61
+ /// <summary>
62
+ ///
63
+ /// </summary>
64
+ [Tooltip("")]
65
+ [SerializeField] protected BoolWithEvent inDialogue = null;
66
+
67
+
68
+ /// <summary>
69
+ ///
70
+ /// </summary>
71
+ [Header("")]
72
+ [Divider]
73
+ [Tooltip("")]
74
+ [SerializeField] protected string toggleCameraEvent = "ToggleCameraFlags";
75
+
76
+ /// <summary>
77
+ ///
78
+ /// </summary>
79
+ [Tooltip("")]
80
+ [SerializeField] protected RenderObjects renderObject = null;
81
+
82
+ /// <summary>
83
+ ///
84
+ /// </summary>
85
+ [Tooltip("")]
86
+ [SerializeField] protected UniversalRendererData rendererData = null;
87
+
88
+ /// <summary>
89
+ ///
90
+ /// </summary>
91
+ [Tooltip("")]
92
+ [SerializeField] protected float fadeToTime = 0.5f;
93
+
94
+ /// <summary>
95
+ ///
96
+ /// </summary>
97
+ [Tooltip("")]
98
+ [SerializeField] protected float fadeOutTime = 0.5f;
99
+
100
+ /// <summary>
101
+ ///
102
+ /// </summary>
103
+ [Tooltip("")]
104
+ [SerializeField] protected LayerMask layerMask = 131073; // Default + RaycastBlock
105
+
106
+
107
+ [Header("")]
108
+ [Divider]
109
+ [Header("")]
110
+ [SerializeField] protected UnityEvent OnPlaySFX = null;
111
+
112
+ [Header("")]
113
+ [SerializeField] protected UnityEvent OnStopSFX = null;
114
+
115
+
116
+ /// <summary>
117
+ ///
118
+ /// </summary>
119
+ protected IEndDialogueEvent EndDialogueEvent;
120
+
121
+
122
+ /// <inheritdoc/>
123
+ protected override void Awake()
124
+ {
125
+ base.Awake();
126
+
127
+ EndDialogueEvent ??= FindObjectsByType<MonoBehaviour>().OfType<IEndDialogueEvent>().FirstOrDefault();
128
+ }
129
+
130
+ /// <inheritdoc/>
131
+ protected override void OnEnable()
132
+ {
133
+ base.OnEnable();
134
+
135
+ #if UNITY_EDITOR
136
+ EditorApplication.playModeStateChanged += ModeChanged;
137
+ #endif
138
+ }
139
+
140
+ /// <inheritdoc/>
141
+ protected override void OnDisable()
142
+ {
143
+ base.OnDisable();
144
+
145
+ #if UNITY_EDITOR
146
+ EditorApplication.playModeStateChanged -= ModeChanged;
147
+ #endif
148
+ }
149
+
150
+
151
+ /// <inheritdoc/>
152
+ protected override void EvaluateOverlay(CallbackContext context)
153
+ {
154
+ if (!changingObserve.Value && displayOverlayCondition.Evaluate())
155
+ {
156
+ reticleCanSelect.SetValue(false);
157
+
158
+ StartCoroutine(ToggleOverlay());
159
+ }
160
+ }
161
+
162
+ /// <inheritdoc/>
163
+ protected override IEnumerator ToggleOverlay()
164
+ {
165
+ changingObserve.SetValue(true);
166
+
167
+ if (!isLoadingFile.Value)
168
+ yield return ServiceLocator.GetService<GlobalFade>().FadeToRoutine(fadeToTime);
169
+
170
+ SetOverlay(!overlaying);
171
+
172
+ DialogueEventSystem.TriggerEvent(toggleCameraEvent, overlaying);
173
+
174
+ if (!isLoadingFile.Value)
175
+ yield return ServiceLocator.GetService<GlobalFade>().FadeOutRoutine(fadeOutTime);
176
+
177
+ if (!inDialogue.Value)
178
+ reticleCanSelect.SetValue(true);
179
+
180
+ changingObserve.SetValue(false);
181
+ }
182
+
183
+
184
+ /// <inheritdoc/>
185
+ protected override void ClearOverlay()
186
+ {
187
+ base.ClearOverlay();
188
+
189
+ if (inLeaveProcess.Value)
190
+ EndDialogueEvent.OnDialogueEnd += FixReticleIssue;
191
+ }
192
+
193
+ /// <summary>
194
+ ///
195
+ /// </summary>
196
+ protected virtual void FixReticleIssue()
197
+ {
198
+ EndDialogueEvent.OnDialogueEnd -= FixReticleIssue;
199
+
200
+ reticleCanSelect.SetValue(true);
201
+ }
202
+
203
+
204
+ /// <inheritdoc/>
205
+ public override void SetOverlay(bool to)
206
+ {
207
+ if (to)
208
+ TurnOnOverlay();
209
+ else
210
+ TurnOffOverlay();
211
+
212
+ base.SetOverlay(to);
213
+ }
214
+
215
+ /// <inheritdoc/>
216
+ protected override void TurnOnOverlay()
217
+ {
218
+ renderObject.SetActive(true);
219
+
220
+ rendererData.opaqueLayerMask &= ~layerMask;
221
+
222
+ OnPlaySFX?.Invoke();
223
+ }
224
+
225
+ /// <inheritdoc/>
226
+ protected override void TurnOffOverlay()
227
+ {
228
+ renderObject.SetActive(false);
229
+
230
+ rendererData.opaqueLayerMask |= layerMask;
231
+
232
+ OnStopSFX?.Invoke();
233
+ }
234
+
235
+
236
+ /// <inheritdoc/>
237
+ public override void ToTitleScreen()
238
+ {
239
+ EndDialogueEvent.OnDialogueEnd -= FixReticleIssue;
240
+
241
+ base.ToTitleScreen();
242
+ }
243
+
244
+
245
+ #if UNITY_EDITOR
246
+ /// <summary>
247
+ ///
248
+ /// </summary>
249
+ /// <param name="change"></param>
250
+ protected virtual void ModeChanged(PlayModeStateChange change)
251
+ {
252
+ if (!EditorApplication.isPlayingOrWillChangePlaymode && EditorApplication.isPlaying)
253
+ {
254
+ if (renderObject.isActive)
255
+ renderObject.SetActive(false);
256
+
257
+ rendererData.opaqueLayerMask |= layerMask;
258
+ }
259
+ }
260
+ #endif
261
+ }
262
+ }
@@ -0,0 +1,15 @@
1
+ fileFormatVersion: 2
2
+ guid: aca01d2e60ac0df408a4bc20515be13b
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences:
7
+ - inDialogue: {fileID: 11400000, guid: b2839fc222ba4bc4eb8bcfee73b0c53d, type: 2}
8
+ - inTPFD: {fileID: 11400000, guid: 7f90df5202cae904292188e37c9076d3, type: 2}
9
+ - renderObject: {fileID: 4470810494987417559, guid: 2fd9deb72a9165242b37b8fcf5f00e49,
10
+ type: 2}
11
+ executionOrder: 0
12
+ icon: {instanceID: 0}
13
+ userData:
14
+ assetBundleName:
15
+ assetBundleVariant: