コード例 #1
0
 public void OnEnable()
 {
     ///不被射线检测到
     this.gameObject.layer = LayerX.GetIgnoreRaycastLayer();
     collider           = GetComponent <Collider>();
     collider.isTrigger = true;
 }
コード例 #2
0
        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;
            }
        }