前提・実現したいこと
C++ → 3Dモデルに張り付けるテクスチャを決め、Assets/Resourses/CSV内にCSVファイルで書き出す
Unity → Assets/Resourses/CSV内のCSVファイルを読み込み、その内容に対応するテクスチャを3Dモデルに張り付け、アニメーションを実行する
※様々な問題につき、どうしてもテクスチャを決めるのはC++である必要があります。
C++とUnityはスペースキーを押すと、同時に実行されるものになります。
流れは
C++:テクスチャを書き出す(CSVファイル)
Unity:テクスチャを読み込み、適応
これを繰り返すことになります。
unityが建てたフラグをC++でリアルタイムに確認することはできました。
しかし、逆になるとできません。
なにか対処方法はないでしょうか。
発生している問題・エラーメッセージ
unity側にて、該当するcsvファイルが見つからないとエラーが出ます。
(C++側では出力済み)
どうやら、リアルタイムでAssets/Resource/CSVが更新されていないため、ファイルがないと言われているようです。
一度デバックをやめるとCSVフォルダ内にcsvファイルが入り、次に実行したとき、前回出力されたものが適応されます。
該当のソースコード
Cpp
1int main(){ 2 int i = 0; 3 char fop[100]; 4 char fop2[100]; 5 char fip[100]; 6 int flag = 0; 7 8 sprintf(fop, "Assets\Resources\CSV\coordinate.csv"); 9 sprintf(fop2, "Assets\Resources\CSV\set.csv"); 10 sprintf(fip, "test.csv"); 11 12 while (i < 5){ 13 if (GetAsyncKeyState(VK_SPACE)){ 14 for (int j = 0; j < 5; j++){ 15 /*ファイルオープン*/ 16 if ((fo = fopen(fop, "w")) == NULL){ 17 printf("ファイルオープン失敗\n"); 18 exit(-1); 19 } 20 fprintf(fo, "%d, %d, %d, %d, %d", 1, 2, 3, 4, 5); 21 printf("コーディネートの出力\n"); 22 fclose(fo); 23 } 24 i++; 25 } 26 } 27 28 printf("終了\n"); 29 30 return 0; 31}
Unity
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using System; 5using System.IO; 6using System.Text; 7 8public class nowloading : MonoBehaviour { 9 10 int count; 11 private TextAsset csvFile; 12 private List<string[]> csvDatas = new List<string[]>(); 13 14 // Use this for initialization 15 void Start () { 16 17 } 18 19 // Update is called once per frame 20 void Update () { 21 if (Input.anyKeyDown) 22 { 23 StartCoroutine("nowload"); 24 } 25 } 26 27 IEnumerator nowload() 28 { 29 for (count = 0; count < 5; count++) 30 { 31 yield return new WaitForSeconds(3); 32 /* テクスチャの読み込み */ 33 String fn = "CSV/coordinate"; 34 csvFile = Resources.Load(fn) as TextAsset; 35 StringReader reader = new StringReader(csvFile.text); 36 37 while (reader.Peek() > -1) 38 { 39 string line = reader.ReadLine(); 40 csvDatas.Add(line.Split(',')); 41 } 42 43 Debug.Log("コーディネート:" + csvDatas[0][0] + " " + csvDatas[0][1] + " " + csvDatas[0][2] + " " + csvDatas[0][3] + " " + csvDatas[0][4] + " "); 44 } 45 } 46} 47
試したこと
あらかじめ初期値をいれたファイルを用意して、上書きをするようにしてみましたが、初期値のままテクスチャが貼り付けられました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/21 09:12