フォルダが空だったときのことを考えていませんでした② 非表示はダメ。画像がないときは透明に
続くと思わず、前回タイトルの後に①を付けていませんでした。
今現在、画像フォルダが空だとこうなります。
あまり格好良くない。
白枠はいらない。
と、思って画像フォルダが空だと非表示にするにはどうすれば良いか調べました。
【Unity C#】オブジェクトの表示・非表示を切りかえる (futabazemi.net)
いつも、不思議なぐらい欲しい情報を
載せて下さっているこちらのサイト様を参考にしました。
が、このコードは
この画像のサイズを参考に別の画像も連動して変化させたり、
位置も背景と画像で連動させたり・・・
いろいろしてたので、非表示にしてしまうと
エラーになるようです。
そこで、透明にしてみることにしました。
これもまた
【Untiy C#】他のスクリプトから透明化させる - プログラミング教室 フタバゼミ (futabazemi.net)
同じこちらのサイト様に掲載されておりました。
ここから、
this.GetComponent<Renderer>().material.color = new Color32(0, 0, 0, 0);
を、そのまま拝借し、
if (!Pathmei.Any())
{
Debug.Log($"{nameof(Pathmei)}画像フォルダ1は空です。");
this.GetComponent<Renderer>().material.color = new Color32(0, 0, 0, 0);
}
としました。
参考サイトではマテリアルを作って、
レンダリングモードをFadeに・・・
とあるのですが、今回はこのコードを貼り付けるだけで大丈夫でした。
最初は
image画像をくっつけるのに既にひとつ
マテリアルを作っていたから
マテリアルをもう一個作って、
レンダリングモードをFadeにして、
くっつけたいオブジェクトの
inspectorの↓ここを2にして
下に新しく出来たElement1に、新しく作った
マテリアルをドラッグしてくっつけていました。
つまり、ひとつのオブジェクトに二つマテリアルがくっついている状態。
が、いまいち必要そうにない?
ような気がして消しましたところ、
既に作ってあったマテリアルが仕事をしてくれたのか、
ちゃんと透明になりました。
良かったです。
ところで
レンダリングモードのFadeってなんでしょう?
Rendering Mode - Unity マニュアル (unity3d.com)
このように↑書いてありました。
最初のマテリアルはFadeにした記憶はないのですが、
どうして透明になったのか??
また時間があるときに調べたいと思います。