コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】チュートリアルなどで特定のボタンのみハイライトして、それ以外のボタンを押せなくすることができる「GuardLayerImage」紹介

はじめに

「GuardLayerImage」を Unity プロジェクトに導入することで
チュートリアルなどで特定のボタンのみハイライトして、
それ以外のボタンを押せなくすることができるようになります

使用例

f:id:baba_s:20211003182215g:plain

クイックスタート

f:id:baba_s:20211003182347p:plain

Canvas の前面に表示される位置に空のゲームオブジェクトを作成して

f:id:baba_s:20211003182413p:plain

「GuardLayerImage」をアタッチします

using HeppokoUtil;
using UnityEngine;
using UnityEngine.UI;

public class Example : MonoBehaviour
{
    public Button          m_button1;
    public Button          m_button2;
    public GuardLayerImage m_guardLayerImage;

    private void Start()
    {
        m_button1.onClick.AddListener( () => m_guardLayerImage.SetTargetObject( m_button2.gameObject ) );
        m_button2.onClick.AddListener( () => m_guardLayerImage.SetTargetObject( m_button1.gameObject ) );

        m_guardLayerImage.SetTargetObject( m_button1.gameObject );
    }
}

そして、上記のようなスクリプトを作成することで使用できます

補足

f:id:baba_s:20211003185809p:plain

ハイライトの位置がズレる場合は

f:id:baba_s:20211003185811p:plain

Game ウィンドウの解像度と

f:id:baba_s:20211003185814p:plain

Canvas Scaler の解像度を合わせると直ります

関連記事