Closed TORISOUP closed 1 year ago
【現象】
【原因】
こちらのツイートでも言及されているとおり、Owner委譲時にUdonSyncedの値が初期値(Vector3.Zero)に戻ることがあるみたいです。実際にManualObjectSyncを使ってこの現象が発生するか試しましたが、localScaleがゼロになってしまう現象が起きました。
1行目がOwner情報、2行目がPosition、3行目がlocalScaleの値です。所有権が他人に移ったタイミングで、一瞬だけUdonSyncedValueが初期化された状態でOnDeserializeが発火するみたいです。
【対策】
実際のlocalScaleの値と_syncScale の値がズレていたとしてもOwner側でそれを補正する処理がなかったので、OnPreSerialization()を定義してそこで値を補正するようにしました。
localScale
_syncScale
OnPreSerialization()
0.2.8バージョンで初期化と同期の関係を見直し、こちらの問題も同時に解消されたと思います。 そのためこちらのPRはクローズさせていただきます。
【現象】
【原因】
こちらのツイートでも言及されているとおり、Owner委譲時にUdonSyncedの値が初期値(Vector3.Zero)に戻ることがあるみたいです。実際にManualObjectSyncを使ってこの現象が発生するか試しましたが、localScaleがゼロになってしまう現象が起きました。
1行目がOwner情報、2行目がPosition、3行目がlocalScaleの値です。所有権が他人に移ったタイミングで、一瞬だけUdonSyncedValueが初期化された状態でOnDeserializeが発火するみたいです。
【対策】
実際の
localScale
の値と_syncScale
の値がズレていたとしてもOwner側でそれを補正する処理がなかったので、OnPreSerialization()
を定義してそこで値を補正するようにしました。