そういうのがいいブログ

アプリ個人開発 まるブログ

アプリ開発覚え書き

【Unity】ボタン 「通常、ハイライト時、押し込み時、選択時、無効時」の各状態色をスクリプトから動的変更する方法

ボタン状態による色変更をするスクリプトのメモ

半年前に参考にした元サイトが見つかりませんでした。すいません。

ボタンの色は、
”ボタンコンポーネント”の中の”ColorBlock”の中の”変数”を変更することで色変更できます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;


 ///【機能】 ボタン状態による色変更
 ///【第一引数】色を変更したいボタン
 ///【第二引数】変更したい色(new Color32(byte a,byte b,byte c,byte d)) 
 ///【第三引数】色を変更したい状態(0:normalColor 1:highlightedColor 2:pressedColor 3:selectedColor 4:disabledColor)
    private void ButtonStateColorChange(Button button, Color32 color, int changeState)
    {
        ColorBlock colorblock = button.colors;
        switch (changeState)
        {
            case 0://normalColor
                colorblock.normalColor = color;
                break;
            case 1://highlightedColor
                colorblock.highlightedColor = color;
                break;
            case 2://pressedColor
                colorblock.pressedColor = color;
                break;
            case 3://selectedColor
                colorblock.selectedColor = color;
                break;
            case 4://disabledColor
                colorblock.disabledColor = color;
                break;
        }
        button.colors = colorblock;
    }



    //例-----------------------------------------------------

    [SerializeField] private Button stage_button;//ボタンコンポーネントの変数を宣言 変更したいボタンをアタッチ
    private Color32 button_color;//Color32型の変数を宣言


    private void Start()
    {
        //色設定
        button_color = new Color32(10, 40, 255, 255);

        //設定した色をstage_buttonを押した時の色へ設定
        ButtonStateColorChange(stage_button, button_color, 3);
    }

Unity本を出版しました!

突然ですが、Unity本を出版しました!
こちらを読むことで、スクリプトの基礎固めができます!
現在、kindle unlimitedで読み放題設定中です。今のうちにどうぞ!


もっと早く教えてほしかった!Unity C#入門