Unity で 3D ゲームオブジェクトをスピンしようとしています。それは実際には、ポーカー チップのテクスチャーがついた円柱です。レイキャストと衝突したら、360 度回転させたいと思います。Unity エミュレーターでは正常に動作していますが、デバイス自体では、チップはスピン後に停止し、無限ループでスピンし続けます。問題のコードのスニペットを次に示します。事前に助けてくれてありがとう。
// Spin the chip
if (Animate) {
if (Speed > 0 && Chip.tag.Contains("Chip")) {
Chip.transform.Rotate(0, Speed*Time.deltaTime, 0);
Speed -= 3;
Debug.Log(Speed);
}
else {
// Reset
Animate = false;
Speed = 360;
Chip.transform.localRotation = Quaternion.Euler(0.0,0.0,0.0);
}
}
これを要約すると、レイキャストなどで衝突するとゲームオブジェクトチップが割り当てられます
// Set the chip
Chip = hit.transform;
すべては update 関数で行われます。レイキャストがヒットすると、賭け関数が呼び出され、賭けが計算された後、Boolean Animate が true に変更され、チップが回転します。