예제 #1
0
    public override void Create()
    {
        fluidPass = new FluidPass(
            "Fluid custom pass",
            settings.WhenToInsert,
            settings.FluidMaterialToBlit
            );

        dashDistortionPass = new DashDistortionPass(
            "Dash distortion custom pass",
            settings.WhenToInsert,
            settings.DashDistortionMaterialToBlit
            );

        distortionPass = new DistortionPass(
            "Distortion custom pass",
            settings.WhenToInsert,
            settings.DistortionMaterialToBlit
            );

        pixelizePass = new PixelizePass(
            "Pixelize custom pass",
            settings.WhenToInsert,
            settings.PixelizeMaterialToBlit
            );
    }
    //刷新组件
    public void UpdateComponent()
    {
        mainCam = Camera.main;
        if (mainCam == null || uberCameraPrefab == null || alphaCameraPrefab == null)
        {
            return;
        }

        pp = mainCam.GetComponent <DragonPostProcess>();
        if (pp == null)
        {
            pp = mainCam.gameObject.AddComponent <DragonPostProcess>();
        }

        Transform alphaCamTran = mainCam.transform.Find("AlphaCamera");

        if (alphaCamTran == null)
        {
            GameObject obj = Instantiate(alphaCameraPrefab) as GameObject;
            obj.name            = "AlphaCamera";
            alphaCamTran        = obj.transform;
            alphaCamTran.parent = mainCam.transform;
        }
        alphaPass = alphaCamTran.GetComponent <AlphaPass>();
        Camera alphaCamera = alphaCamTran.GetComponent <Camera>();

        alphaCamera.depth = mainCam.depth + 1;

        Transform distortionCamTran = mainCam.transform.Find("DistortionCamera");

        if (distortionCamTran == null)
        {
            GameObject obj = Instantiate(distortionCameraPrefab) as GameObject;
            obj.name                 = "DistortionCamera";
            distortionCamTran        = obj.transform;
            distortionCamTran.parent = mainCam.transform;
        }
        distortionPass = distortionCamTran.GetComponent <DistortionPass>();
        Camera distortionCamera = distortionCamTran.GetComponent <Camera>();

        distortionCamera.depth = mainCam.depth + 2;

        Transform uberCamTran = mainCam.transform.Find("UberCamera");

        if (uberCamTran == null)
        {
            GameObject obj = Instantiate(uberCameraPrefab) as GameObject;
            obj.name           = "UberCamera";
            uberCamTran        = obj.transform;
            uberCamTran.parent = mainCam.transform;
        }
        uberPass = uberCamTran.GetComponent <UberPass>();
        Camera uberCamera = uberCamTran.GetComponent <Camera>();

        uberCamera.depth = mainCam.depth + 3;

        alphaCamera.transform.localPosition    = distortionCamera.transform.localPosition = uberCamera.transform.localPosition = Vector3.zero;
        alphaCamera.transform.localEulerAngles = distortionCamera.transform.localEulerAngles = uberCamera.transform.localEulerAngles = Vector3.zero;
        alphaCamera.nearClipPlane = distortionCamera.nearClipPlane = uberCamera.nearClipPlane = mainCam.nearClipPlane;
        alphaCamera.farClipPlane  = distortionCamera.farClipPlane = uberCamera.farClipPlane = mainCam.farClipPlane;
        alphaCamera.fieldOfView   = distortionCamera.fieldOfView = uberCamera.fieldOfView = mainCam.fieldOfView;
        alphaCamera.allowMSAA     = distortionCamera.allowMSAA = uberCamera.allowMSAA = false;
        //alphaCamera.allowHDR = uberCamera.allowHDR = false;
    }