Exemple #1
0
    //배경 체인지시 바꿀배경을 뒤(BackQuad)에다 두고 현재 배경은 앞(QuadFront)에다 둔다



    public void StartChangeBackground(eBackgroundMat _changeBackground, float _fChangeValue = 0.5f)
    {
        bIsPlay = true;


        fTimer = 0.0f;

        fChangedValue = _fChangeValue;


        StartCoroutine(ChangeBackground(_changeBackground));
    }
Exemple #2
0
    public IEnumerator ChangeBackground(eBackgroundMat _changeBackground)
    {
        //처음에는  무조건 false 다음 부터는 On/Off
        if (isFirstOn == false)
        {
            isFirstOn  = true;
            isQuadBack = false;
        }
        else
        {
            if (isQuadBack == false)
            {
                isQuadBack = true;
            }
            else
            {
                isQuadBack = false;
            }
        }
        Color QuadBackColor;
        Color QuadFrontColor;

        Material QuadBackMaterial;
        Material QuadFrontMaterial;

        isQuadChangeFinsihed = false;           //아직 바뀌지 않았다.


        if (isQuadBack == false)
        {
            QuadBackMaterial       = backGroundMaterials [(int)_changeBackground];
            QuadBackMaterial.color = new Color(QuadBackMaterial.color.r, QuadBackMaterial.color.g, QuadBackMaterial.color.b, fAlphaMax);
            QuadBack.material      = QuadBackMaterial;
            QuadFrontMaterial      = QuadFront.material;
        }
        else
        {
            QuadBackMaterial       = backGroundMaterials [(int)_changeBackground];
            QuadBackMaterial.color = new Color(QuadBackMaterial.color.r, QuadBackMaterial.color.g, QuadBackMaterial.color.b, fAlphaMax);
            QuadFront.material     = QuadBackMaterial;
            QuadFrontMaterial      = QuadBack.material;
        }

        while (true)
        {
            if (isQuadBack == false)
            {
                fQuadBackAlpha  = QuadBackMaterial.color.a;
                fQuadFrontAlpha = QuadFrontMaterial.color.a;

                fQuadBackAlpha  += Time.deltaTime * fChangedValue;
                fQuadFrontAlpha -= Time.deltaTime * fChangedValue;

                QuadBackColor = new Color(QuadBack.materials [0].color.r, QuadBack.materials [0].color.g, QuadBack.materials [0].color.b,
                                          fQuadBackAlpha);


                QuadFrontColor = new Color(QuadFront.materials [0].color.r, QuadFront.materials [0].color.g, QuadFront.materials [0].color.b,
                                           fQuadFrontAlpha);
            }
            else
            {
                fQuadBackAlpha  = QuadBackMaterial.color.a;
                fQuadFrontAlpha = QuadFrontMaterial.color.a;

                fQuadBackAlpha  += Time.deltaTime * fChangedValue;
                fQuadFrontAlpha -= Time.deltaTime * fChangedValue;

                QuadFrontColor = new Color(QuadFront.materials [0].color.r, QuadFront.materials [0].color.g, QuadFront.materials [0].color.b,
                                           fQuadBackAlpha);


                QuadBackColor = new Color(QuadBack.materials [0].color.r, QuadBack.materials [0].color.g, QuadBack.materials [0].color.b,
                                          fQuadFrontAlpha);
            }



            QuadBack.materials [0].color  = QuadBackColor;
            QuadFront.materials [0].color = QuadFrontColor;

            fTimer += Time.deltaTime;

            if (fQuadFrontAlpha <= 0 || fTimer >= 3.0f)
            {
                //Debug.Log ("배경바꾸기 완료");
                //앞뒤 바뀐다
                bIsPlay = false;

                if (isQuadBack == false)
                {
                    QuadBack.gameObject.transform.SetAsLastSibling();
                    isQuadChangeFinsihed = true;
                }
                else
                {
                    QuadFront.gameObject.transform.SetAsLastSibling();
                    isQuadChangeFinsihed = true;
                }

                yield break;
            }

            yield return(null);
        }
    }