画像の背景を消してみる⑥ 細かい修正:Pキーを押したときの修正
まずは、前回の続きから。
image2.cs、image3.csにも前回同様の書き込みをしました。
image2.csのクラスに
//録音中・・・表示非表示に必要
[SerializeField] Text rokuonshitemasu2;
を、書いたとき、Text の部分にエラーが出ました。
using UnityEngine.UI;
が抜けていました。
一番上に追記してエラーが消えました。
他は、前回とほとんど同じ内容で行けました。
次にタイトルの内容についての修正です。
これは、
こんな風に、背景を消していたとしても、
画像の位置やサイズを標準に戻すキーを押したら
背景が・・・
出てくる・・・
のを止めようと思ったら、それ以外の物も
思った以上にバラバラでした。
とりあえず、ボタンの位置を標準の位置に戻すようにしたいと思います。
image1.csに
if (Input.GetKeyDown(KeyCode.P))
{
this.transform.position = new Vector3(-360, 0, screenPoint.z);
this.transform.localScale = new Vector3(200, 200, 1.0f);
Debug.Log("Pキーを押したときのボタンの位置は" + Button.transform.position);
xScale = 200;
yScale = 200;
// hozonkansusize();
Button.transform.position = new Vector3(-690, -650, -50);
rokuonshitemasu1.transform.position = new Vector3(-640, -700, -50);
}
を書きました。
しかし、
Pキーを押すとボタンが消えます。
画像をクリックすると
出てきます。
困りました。
座標を表示させても、上下では同じように見えます。
そこで、
赤字部分を↓このように変えました。
//録音ボタンの位置も変更
Button.transform.position = new Vector3(transform.position.x, transform.position.y - 70, -50);
//録音してます...の位置も変更
rokuonshitemasu1.transform.position = new Vector3(transform.position.x + 50, transform.position.y - 50, -50);
これでうまく行きました。
先に、transform.position.x が
this.transform.position = new Vector3(-360, 0, screenPoint.z);
で、標準位置になっているので、
これを基準にボタンの位置などをそろえることにしたらちゃんと表示されました。
でも、なんで前の記述ではダメなのかは分からないままです・・・。
そのうち、なるほど!
と思う日が来るといいですが・・・
他の画像も同様の記述でいけました。
次に、背景をゼロの状態でPキーを押したら背景は表示しないようにしたいと思います。
今回はPlay3.csに記載した内容を書きます。
if (Input.GetKeyDown(KeyCode.P))
{
this.transform.position = new Vector3(360, 0, screenPoint.z);
if (pl.Zoshita == 1)
{
this.transform.localScale = new Vector3(image1.xScale + 150, image1.yScale + 150, 1.0f);
}
}
play.csだけは、
if (pl.Zoshita == 1)
では無く
if (Zoshita == 1)
ですが、
後は同じです。
Scaleを大きくしてしまいそうな記述を
この if (pl.Zoshita == 1) で囲むだけでうまくいきました。
が。。。
矢印キーでサイズ変更をしようとしたら、やっぱり背景が出てきてしまいました。
ここも、同じ
if (pl.Zoshita == 1)
で囲む必要がありそうです。
・・・
うまく行きました。
全部image1.csだけで出来ました。
UpもDownも、RightもLeftも同じScriptに記述されていたからです。
これを、Downであれば、
if (Input.GetKey(KeyCode.DownArrow))
{
yScale -= 5f;
this.transform.localScale = new Vector3(xScale, yScale, 1.0f); //////このオブジェクトのサイズをxScaleとyScaleにする。
//**保存の為位置やサイズを代入
// hozonkansusize();
ima2Cu.GetComponent<image2>().ScaleUp(); /////ima2Cuのimage2.csのScaleUpをここで実行。という意味?
ima3Cu.GetComponent<image3>().ScaleUp();
if (pl.Zoshita == 1)
{
back1Cu.GetComponent<play>().ScaleUp();
back2Cu.GetComponent<play2>().ScaleUp();
back3Cu.GetComponent<play3>().ScaleUp();
}
}
こんな風に↑ back〇Cuオブジェクトのスケールを変えるところだけ、
if (pl.Zoshita == 1)
で囲みました。
これを他の
Up、Right、Leftにも同様にすることで、
サイズを変えても背景が出てこなくなりました。