うにてぃブログ

主にUnityとC#に関する記事を書いていきます

Button

【Unity】ボタンのクリックイベントを監視する

ボタンのクリックイベントを意識せず監視できないかと思って static なクラスを使って監視する処理を書いてみました サンプル Button.SetEvent で指定した Key を ButtonEvent.Listen で登録しているメソッドに対して実行します ButtonEvent.Remove を呼び出…

【Unity】ボタンを 1回だけ実行するようにする 拡張メソッド

1回だけ実行させるボタンが必要だったので拡張メソッドを作成してみました public static class ButtonExtension { public static void OneShot(this Button self, System.Action action) { self.onClick.AddListener(() => { action?.Invoke(); self.onClic…

【Unity】Button を押した際に 縮小拡大のリアクションを追加した際の問題点

現象 ボタンを押した際に 縮小->拡大のリアクションをつけた場合 押した場所が縮小した際にボタンから出てしまうと、下動画のようにピクピクしてしまう 上記の動作をするスクリプトは以下になる public class ButtonTest : Button { // 縮小させる private v…

【Unity】Image の 透明部分を クリックしても Raycast が反応しないようにする

Image の alphaHitTestMinimumThreshold を 0以上にすればタップした際に有効な Alpha の値を変更できる alphaHitTestMinimumThreshold を 1にすると半透明な部分のタップが無効化される しかしテクスチャが半透明かどうか判定するために Read/Write Enable …

【Unity】スクリプトからボタンのクリック処理を呼び出してみる

ボタンの実行処理自体は onClick に対して Invoke をすれば呼び出しはできます Button.onClick.Invoke(); しかしこれはボタンが押せる状態じゃなくても実行することができてしまいます そのためボタンに Ray が通ればボタンを押せると判定して押す処理を書い…

【Unity】 Button の拡張機能をモジュール化

github.com UnityEngine.UI.Button をリアクションさせたり、複数の色を変えたい場合などは Button のコンポーネントの他にそういったコンポーネントを必要に応じて追加する必要がある しかし、規模が大きくなってきたり、人数が多くなってくると忘れてしま…