From 234c25bc8761a4d41bc5b4aa362449cf3e806e13 Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 17 Sep 2021 20:09:19 +0800 Subject: *unit image effect --- Assets/Scripts/Unit/Components/UnitRender.cs | 35 ++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) (limited to 'Assets/Scripts/Unit/Components/UnitRender.cs') 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; + } + } + } -- cgit v1.1-26-g67d0