Rotation optimization

Hi everyone, I am only at the beginning with programming. I decided to make a Robot controller and wrote a code to rotate its parts, everything works greate, but I don’t know how to optimize this code or maybe there are some better solution to solve this issue?
Sorry for my bad english.

public PartInfo[] mechParts = new PartInfo[5];

void FixedUpdate () {
            if (aiming == true)
            {
                foreach (PartInfo part in mechParts)
                {
                    if (part.canRotate == true && part.mechPart != null)
                    {
                        RotateParts(part.mechPart, part.rotSpeed, part.can_RotateX, part.limX, part.minX, part.maxX, part.angleX,
                            part.can_RotateY, part.limY, part.minY, part.maxY, part.angleY);
                    }
                }
            }
     }
  private void RotateParts(Transform part, float rotSpeed, bool canX, bool limX, float minX, float maxX, float angleX, bool canY, bool limY, float minY, float maxY, float angleY)
    {
        Vector3 dir = aimPoint.position - part.transform.position;

        // Create new rotation towards the target
        Quaternion TargetRotation = Quaternion.LookRotation(dir, Vector3.up);
        Quaternion NewRotation = Quaternion.Slerp(part.rotation, TargetRotation, rotSpeed * Time.fixedDeltaTime);

        // Set the new rotation of the base.
        part.rotation = NewRotation;

        if (canX == true)
        {
            //Clamp rotation
            if (limX == true)
            {
                angleX = Mathf.Clamp(ClampAngle(part.localEulerAngles.x),  maxX, minX);
                angleX = RoundFloatToDecimal(angleX, 2);
            }
            else
            {
                angleX = RoundFloatToDecimal(part.localEulerAngles.x, 2);
            }
        }
        else
        {
            angleX = 0;
        }

        if(canY == true)
        {
            if (limY == true)
            {
                angleY = Mathf.Clamp(ClampAngle(part.localEulerAngles.y),  maxY, minY);
                angleY = RoundFloatToDecimal(angleY, 2);
            }
            else
            {
                angleY = RoundFloatToDecimal(part.localEulerAngles.y, 2);
            }
        }
        else
        {
            angleY = 0;
        }

        // Rotate
        part.localEulerAngles = new Vector3(angleX, angleY, 0f);
    }

[System.Serializable] 
public class PartInfo
{
    public string name;

    public Transform mechPart;

    [Header("Rotation Speed")]
    public float rotSpeed = 5f;
    public float returToIdleSpeedRot = 20f;

    [Header("Rotation Limits")]
    public bool canRotate;
    public bool can_RotateX; // if is true than enable limits X
    public bool limX;
    public bool can_RotateY; // if is true than enable limits Y
    public bool limY;
    //vertical roratition
    [Range(10.0f, 90.0f)]
    public float minX = 60f;
    [Range(-10.0f, -90.0f)]
    public float maxX = -60f;
    public float angleX;
    //horizontal rorattion
    [Range(0.0f, 20.0f)]
    public float minY = 4f;
    [Range(0.0f, -20.0f)]
    public float maxY = -4f;
    public float angleY;
}

Welcome to Unity community.

First optimization would be, add indentations to your code.
However, if it works, what is your current concern?

Thank you for your answer.
I want to try to make the code cleaner.