protected override void InitializeSecondaryMeshes(GameObject itemGo) { base.InitializeSecondaryMeshes(itemGo); _secondaryMeshRenderers = itemGo.GetComponentsInImmediateChildren<MeshRenderer>().Except(_primaryMeshRenderer); if (_secondaryMeshRenderers.Any()) { // some planets may not have atmosphere or rings _secondaryMeshRenderers.ForAll(smr => { __ValidateAndCorrectMeshLayer(smr.gameObject); smr.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.On; smr.receiveShadows = true; smr.enabled = false; // Note: using custom SpaceUnity Shaders for now }); } }
protected override MeshRenderer InitializePrimaryMesh(GameObject itemGo) { var meshRenderers = itemGo.GetComponentsInImmediateChildren<MeshRenderer>(); var primaryMeshRenderer = meshRenderers.Single(mr => { Profiler.BeginSample("Editor-only GC allocation (GetComponent returns null)", (_trackedItem as Component).gameObject); var ir = mr.GetComponent<IRevolver>(); Profiler.EndSample(); if (ir != null) { return true; } return false; }); primaryMeshRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.On; primaryMeshRenderer.receiveShadows = true; __ValidateAndCorrectMeshLayer(primaryMeshRenderer.gameObject); // Note: using custom SpaceUnity Shaders for now return primaryMeshRenderer; }