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

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

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

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

Unity3D

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

Q&A

解決済

1回答

1201閲覧

Unity Build&RunをするとGetKeyDownが反応しません

14s1052

総合スコア8

C#

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

Unity3D

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

0グッド

0クリップ

投稿2018/02/05 09:10

前提・実現したいこと

c#でspaceキーを押すと3Dモデルの髪の色が変わるものを作りたいと思っています。
乱数で髪の色を変えているので、その乱数をcsvファイルに出力しています。

発生している問題・エラーメッセージ

下記のコードでは、プレイモードでは動くのですが、Build&Runをするとキーが反応してくれません。
csvファイルの方もBuild&RunではStart()の分しか出力されていません。
プレイモードの方ではキーの回数に合わせて出力もできています。
何か解決方法を教えて頂けないでしょうか

該当のソースコード

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using System.IO; 5using System; 6 7public class haircolor2 : MonoBehaviour { 8 9 10 public Texture hair001; 11 public Texture hair002; 12 public Texture hair003; 13 public Texture hair004; 14 public Texture hair005; 15 public Texture hair006; 16 public Texture hair007; 17 public Texture hair008; 18 public Texture hair009; 19 public Texture hair010; 20 public Texture hair011; 21 public Texture hair012; 22 public Texture hair013; 23 public Texture hair014; 24 public Texture hair015; 25 public Texture hair016; 26 public int count; 27 // Use this for initialization 28 void Start () { 29 Renderer render = GetComponent<Renderer>(); 30 count = 1; 31 int h = UnityEngine.Random.Range(1, 17); 32 hair2Save(h); 33 switch (h) 34 { 35 case 1: 36 render.material.mainTexture = hair001; 37 break; 38 case 2: 39 render.material.mainTexture = hair002; 40 break; 41 case 3: 42 render.material.mainTexture = hair003; 43 break; 44 case 4: 45 render.material.mainTexture = hair004; 46 break; 47 case 5: 48 render.material.mainTexture = hair005; 49 break; 50 case 6: 51 render.material.mainTexture = hair006; 52 break; 53 case 7: 54 render.material.mainTexture = hair007; 55 break; 56 case 8: 57 render.material.mainTexture = hair008; 58 break; 59 case 9: 60 render.material.mainTexture = hair009; 61 break; 62 case 10: 63 render.material.mainTexture = hair010; 64 break; 65 case 11: 66 render.material.mainTexture = hair011; 67 break; 68 case 12: 69 render.material.mainTexture = hair012; 70 break; 71 case 13: 72 render.material.mainTexture = hair013; 73 break; 74 case 14: 75 render.material.mainTexture = hair014; 76 break; 77 case 15: 78 render.material.mainTexture = hair015; 79 break; 80 case 16: 81 render.material.mainTexture = hair016; 82 break; 83 default: 84 render.material.mainTexture = hair001; 85 break; 86 } 87 88 } 89 90 void Update () { 91 Renderer render = GetComponent<Renderer>(); 92 93 if (Input.GetKeyDown(KeyCode.Space)) 94 { 95 count++; 96 int h = UnityEngine.Random.Range(1, 17); 97 hair2Save(h); 98 99 switch (h) 100 { 101 case 1: 102 render.material.mainTexture = hair001; 103 break; 104 case 2: 105 render.material.mainTexture = hair002; 106 break; 107 case 3: 108 render.material.mainTexture = hair003; 109 break; 110 case 4: 111 render.material.mainTexture = hair004; 112 break; 113 case 5: 114 render.material.mainTexture = hair005; 115 break; 116 case 6: 117 render.material.mainTexture = hair006; 118 break; 119 case 7: 120 render.material.mainTexture = hair007; 121 break; 122 case 8: 123 render.material.mainTexture = hair008; 124 break; 125 case 9: 126 render.material.mainTexture = hair009; 127 break; 128 case 10: 129 render.material.mainTexture = hair010; 130 break; 131 case 11: 132 render.material.mainTexture = hair011; 133 break; 134 case 12: 135 render.material.mainTexture = hair012; 136 break; 137 case 13: 138 render.material.mainTexture = hair013; 139 break; 140 case 14: 141 render.material.mainTexture = hair014; 142 break; 143 case 15: 144 render.material.mainTexture = hair015; 145 break; 146 case 16: 147 render.material.mainTexture = hair016; 148 break; 149 default: 150 render.material.mainTexture = hair001; 151 break; 152 } 153 } 154 } 155 public void hair2Save(int h) 156 { 157 StreamWriter sw; 158 FileInfo fi; 159 fi = new FileInfo(Application.dataPath + "/logL/hair.csv"); 160 sw = fi.AppendText(); 161 sw.Write(count + ","); 162 sw.WriteLine(h); 163 sw.Flush(); 164 sw.Close(); 165 } 166} 167

試したこと

GetKeyでは動きますが、カウントが上手く出来ないのでGetKeyDownを使いたいです。

補足情報(FW/ツールのバージョンなど)

Unity5 C#

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

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

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

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

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

guest

回答1

0

ベストアンサー

Application.dataPathの指す場所がエディタと実機で違うので、ファイルが取得出来ていないのではないかと思います。
Application.dataPath - Unity スクリプトリファレンス

投稿2018/02/05 11:37

sakura_hana

総合スコア11427

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

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

14s1052

2018/02/06 05:17

ありがとうございます! Application.datePathの部分をデスクトップに変更したら動きました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問