画像の背景を消してみる④ 2枚目3枚目の画像の背景も消して、見たら透明にする

前回、

・ima1Cuの背景を消し、残ったima1Cuを見たら、見ている間は画像が半透明になる。

・半透明かどうかをアプリ終了時に記憶しておく。

 

というのをやりました。

 

今回はima2Cu、ima3Cuにも同様のコードを書いていきます。

 

ima2Cuの背景については、背景のオブジェクトにアタッチしている

play2.csに書きます。

 

void Update()

・・・

 ///////////////この背景をゼロに///////////
        if (Input.GetKeyDown(KeyCode.Z))
        {
            if (pl.Zoshita == 0)
            {
                // 非表示

                transform.localScale = Vector3.zero;
                

            }
            else
            {
                this.transform.localScale = new Vector3(image1.xScale + 150, image1.yScale + 150, 1.0f);
               
                ima2Cu.gameObject.GetComponent<Renderer>().material.color = new Color(1.0f, 1.0f, 1.0f, 1.0f);
            }
            
        }

 

・・・

 

以前に、play.csとやりとりをするときにplay.csのことをplで表記して

変数などを活用できるようにしていたのを、そのまま使います。

pl.Zoshita

で、play.csで記述していたZoshitaの値が何かをここで確認して、

0(背景透明)なら、注視したときに

  transform.localScale = Vector3.zero;

で、背景をゼロにするようにしています。

 

それ以外なら(else)上の行で

ima1Cuに準じたサイズに背景サイズをするようにコードが書いてあります。

 

下の行の

  ima2Cu.gameObject.GetComponent<Renderer>().material.color = new Color(1.0f, 1.0f, 1.0f, 1.0f);

は、念のためima2Cuの透明度を基に戻しています。

 

これで、(背景を消したときに)画像を注視していたら半透明になるのですが、

半透明な最中に、背景を表示したら、半透明なままになってしまうのを

防ごうとしました。

 

・・・

が、結果は防げませんでした。

半透明にするコードの方が有効になったままでした。

 

 

      if (pl.Zoshita == 0)
            {
                // 非表示

                transform.localScale = Vector3.zero;
                

            }

この中にも、同様のコード

  ima2Cu.gameObject.GetComponent<Renderer>().material.color = new Color(1.0f, 1.0f, 1.0f, 1.0f);

を入れると、思ったように半透明が解除されました。

 

Zキーを押すたびに、とりあえず一旦、半透明は解除、ということで

動かすことができました。

 

これの他は

image3.csであれば、

 

 public void keyoshita3()
    {

・・・

  gameObject.GetComponent<Renderer>().material.color = Color.magenta;
                if (pl.Zoshita == 0)
                {
                    ima3Cu.gameObject.GetComponent<Renderer>().material.color = new Color(1.0f, 1.0f, 1.0f, 0.7f);
                }

 

}

 

magentaの後には赤字のコードを、

red や blueの後には

  ima3Cu.gameObject.GetComponent<Renderer>().material.color = new Color(1.0f, 1.0f, 1.0f, 1.0f);

(最後の数字が1.0f)を入れました。