teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

本文内に間違った記述があったため修正、コードを追記

2020/11/20 07:43

投稿

tuna-uniko
tuna-uniko

スコア10

title CHANGED
File without changes
body CHANGED
@@ -1,37 +1,39 @@
1
1
  音楽ゲーム制作の方で前々から実装できなくて困っていることがあります。
2
- 曲開始から1.3秒のタイミングで4つ同時押しのような、複数のボタンを同時に押す横並びのノーツ群を生成する時、現在使用しているスクリプトではforの中身で変数が+1されるまでのわずかな差によって、読み込み用のjsonファイル内では全く同じ数値なのに階段のようにずれてしまいます。
2
+ 曲開始から1.3秒のタイミングで4つ同時押しのような、複数のボタンを同時に押す横並びのノーツ群を生成する時、現在使用しているスクリプトでは~~for~~**Update()**の中身で変数が+1されるまでのわずかな差によって、読み込み用のjsonファイル内では全く同じ数値なのに階段のようにずれてしまいます。
3
3
  ###使用コード
4
4
  ```C#
5
+ void Update(){
5
- time =trackon.GetComponent<AudioSource>().time; //曲開始からの時間
6
+ time =trackon.GetComponent<AudioSource>().time; //曲開始からの時間
6
7
 
7
- if (time >= eei[f]) //タイミングデータをもつ配列の要素と比較
8
+ if (time >= eei[f]) //タイミングデータをもつ配列の要素と比較
9
+ {
10
+ //numを参照
11
+ GameObject nt;
12
+ switch (rea[f]) //レーン情報をもつ配列の要素を確認
8
13
  {
9
- //numを参照
10
- GameObject nt;
11
- switch (rea[f]) //レーン情報をもつ配列の要素を確認
12
- {
13
- case 0:
14
+ case 0:
14
- basyo = -2f;
15
+ basyo = -2f;
15
- break;
16
+ break;
16
- case 1:
17
+ case 1:
17
- basyo = -0.25f;
18
+ basyo = -0.25f;
18
- break;
19
+ break;
19
- case 2:
20
+ case 2:
20
- basyo = 1.5f;
21
+ basyo = 1.5f;
21
- break;
22
+ break;
22
- case 3:
23
+ case 3:
23
- basyo = 3.23f;
24
+ basyo = 3.23f;
24
- break;
25
+ break;
25
- case 4:
26
+ case 4:
26
- basyo = 4.98f;
27
+ basyo = 4.98f;
27
- break;
28
+ break;
28
- default:
29
+ default:
29
- basyo = 3.6f;
30
+ basyo = 3.6f;
30
- break; //ノーツ生成位置をレーン情報に合わせて設定
31
+ break; //ノーツ生成位置をレーン情報に合わせて設定
31
- }
32
+ }
32
- nt = Instantiate(mi,new Vector3(basyo, 5.7f, -0.2f),Quaternion.identity) as GameObject;
33
+ nt = Instantiate(mi,new Vector3(basyo, 5.7f, -0.2f),Quaternion.identity) as GameObject;
33
- noteGo.Add(nt); //リスト化
34
+ noteGo.Add(nt); //リスト化
34
- f += 1; //次のノーツへ
35
+ f += 1; //次のノーツへ
36
+ }
35
37
  }
36
38
  ```
37
39
  以上の書き方でノーツを生成していますが、この書き方だと前述の通り横一直線にならずずれた階段状で流れてきてしまいます。生成をレーン数に合わせて分割する方法では同様のまま、後続のノーツタイミングを確認するものに関してはノーツエディタなどを使用していない手打ちのため同時押しのつもりがずれていることもあり無理でした。特に3レーンと5レーンの場合が特に厄介で、階段状のずれが起きているせいで譜面認識がまともにできない状況です。
@@ -40,4 +42,7 @@
40
42
  変数fの更新によって起こる生成のずれをなくし、同時押しの時は何個であっても全て横一列に並んで降ってくるようにするコードを実装したいです。
41
43
 
42
44
  使用環境
43
- Unity2019.1.5f1 VisualStudio
45
+ Unity2019.1.5f1 VisualStudio
46
+ 追記
47
+ ソース内の処理に関しての説明にて間違いの記述をしていたため、そちらを修正しました
48
+ (✕ for ◯ Update())                   2020.11.20