FreeMoveHandle() Quaternion rotation has no affect?

newVec3 = Handles.FreeMoveHandle(Base + new Vector3((float)APlot.Length * -0.5f,
(float)APlot.MaxHeight, (float)APlot.Width * -0.5f),
Quaternion,
HandleUtility.GetHandleSize(Base) * 1.5f,
new Vector3(0f,01f,0f),
Handles.ArrowHandleCap);

I’m calling this inside protected virtual void OnSceneGUI().

According to the Documentation, I should just be able to use Quaternion.Identity. All of the HandleCap functions behave this way and for some reason. Despite this dragging the handles does alter the Vector3.

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(APlotOfLandScript))]
public class APlotOfLandScriptEditor : Editor {

    APlotOfLandScript APlot;
    Vector3 Base;

    private Vector3 oldVec3;
    private Vector3 newVec3;

    void OnEnable()
    {
        APlot = (APlotOfLandScript)target;
        Base = APlot.transform.position;
        oldVec3 = new Vector3();
        newVec3 = new Vector3();
    }

    protected virtual void OnSceneGUI()
    {
        CreateHandles();
    }

    private void CreateHandles()
    {
        Handles.color = new Color(0.0f, 0.9f, 0.9f);
        newVec3 = Handles.FreeMoveHandle(Base + new Vector3((float)APlot.Length * -0.5f, (float)APlot.MaxHeight, (float)APlot.Width * -0.5f),
        Quaternion.LookRotation(APlot.gameObject.transform.up),
        HandleUtility.GetHandleSize(Base) * 1.5f,
        new Vector3(0f,01f,0f),
        Handles.ArrowHandleCap);
    }
}

Uhm pretty all IMGUI elements work the same way. You pass in the current value and the method returns the changed value. Currently the position you pass in is this:

Base + new Vector3((float)APlot.Length * -0.5f, (float)APlot.MaxHeight, (float)APlot.Width * -0.5f)

Also you don’t do anything with the returned value. The method can’t magically change the position you passed in.

About the rotation: The FreeMoveHandle actually ignores the passed in rotation. It always uses the rotation of the current Camera. As you can see over here during the repaint event (when the handle is drawn) it actually passes Camera.current.transform.rotation as orientation to the handle cap function. The FreeMoveHandle always works in a plane parallel to the camera plane.