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

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

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

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

Q&A

0回答

672閲覧

同一フレーム内でLineを複数生成した際の終点設定がうまくできない

tuna-uniko

総合スコア10

C#

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

0グッド

0クリップ

投稿2021/03/19 11:31

ゲーム内で複数同時にLineRendererを設定した同じオブジェクトを使用したいと考えています。そこで単純にLineRendererの設定を行うスクリプトにオブジェクト生成プログラムから設定を行うために必要な情報を送る、という形で組んでみたのですが、以下のような問題が起きています。
####問題について
長押しの音符を作るために始点を生成、同時に終点を生成する形を取っていますが、これが同じタイミングで複数同時に始点を作る処理を行うと別のレーンに作られた終点がスクリプトの処理上後から生成されている始点へLineを伸ばしてしまい、複数本を別々のレーンに一直線で並べることができていません。
・LineRenderer側ではノーツ生成プログラムから生成された始点の情報を取得し、始点のx座標を基にしてLineを設定します。
・タイミングデータを修正して片方を0.1秒ずらしてもこの現象が起こったため、フレーム単位で計算されていると考えました。
<ノーツ生成スクリプト(該当部分)>

C#

1void TestLongset(int x,GameObject lnotes,GameObject lnotee,float tim1,float tim2) //x:レーン番号 2 { 3 int basyoiti = 1; //オブジェクトの生成位置 4 float settime = 0; 5 switch (x) 6 { 7 case 0: 8 basyoiti = -4; 9mk = Instantiate(lnotes, new Vector3(basyoiti, 5.7f, -1), Quaternion.identity) as GameObject;  10//mkはpublc型で、LineRendererスクリプトで参照する始点オブジェクト 11 mkl = Instantiate(lnotee, new Vector3(basyoiti, 5.7f + settime, -1), Quaternion.identity) as GameObject; 12 lonx = mk.transform.position.x; //LineRendererのスクリプトで使用 13 break; 14 //以下caseは似た処理だけなので割愛 15       //mk2~mk5というpublic型GameObjectを個別に使用して同型の処理 16 } 17 nowx = x; //LineRendererスクリプト側で使用 18 }

<LineRendererの設定を行うスクリプト(該当部分)>=>prefab化されたオブジェクトに設定

C#

1//Start()内でこの処理を行う 2//_tesnotegoは工場スクリプトの情報を取得するtestnotenagasi型の変数 3 end2 = _tesnotego.mk; //mkの始点オブジェクト情報を取得 4 end3 = _tesnotego.mk2; //以下全て同様 5 end4 = _tesnotego.mk3; 6 end5 = _tesnotego.mk4; 7 end6 = _tesnotego.mk5; 8//以下、レーン位置によって個別のものを使用し、始点にLineの終点を合わせる

このようにして始点オブジェクトそのものの格納を分離しても処理上後から出てくる始点に対して両方のLineが伸びてしまいます。
起きている問題の画像
(処理構造は左から右へ進んでいますので、右にある音符が同一フレーム内で後から生成されたものです)

####実現したい事
長押しの帯を別々のレーンを流れる始点へ個別に合わせることですが、同時にできればこのまま1つのスクリプトでまとめてしまいたいと考えています。一番手っ取り早いのはスクリプトそのものを個別化することですが、手間がかかる上最終手段として考えているため、どちらのスクリプトを修正すればいいかで悩み続けています。

使用環境 Unity2019.1.5f1 Visual Studio

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問