Unity:オブジェクトを触ったら何かしらアクションを起こす「●●を触ったら●●する」(Button機能の解説)

例えば画面上にある矢印を触ったら(クリックやタップなど)場所を移動させたいなど「●●を触ったら●●する」といったアクションを起こしたいとしましょう。
大切なのは「触れたら」ではなく「触ったら」というところ。つまりボールがコロコロと転がって、転がった先にあった壁に触れた!とかそういった類ではなく(当たり判定ではありません)意図的に触れた場合です。当たり判定を付けたい場合はColliderという機能を使いましょう。
ちなみに「●●を触ったら●●する」の部分のコーディングはもちろん必要です。そのコーディングは既に済んでいるということを前提に、今回はUnity側でどのような前準備が必要なのかをまとめます。

オブジェクトの配置

ひとまず「●●に触ったら」●●に該当するものを配置しておきます。これは状況によりけりだと思います。もしかしたら既に●●を配置した上でコーディングを済ませているかも知れませんし、まだなら例えばそれは「人」だったり「物」だったり色々でしょう。ちなみに私は画像を配置することにしました。なお「●●する」の部分のコーディングは既に済ませてあります。

インスペクターパネルからコンポーネントの追加をする

「●●に触ったら」の●●(オブジェクト)を選択し、表示されたインスペクターパネルの一番下の方にある「コンポーネントを追加」ボタンを押しましょう

buと入力し出て来た候補のButtonを選択

「コンポーネントを追加」ボタンを押すと自動的に検索バーが出てくると思うので、そこでbuと入力しましょう。するとButtonが表示されますのでそれを選択してください。

そうしたらこのような画面が表示されると思います。↓

button機能

クリック時()の右下にある+を選択

ここからは既にコーディングが済んでいる前提で説明をします
Buttonウインドウの右下にある+-のボタンの+の方を選択してください。

するとこのようになります↓

「●●する」のコーディングしたC#をアタッチしたオブジェクトを「なし(オブジェクト)」の部分にドラッグ&ドロップする

ここで少し難しいのが「●●する」のコーディングをアタッチしたオブジェクトをドラッグ&ドロップするところです。そのプログラムを書いたC#ファイル自体をドラッグ&ドロップしても作成した関数は反映してくれませんでした

多くの場合は「ヒエラルキーパネル」の中にある「親玉的な存在(ルート)」に「●●する」の処理を書いたプログラムをアタッチしていることと思いますが、もしもまだであるならばそのオブジェクトの親にあたる何かを作成し、そこに書いたC#をアタッチするとOKです。

アタッチ → 作成したC#のプログラムを選択し、それを適用したいオブジェクトにドラッグ&ドロップ。(アイコンが変化した状態で左クリックを放す)と書いた内容が適用(アタッチ)される

このなし(オブジェクト)と書いてある部分に、自分がアタッチをしたオブジェクトをドラッグアンドドロップします。

私の場合はこの「PanelParent」というのが、自分がアタッチをしたオブジェクトになります。このオブジェクトをなし(オブジェクト)の欄にドラッグアンドドロップするわけですね。

No Functionの中から該当する関数を選ぶ

アタッチしたオブジェクトをドラッグ&ドロップ出来たら、次はこちらのNo Functionの欄をクリックして一覧を表示させます。

そしてその中から自分が適用させたい関数を選択します。

もしもこの一覧に作成した関数が無い場合は、コーディングしたC#をアタッチしているオブジェクトを上手く選択出来ていない可能性があります。その辺を見直してみると良いかも知れません。

念の為初心者がやらかしがちなミス一覧も作成しているのでそちらもご覧ください。

タイトルとURLをコピーしました