質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Q&A

解決済

1回答

1013閲覧

C# if文

alb14laq

総合スコア27

C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

0グッド

0クリップ

投稿2016/11/17 03:14

C#

1void OnTriggerEnter(Collider collider) 2 { 3 if (collider.gameObject.tag == "Player") 4 { 5 text.color = new Color(255, 255, 255, 1); 6 7 if (Input.GetKeyDown("m")) 8 { 9 Debug.Log("Hit"); 10 text.color = new Color(0, 0, 0, 0); 11 } 12 } 13}

C#IF文がうまく扱えません。現在このようなコードで書いているのですがログのHitがでてこない状況です。
調べてみるとifの中にifは書ける(間違っていたらすみません)ようだったのでどうすればいいのかわからなくなっています。
どなたかアドバイスなどお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

'Input.GetKeyDown'の引数はキーコードでは?文字列が入っているので。
おそらく、Input.GetKeyDown('m')で動くのでは?

投稿2016/11/17 03:20

MasahikoHirata

総合スコア3747

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

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

ozwk

2016/11/17 03:31

KeyCode.Mですね
MasahikoHirata

2016/11/17 03:33

ozwkさん。この関数は使ったことがなかったので、ありがとうございます。それが確実ですね。
alb14laq

2016/11/17 06:48

すみません。if (KeyCode.M){}でいいのでしょうか、、うまく扱えません、、 それと、このOnTriggerのなか以外でif (Input.GetKeyDown("m"))と書いたときは正常に動くのですが、この場合はなぜだめなのでしょうか?
ozwk

2016/11/17 06:53

そもそもOnTriggerEnterに入っていますか?
MasahikoHirata

2016/11/17 07:21

いえいえ。Input.GetKeyDown(KeyCode.M)に変更です。
alb14laq

2016/11/17 07:31

OZWKさん はい、確認しましたが入っていると思います。
alb14laq

2016/11/17 07:33

MasahikoHirataさん。 エラーははかなくなりましたが、やはりログのHitがでてきません、、
ozwk

2016/11/17 07:40 編集

OnTriggerEnterってトリガーに入った瞬間で GetKeyDownってキーが押された瞬間だったりしません? GetKeyに変更してMキー押しながら衝突しないとだめなのでは?
MasahikoHirata

2016/11/17 07:40

ozwkさんの言うとおりかも。'Debug.log("In OnTriggerEnter");'を’ if (collider.gameObject.tag == "Player")’の前に入れて確認。
alb14laq

2016/11/17 08:08

Getkeyに変更してMを押しながら入るとLogがでてきました。 当たり判定内でmを押すと、というようにするにはどうすればいいのでしょうか。。
alb14laq

2016/11/17 08:09

’ if (collider.gameObject.tag == "Player")’の前にLogを置いたところそのLogはでてくるようになりました。
ozwk

2016/11/17 08:10

OnTriggerStay()ですね
alb14laq

2016/11/17 08:12

ありがとうございます!!解決できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問