title: Unity rotation screwing up when multiplying an angle by a decimal
body: <p>I am making an FPS game and I am trying to make an attachment that reduces recoil on weopons. The recoil pattern is based on an array of transforms with their rotation determining how much the players rotation will change. The problem is that when I multiply the recoil patterns rotations by a modifier value the player rotation will jump around at extreme angles. <strong>This only happens when the modifier value has a decimal and not when it is a whole number.</strong></p>
  <pre><code>void Recoil()
  {
      StopCoroutine(SprayPatternTimer(0));
      Quaternion lastRot = Quaternion.Euler(user.playerLook.eyes.localEulerAngles.x, user.playerLook.playerBody.localEulerAngles.y, 0);
      float sprayX = sprayPattern[sprayIndex].localEulerAngles.x * recoilModX; //multiplying the x and y rotation by the rotation modifiers
      float sprayY = sprayPattern[sprayIndex].localEulerAngles.y * recoilModY;
  
      user.playerLook.eyes.rotation = Quaternion.Euler(
          sprayX + user.playerLook.eyes.rotation.eulerAngles.x, //here I am changing the players x rotation by the modified transforms rotation
          user.playerLook.eyes.localEulerAngles.y,
          user.playerLook.eyes.localEulerAngles.z);
  
      user.playerLook.playerBody.rotation = Quaternion.Euler(
          user.playerLook.playerBody.rotation.eulerAngles.x,
          sprayY + user.playerLook.playerBody.localEulerAngles.y, //here I am changing the players y rotation by the modified transforms rotation
          user.playerLook.playerBody.localEulerAngles.z);
     
      Quaternion nowRot = Quaternion.Euler(user.playerLook.eyes.localEulerAngles.x, user.playerLook.playerBody.localEulerAngles.y, 0);
  
      sprayIndex++;
      StartCoroutine(SprayPatternTimer(0.5f));
      if(sprayIndex &gt;= sprayPattern.Length)
      {
          sprayIndex = 0;
      }
  }
  </code></pre>
  <p>The problem is on lines 5-16</p>