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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

1241閲覧

UnityでQキーを押すと画面にチュートリアルを表示させる方法を…

YKR_Chimopiyo

総合スコア7

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2020/05/31 15:58

UnityでQキーを押すと画面にチュートリアル(操作説明)を表示させる方法を教えて下さい…そしてもう1回押したら消せるようにして欲しいです…

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

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

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

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

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

guest

回答2

0

SetActiveを使ってまずは初めにCanvasを非表示にして(SetActive False)それでInput.GetKeyを使い、Qを押した時にSetActive trueにすれば非表示、表示の方はできます。ずっと押してないといけないとしたい場合にはUpdate関数の中にSetActive.falseをつけたら押している時にしか表示されないと思います。
参考になるといいです。

投稿2020/06/02 00:45

Noju

総合スコア38

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

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

0

ベストアンサー

Input.GetKeyDownで取れますので、それでフラグを立てるなりして表示を切り替えてください。
QキーならKeyCode.Q で入力が取れます。

Input.GetKeyDown
https://docs.unity3d.com/ja/current/ScriptReference/Input.GetKeyDown.html

KeyCode
https://docs.unity3d.com/ja/current/ScriptReference/KeyCode.html

#追記
2点修正が必要です。そもそもまずUnityEngineのUsingが外れてるのでつけます。
あとはKeyCode指定のときは大文字のGを使ってください

cs

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine.UI; 4using UnityEngine; 5 6public class Tyutoriaru : MonoBehaviour { 7 // Start is called before the first frame update 8 void Start() { 9 10 } 11 12 // Update is called once per frame 13 void Update() { 14 if (Input.GetKeyDown(KeyCode.G)) { 15 print("G key was pressed"); 16 } 17 } 18}

あとは表示非表示の処理を書くだけでやりたいことができると思います

cs

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine.UI; 4using UnityEngine; 5 6public class Tyutoriaru : MonoBehaviour { 7 8 [SerializeField] GameObject panel; // 表示・非表示にしたいオブジェクトの参照をInspectorからアタッチ 9 10 // Update is called once per frame 11 void Update() { 12 if (Input.GetKeyDown(KeyCode.G)) { 13 print("G key was pressed"); 14 var isActive = panel.activeInHierarchy; // panelがアクティブか取得 15 panel.SetActive(!isActive); // 反転させる 16 } 17 } 18}

投稿2020/06/01 00:40

編集2020/06/03 00:27
hogefugapiyo

総合スコア3302

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

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

YKR_Chimopiyo

2020/06/01 17:34

GetKeyDownは分かるんですけど…画像のだし方が分からないんですよね
hogefugapiyo

2020/06/02 00:24

すごいシンプルにやるなら、Canvasのイメージとかを非表示で置いておいて、GetKeyDownのタイミングでそれのSetActiveのtrue/falseを切り替えれば実現できるかと思います
YKR_Chimopiyo

2020/06/02 16:32 編集

using System.Collections; using System.Collections.Generic; using UnityEngine; public class Tyutoriaru : MonoBehaviour { // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { if (Input.GetKeyDown("KeyCode.g")) { print("G key was pressed"); } } } これでいいですかね?でもエラるんだよなぁ
Noju

2020/06/02 07:26

UI空間名称が必要ですよ!using.. のところにusing UnityEngine.UIを書かないといけません。後、KeyCodeのところは””はいりません。そのままやっていいです。
YKR_Chimopiyo

2020/06/02 16:19

アドバイスありがとうございます!試してみますね!
YKR_Chimopiyo

2020/06/02 16:33

using System.Collections; using System.Collections.Generic; using UnityEngine.UI; public class Tyutoriaru : MonoBehaviour { // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.g)) { print("G key was pressed"); } } } これだと再生ができなくなりました…
YKR_Chimopiyo

2020/06/03 05:29

ありがとうございます!今手元にPCが無いので後で試しますね!出来なかったら伝えます出来たらお礼とBA渡します
YKR_Chimopiyo

2020/06/03 09:54

何回も聞いてすみません(´;ω;`) 出来たんですかこれだと最初に説明が表示されたままになるんですよね… 一番最初にtrueにする方法はないんですかね…?
hogefugapiyo

2020/06/04 00:24

Hierarchy上で最初から非表示にしておくかAwakeやStartメソッド内で非表示にしておくと良いと思います。 ↓みたいな感じで(直接書いたコードなんで少し違うかもですが) void Start (){ panel.SetActive(false); }
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問