diff options
Diffstat (limited to 'Assets/Scripts/Unit/Components/UnitRender.cs')
-rw-r--r-- | Assets/Scripts/Unit/Components/UnitRender.cs | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/Assets/Scripts/Unit/Components/UnitRender.cs b/Assets/Scripts/Unit/Components/UnitRender.cs index 435c517d..d1ea0ffb 100644 --- a/Assets/Scripts/Unit/Components/UnitRender.cs +++ b/Assets/Scripts/Unit/Components/UnitRender.cs @@ -6,17 +6,33 @@ using UnityEngine; [DisallowMultipleComponent] public class UnitRender : UnitComponent { + private IBodyRendererAgent m_Body; + + public Renderer mainRenderer
+ {
+ get
+ {
+ if (this.owner.unitDetail == null)
+ return null;
+ return m_Body.mainRenderer.renderer;
+ }
+ } public override void Initialize()
{
base.Initialize();
} + public override void OnPostInitialize()
+ {
+ base.OnPostInitialize();
+ m_Body = owner.unitDetail as IBodyRendererAgent;
+ } + public void SetVisibilityInMainCamera(bool isVisible)
{
LayerMask mask = LayerMask.GetMask("PlayerCharacter");
-
- if(!isVisible)
+ if (!isVisible)
{
SceneManager.Instance.mainCamera.cullingMask &= ~mask.value;
}
@@ -26,4 +42,19 @@ public class UnitRender : UnitComponent }
} + public void SetVisibilityInAllCameras(bool isVisible)
+ {
+ if (mainRenderer == null)
+ return;
+
+ if (isVisible)
+ {
+ mainRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.On;
+ }
+ else
+ {
+ mainRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.ShadowsOnly;
+ }
+ } + } |