public void OnEnable() { ///不被射线检测到 this.gameObject.layer = LayerX.GetIgnoreRaycastLayer(); collider = GetComponent <Collider>(); collider.isTrigger = true; }
protected virtual void Init() { if (SunLight == null || _viewCamera == null) { return; } if (CastShadowLayers == 0) { CastShadowLayers = 1 << LayerX.GetPlayerLayer(); } ///在编辑器下可以直接看AssetBundle资源的hack if (Application.isMobilePlatform == false && Application.isPlaying) { mobileShadowReplacementShader = Shader.Find("Hidden/MobileShadowReplacementShader"); } //end hack Shader.EnableKeyword("_MOBILESHADOW_ON"); _sunTransform = SunLight.transform; Shader.SetGlobalFloat(_shadowOpacityID, ShadowOpacity); Shader.SetGlobalVector(_sunPositionID, _sunTransform.forward); if (_shadowCameraGO == null) { _shadowCameraGO = new GameObject("_Shadow Camera"); if (ShowDebug) { _shadowCameraGO.hideFlags = HideFlags.DontSave; } else { _shadowCameraGO.hideFlags = HideFlags.HideAndDontSave; } _shadowCamera = _shadowCameraGO.AddComponent <Camera>(); _shadowCamera.clearFlags = CameraClearFlags.Color; _shadowCamera.backgroundColor = Color.white; _shadowCamera.depthTextureMode = DepthTextureMode.Depth; _shadowCamera.useOcclusionCulling = false; _shadowCamera.orthographic = true; _shadowCamera.depth = 0; _shadowCamera.aspect = 1f; _shadowCamera.nearClipPlane = 0.0f; _shadowCamera.farClipPlane = 100.0f; _shadowCamera.allowHDR = false; _shadowCamera.allowMSAA = false; _shadowCamera.orthographicSize = 30; _shadowCamera.cullingMask = CastShadowLayers; if (mobileShadowReplacementShader == null) { mobileShadowReplacementShader = Shader.Find("Hidden/MobileShadowReplacementShader"); } _shadowCamera.SetReplacementShader(mobileShadowReplacementShader, ""); _shadowCamera.enabled = false; AllocateNewTexture(); _shadowCamera.targetTexture = _shadowTexture; } }