画像の背景を消してみる④ 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)を入れました。