public void OnUpdate(IBulletController controller) { if (axis == Vector3.zero) { BulletStormLogger.LogErrorOnce($"{controller}: In Around axis module, axis can't be zero!"); return; } Vector3 axisInWorld; switch (space) { case Space.World: axisInWorld = axis; break; case Space.Self: axisInWorld = controller.Rotation * axis; break; default: throw new ArgumentOutOfRangeException(); } var angle = anglePerSecond * Time.deltaTime; controller.ChangeParam(param => { param.rotation = Quaternion.AngleAxis(angle, axisInWorld) * param.rotation; return(param); }); }