17/12/28 02:49:46.90 mH5YII84.net
Invokeに1フレームかかるのか、1フレーム内で行う処理の量の問題なのか、
PCの性能の違いなのか、Unityのバージョンの違いなのかは不明だけど、
Rigidbody rb;
void Start() {
rb = GetComponent<Rigidbody>();
rb.angularVelocity = new Vector3(0, 0, 180 * Mathf.Deg2Rad);
Invoke ("Log", 1);
//Invoke("Log", 1 - Time.fixedDeltaTime);
}
void Log() {
rb.angularVelocity = Vector3.zero;
Debug.Log (rb.rotation);
Debug.Log(rb.rotation.eulerAngles.z);
}
本来、Z軸回転に180度/秒を入れて1秒間回転させて止めているわけだから、
Z軸の回転角は180が返るはずだけど、183.6という結果になってしまいます
Invoke("A", 1 - Time.fixedDeltaTime)で1フレームは早く呼ぶと、180が返るから、
おそらくInvokeで呼ぶ場合は、1フレーム遅れるんでしょうね・・・