Densyakunのブログ

高校生プログラマの雑なブログです。ゲームを開発しています。

【Unity】100kunit(100000unit)以上の座標を使えない問題

こんにちは、電車君です。

実は、Unityには100kunit(100000unit)以上の座標を使えない問題があります。

 

transformの座標に100kunit以上の値を入力すると「Due to floating-point precision limitations, it is recommended to bring the world coordinates of the GameObject within a smaller range.」と警告文が出ます。

もちろん警告文ですので全くできないわけではないのですが、

インスペクタータブから該当オブジェクトをダブルクリックや4回クリックで原点に移動され、追跡することもできません。

 

僕は、すべてのものを小さくする、つまり1unit=10mといったような方法をやってみたのですが、

映像がおかしくなってしまい、まともにゲームとは言えなくなってしまいました(座標がカクカクになり、移動する物体がもぞもぞする)。

 

他にも縮尺を変えるなど、いろいろやってみたのですが、

結果的に「チャンクを導入し、座標を範囲内でループさせる」という方法になりました。

ただし、この方法ではマルチプレイなどでプレイヤー間の座標が異なってしまうため、そのへんを独自で対応させる必要があるかと思います。

 

映像さえおかしくならなければもう少し簡単だと思うのですが、

現時点で、-100kunit~100kunitを超える座標を使いたい場合には、この方法しかなさそうです。