Closed rennone closed 1 month ago
@rennone ソースコード、動作確認しました。 概ね動作に問題なさそうです。 ただ、3枚目の画像でスプラインが3本表示されているように見えます。 真ん中の線もスプラインでしょうか?
該当ゲームオブジェクト tran_a5db9946-7d49-40ab-b533-27cb338be07d
元のレーン
Visibleのみ有効
Show Splineを有効
こちら、中央の線が実際のスプライン. 両隣の線は、そこから0.5*widthずつずらしたものになります。 実際にスプラインの幅を確認するためのデバッグ表示です。
@rennone コメントありがとうございます。 問題のないのでコンフリクトを修復したらマージしても大丈夫です。 対応ありがとうございました。
https://github.com/Synesthesias/PLATEAU-SDK-for-Unity/pull/307 から派生しているので、↑のプルリクの後にマージをお願いします。
## 関連リンク https://synesthesias.atlassian.net/browse/PLTSDK3-158
実装内容
RnRoadGroup.TryCreateSpline関数のwidth計算で開始/終了のボーダーだけでなくスプラインのノット上の各点と左右のWayとの最近傍点を見てwidthを計算するように
マージ前確認項目
動作確認
RnRoadGroup.TryCreateSplineを使ってみる。 DebugDrawerでRoadOp -> ShowRoadGroup で Visible = true ShowSpline = true で仮でスプラインを計算して表示している。 ただし、幅を表示するのは各スプラインの点からtamを使って法線方向出して横に出すだけの単純処理なので正確なものではない。
その他
妥協点として、あくまでwidthは目安になります。 SplineとSegmentで正確な幅を出すのは難しいので各頂点だけで判断しています。