🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

解決済

1回答

2584閲覧

unity2D 作ったメソッドがEventTrigger内で表示されない

Tomoria

総合スコア61

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2021/03/22 08:26

編集2021/03/22 13:08

前提・実現したいこと

unity初心者です。EventTriggerを使ってオブジェクトがクリックされたときに変数が変わるようにしたいです。

#発生している問題・エラーメッセージ
オブジェクトにアタッチしたスクリプト内で作ったメソッドが、そのオブジェクトのインスペクタの中のEventTrigger(Pointer Click)の右の項目(No Functionと書いてある場所)の中に表示されません。

#該当のソースコード

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class u1 : MonoBehaviour 6{ 7 private Vector2 setTapPos; 8 public float speed = 2; 9 public bool i = false; //オブジェクトがクリックされたときに変えたい変数 10 void Start() 11 { 12 13 } 14 15 void Update() 16 { 17 Move(); //関係ないです。 18 } 19 20 private void Move() //関係ないです。 21 { 22 23 if (Input.GetMouseButtonDown(0)) 24 { 25 setTapPos = Camera.main.ScreenToWorldPoint(Input.mousePosition); 26 } 27 28 if (setTapPos.x != transform.position.x) 29 { 30 Vector3 scale = transform.localScale; 31 if (setTapPos.x <= transform.position.x) 32 { 33 scale.x = -1; 34 } 35 else 36 { 37 scale.x = 1; 38 } 39 transform.localScale = scale; 40 transform.position = Vector2.MoveTowards(transform.position, setTapPos, speed * Time.deltaTime); 41 } 42 } 43 public void OnUserAction() //クリックされたときに発動してほしいメソッド 44 { 45 if (i == true) 46 { 47 i = false; 48 } 49 else if (i == false) 50 { 51 i = true; 52 } 53 } 54}

#補足情報
バージョンはunity 2020.3.0f1です。
HierarchyにEventSystemは入っています。

###スクリーンショットの画像
スクリーンショットの画像

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

質問者さんのインスペクターの状態が分からないのですが、以下手順で表示されませんでしょうか。

1、スクリプトをアタッチしたオブジェクトを、PointerClickのオブジェクトに設定
※画像では仮で「Test」というオブジェクトを設定してますが、スクリプトをアタッチしたオブジェクトに置き換えてください
サンプル1

2、NoFunctionのリストから、 u1 > OnUserAction の順で選択
イメージ説明

投稿2021/03/22 12:09

tsuki01

総合スコア1751

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tomoria

2021/03/22 13:13 編集

コメントありがとうございます。 補足情報に新たに追加したスクショのような感じでNoFunctionのリストにu1がないんです。 原因として考えられそうなものは何でしょうか。
tsuki01

2021/03/22 13:22

パッと原因は分からないですね。。 スクリプトをアタッチしているオブジェクトは、どのオブジェクトになりますか?こちらでも同じ条件で検証してみますので。 (「2D Object > Sprite」とか、「UI > Image」で作成したオブジェクトなど) また、Unityの新規プロジェクトで試したら改善するということも稀にあるので、合わせてご確認願います。
Tomoria

2021/03/23 02:55

オブジェクトはペイントで描いた絵を保存してファイルからそのままプロジェクトにドラッグしたものです。 新規で作っても変わりませんでした。 しかし、Raycastを使って試したところできたのでとりあえず解決はしました。 ありがとうございました‼
tsuki01

2021/03/23 13:41

返信遅れました。 こちらの提案で根本解決できずに失礼いたしました。。やはり再現できなかったため、微妙に環境や手順が異なるのが影響してるかもしれません。 とにかく、別の方法で解決したとのことでご連絡ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問