using System.Collections; using System.Collections.Generic; 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) { SceneManager.Instance.mainCamera.cullingMask &= ~mask.value; } else { SceneManager.Instance.mainCamera.cullingMask |= mask.value; } } public void SetVisibilityInAllCameras(bool isVisible) { if (mainRenderer == null) return; if (isVisible) { mainRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.On; } else { mainRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.ShadowsOnly; } } }