/// <summary> /// 懐中電灯の回転 /// </summary> void FlashLightRotation() { #if UNITY_SWITCH && !(UNITY_EDITOR) //コントローラーの向きと同じ方向に回転する transform.localRotation = SwitchGyro.GetGyro(0); #endif var eulerAngles = transform.localEulerAngles; //X軸回転の制限 if (eulerAngles.x > rotLimitAbs.down && eulerAngles.x < 360 - rotLimitAbs.up) { eulerAngles.x = (eulerAngles.x < 180 ? rotLimitAbs.down : -rotLimitAbs.up); } //Y軸回転の制限 if (eulerAngles.y > rotLimitAbs.right && eulerAngles.y < 360 - rotLimitAbs.left) { eulerAngles.y = (eulerAngles.y < 180 ? rotLimitAbs.right : -rotLimitAbs.left); } //Z軸回転の制限 if (eulerAngles.z > rotLimitAbs.counterclockwise && eulerAngles.z < 360 - rotLimitAbs.clockwise) { eulerAngles.z = (eulerAngles.z < 180 ? rotLimitAbs.counterclockwise : -rotLimitAbs.clockwise); } transform.localEulerAngles = eulerAngles; }
void Update() { FlashLightRotation(); //Stick押し込みでリセット if (SwitchInput.GetButtonDown(0, SwitchButton.Stick)) { SwitchGyro.SetBaseGyro(0); } }