画像の背景を消してみる③ 背景が透明かどうか保存しておく
play.cs の中に
private void OnApplicationQuit()
{
Debug.Log("終るときのZoshitaは" + Zoshita);
PlayerPrefs.SetInt("Zoshita", Zoshita);
PlayerPrefs.Save();
}
を加えました。
Zoshitaの値を保存して、透明で終わったなら
次のスタート時も透明で始める為です。
今回のところは、少しだけ時間がかかりましたが
無事できました。
private void Start()
{
・・・
//前回、背景が透明だったかどうか
Zoshita = PlayerPrefs.GetInt("Zoshita", 1);
Debug.Log("記憶したあとのZoshitaは" + Zoshita);
if (Zoshita == 0)
{
// 非表示
transform.localScale = Vector3.zero;
}
Debug.Log("Zoshitaの値は" + Zoshita);
・・・
StartCoroutine(DelayMethod(0.03f, () =>
{
//背景が透明じゃないなら表示
if(Zoshita == 1)
{
this.transform.localScale = new Vector3(image1.xScale + 150, image1.yScale + 150, 1.0f);
}
transform.position = image1.transform.position;
Debug.Log("image1の最初のポジションはなに" + image1.transform.position);
}));
}
スタートの中に赤字を加えました。
今まで、image1の終了時のサイズも記憶させておいて
スタート時にはimage1のサイズを基準にした大きさで表示するようにしていました。
ここを
Zoshitaが1のときだけにするようにして、
Zoshitaが0のときにはimage1に準ずるのをやめるようにする必要がありました。
なので、下のStartCoroutineの中は、そういうコードが書いてあります。
いろいろ作ってから書いているので抜けているところもあるかも知れませんが
これで
Zを押して背景を消してから
画像を見ると少し透明に
アプリを閉じて再起動しても、背景は消えたまま
背景があるときは注視しても透明にはなりません。
というのが出来ました。
これを他の画像にも当てはまるように同じようにコードを書いていきます。