Debug.Log()で直る奇怪なバグに遭遇した話
Unityでシーンを組み立てていたところ、WindowsとMacで描画が変わってしまう現象に遭遇。
調べた結果、見たことがない類のバグだったので、まとめておく。
バグの内容
Mathf.Atan2()の計算結果が変ってしまう。
その結果、OverCloudという天候を制御するアセットで、月の位置が大きくズレた。具体的には、このくらい。


再現条件
Macbook Pro M1 MAX (2021 16inch)
Unity2020.3.24f1
アセット OverCloud (https://assetstore.unity.com/packages/tools/particles-effects/overcloud-137742?locale=ja-JP) 使用中に発生。
原因
原因は不明。(いや、マジで。)
対策
OverCloud.cs L:4316(UpdateOrbital()メソッド)にある
float v = Mathf.Atan2( yv, xv );
の直後に
Debug.Log("");
を記載するだけ。(いや、マジで。)
所感
Debug.Log()のあるなしで計算値が変わっちゃったので、アセット依存の問題では無いと思われる。
別のところで遭遇する可能性も考えられるのが怖いところ。
ディスカッション
コメント一覧
まだ、コメントがありません