Unityでの質問です。
今、音ゲーの譜面作成モードのようなものを作っています。
そこで、クリックしてクリックしたところにノーツを生成、別のキーを押してクリックした場所のノーツを削除、そしてその生成したノーツをscvファイルを使ってセーブすることまではできました。今回はここまでは間違ってないということでお願いします。
そこでロードを実装しました。結果としてはセーブしたノーツを座標も同じで生成することができました。ですがノーツを消すことがある一定座標を過ぎるとできなくなってしまいます。
ノーツの削除は以下のような感じでクリックした座標(少しのずれを許容)とノーツのY座標を比較して同じだった場合削除します。
C#
1 if (Input.GetButton("Fire2")) 2 { 3 if (touchWorldPosition.x > -2.4f && touchWorldPosition.x < -1.2f) 4 { 5 for (i = 0; i < notes.Count; i++) 6 { 7 //-4.27fは一番下にノーツを置いたときのノーツの座標 8 //yposにはマウスでクリックしたy座標 9 //下イメージの縦1メモリが0.5f 10 //note[]には今生成されているノーツが入ってる 11 for (q = -4.27f; q <= ypos; q += 0.5f) { } 12 //Debug.Log() 13 if (notes[i].transform.position == new Vector3(-1.8f, q - 0.25f, 0)) 14 { 15 Destroy(notes[i]); 16 notes.RemoveAt(i); 17 savefile.RemoveAt(i); //Saveに使う 18 i = notes.Count + 1; 19 } 20 } 21 }
詳しく書くと、例えばノーツの生成場所が(-1.8,293.48,0)だとしてDebug.Logでクリックしたy座標を調べて(-1.8,293.48)だったとしてもノーツが消えないです。大体全体のy座標250あたりから消えないようになります。処理が追い付いてないというわけでもなく単純に消えないです。ロードしても消えるノーツがあるだけに訳が分からないです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/16 14:37