物をクリックした時に
何かの処理を起こしたいー!!
ってこと、あるよね。
実際に見せるとこんな感じ↓
実際にやってみると超簡単だけど、
初心者の方にとっては
って感じだよね。僕もそうだった。(笑)
そんな訳でこちらの記事では、Unityでゲームを作る時に
モノ(オブジェクト)をクリックした時に処理を起こす方法を解説していきます!
初心者のひともコピペで出来るから安心してね!
では早速やっていこー!!
【この記事を読むと出来るようになる事】
・カードをクリックした時に説明文を出す
・オブジェクト(何らかのもの)をクリックした時に処理を行う
【初心者向け】「カードゲームを作ってみたいけど作り方が全く分からない!!!」という人向けに0からカードゲームの作り方を書いてるので、めっちゃ初心者だけど作ってみたい!!というひとは見てみて↓
クリック時に処理を起こす方法について
今回の例では、
クリックした時にパネルを出す。
という処理を書いていきます。
別の処理を書けば別の動きをすることも可能なので、行いたい処理を書いて使ってみてくださいな。
やり方としてはこんな感じ↓
①.コードを書く
②.アタッチ(オブジェクトに貼り付けること)する
では次からやり方の詳細について説明していくよ!
①.コードを書く
まずは新しいクラスを作ろう。
名前はとりあえず「OnClick」で!
そしたら開いて中に書いていこう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; public class OnClick : MonoBehaviour, IPointerClickHandler { [SerializeField] GameObject panel; public void OnPointerClick(PointerEventData eventData) { // クリックされた時に行いたい処理 panel.SetActive(true); Debug.Log("押されたよ"); } } |
コードはたったこれだけ!!
オレンジの部分をコピペすればOK!
よくわかんなかったら最早、
全部丸ごとコピペして張り替えちゃえばいいよ。
②.アタッチする
アタッチのやり方はこれだけ↓
②で貼り付けてるオブジェクトは、「クリックした時に処理を起こしてほしい物」ね。
そしたらこんな感じにコードが張り付けばOK!↓
①②.そしたら適当に作ったパネルを、
③.張り付けたコードの「Panel」ってところにドラッグ&ドロップ!!
そしたら実行!!
完成だーー!!!
ってな訳で次はざっくりとコードの中身について解説するよ。
コードについての説明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; public class OnClick : MonoBehaviour, IPointerClickHandler { [SerializeField] GameObject panel; public void OnPointerClick(PointerEventData eventData) { // クリックされた時に行いたい処理 panel.SetActive(true); Debug.Log("押されたよ"); } } |
今回重要になるのが、IPointerClickHandlerってやつ。
これを継承(6行目の、クラス名の後に書くこと)すると、
「クリック時に処理を起こしますよー」っていうメソッド”OnPointerClick”を使えるようになるよ。
今回はこのメソッドの中に、
パネルを表示せる処理を書いたからパネルが出てきたって訳!
なので要はクリックされた時にやって欲しい処理をここ(“OnPointerClick”の中)に書けばいいって事。
ちなみにIPointerClickHandlerを使うには、4行目のusing UnityEngine.EventSystemsを書かないと使えないから注意ね。
【まとめ】クリック時に処理を起こす方法
最後にもう一回まとめ!!
1.コードを書く(OnPointerClickメソッドの中に起こしたい処理を書く)
2.コードをアタッチする
以上、こんだけ!!
実際これだけで色々応用できるのでぜひ使ってみてね!!
では今回はこれで終わりっ!!!
【初心者向け】「カードゲームを作ってみたいけど作り方が全く分からない!!!」という人向けに0からカードゲームの作り方を書いてるので、めっちゃ初心者だけど作ってみたい!!というひとは見てみて↓
分かりやすくて、いつも参考にしています。
質問なんですが、動画のようにクリックするとパネルが消えるようにするにはどうしたらいいか教えていただけると幸いです。
>むぎぃさん
消したいパネルに、クリックしたら消えるコードを書いたものをアタッチすれば実装出来ると思いますけど、、
この説明だとあんまりしっくり来ないですかね?
Great article. I’m facing a few of these issues as well..
いつもありがとうございます。
質問なのですが、この記事の最初の動画のように、クリックした際にカードごとのテキストを表示するにはどうすればいいのでしょうか?
>ぱまさん
コメントありがとうございます!
んー、具体的にどこで詰まっているのか分からないので一般的な回答になっちゃいますが、
クリックした時にそのカードのテキストデータを取得して、そのテキストデータを表示すれば出来るかと、、!
(この説明でよく分からなければ、またコメント下さい!)
これもしかして2Dのみです?