オート中のボタンUIについて

76 views
Skip to first unread message

Yuri Takigawa

unread,
Jul 13, 2021, 5:32:18 AM7/13/21
to 宴ユーザーグループ
オートが動作している最中(クリックしたあと)のボタンの色を変えて、
オートを止めたとき(もう一度クリックしたあと)のボタンをもとの色に戻すスクリプトを組みたいのですが、どうすればいいのかわかりません。

//自動読み進みボタンが押された
public virtual void OnTapAuto( bool isOn )
{
Engine.Config.IsAutoBrPage = isOn;
    GameObject auto = GameObject.Find("Auto");
Button autoButton = auto.GetComponent<Button>();
autoButton.image.color = new Color32(204, 57, 255, 255);

}

このようなコード(太字部分)を書いてみましたが、うまくいきませんでした。
ご教授お願いいたします。

マッドネスラボ

unread,
Jul 16, 2021, 2:58:15 AM7/16/21
to 宴ユーザーグループ
すみません返信が遅れました。


autoButton.image.color = new Color32(204, 57, 255, 255); ですと、isOnがオンでもオフでも同じ結果になってしまうので


if( isOn )
{
 //オンの場合の色を設定する
    autoButton.image.color = new Color32(204, 57, 255, 255);
}
else
{
 //オフの場合の色を設定する
    autoButton.image.color = new Color32(255, 255, 255, 255);
}
のように、オンとオフで違う色を設定するようにすればよいかと思います。


また、蛇足かもですが
    GameObject auto = GameObject.Find("Auto");
Button autoButton = auto.GetComponent<Button>();
として、名前をもとにボタンを取得していますが、
同じAutoというオブジェクトが複数ある場合に、不具合を起こしてしまうので

public Image buttonImage;

というのを追加して、インスペクター経由でボタンのImageコンポーネントを参照できるようにしたほうが良いです。
問題なく動くようなら、特に変えなくてもよいですが。
この辺はUnityの基本的な使い方の部分になりますので、詳しくはUnity公式側のほうを調べてみてください。




2021年7月13日火曜日 18:32:18 UTC+9 Yuri Takigawa:
Reply all
Reply to author
Forward
0 new messages