예제 #1
0
        /// <summary>
        /// 关闭描边效果
        /// </summary>
        public static void DisableOutlineFilter()
        {
            int mask = LayerMask.GetMask(new string[] { "Effect" });

            mCamera = Camera.main;
            if (mCamera == null)
            {
                return;
            }
            OutlineFilter filter = mCamera.GetComponent <OutlineFilter>();

            if (filter == null)
            {
                return;
            }
            Destroy(filter);
            mCamera.cullingMask = mCamera.cullingMask | mask;
            Camera[] cameras = mCamera.GetComponentsInChildren <Camera>();
            for (int i = 0; i < cameras.Length; i++)
            {
                Camera cam = cameras[i];
                if (cam != mCamera)
                {
                    GameObject go = cam.gameObject;
                    Destroy(cam);
                    Destroy(go);
                }
            }
            mCamera = null;
        }
예제 #2
0
        /// <summary>
        /// 开启描边效果
        /// </summary>
        public static void EnableOutlineFilter()
        {
            int mask = LayerMask.GetMask(new string[] { "Effect" });

            mCamera = Camera.main;
            if (mCamera == null)
            {
                return;
            }
            OutlineFilter outlineFilter = mCamera.gameObject.AddComponent <OutlineFilter>();

            mCamera.cullingMask = mCamera.cullingMask & ~mask;
            GameObject go = new GameObject();

            go.name                    = mCamera.name + " Effect";
            go.transform.parent        = mCamera.transform;
            go.transform.localPosition = Vector2.zero;
            go.transform.localRotation = Quaternion.identity;
            Camera effectCam = go.AddComponent <Camera>();

            effectCam.aspect          = mCamera.aspect;
            effectCam.backgroundColor = mCamera.backgroundColor;
            effectCam.nearClipPlane   = mCamera.nearClipPlane;
            effectCam.farClipPlane    = mCamera.farClipPlane;
            effectCam.fieldOfView     = mCamera.fieldOfView;
            effectCam.pixelRect       = mCamera.pixelRect;
            effectCam.rect            = mCamera.rect;
            effectCam.clearFlags      = CameraClearFlags.Nothing;
            effectCam.cullingMask     = mask;
            effectCam.enabled         = false;
            outlineFilter.effectCam   = effectCam;
        }