Sunday, June 15, 2025
HomeGame developmentTwo Level Alignment Transformations

Two Level Alignment Transformations


I am making an attempt to find out the transformation steps (place, scale, rotation) wanted to be utilized to an object in order that two factors, regionally positioned in that object, line up with two world house positions.

The setup at present is:

  • E is a prefab with two rework kids (A, B)
  • Transforms C and D are additionally inside a prefab (F)
  • We’ve a world place, scale and rotation that F will instantiate with
  • Previous to any instantiation, calculate the transformation that should happen for E to finish up in the appropriate place.

Two Level Alignment Transformations

The answer I’ve in the meanwhile is shut however the rotation by no means appears to line up completely, affecting the positioning.

public static (Vector3, Quaternion, Vector3) GetChildPosLeg(
    Rework topReference, // A
    Rework bottomReference, // B
    Rework topTarget, // C
    Rework bottomTarget, // D
    Vector3 scale // Scale of root instantiated object
    )
{
    // World topTarget
    Vector3 topTargetPos = (Vector3.Scale(topTarget.place, scale));
    Vector3 bottomTargetPos = (Vector3.Scale(bottomTarget.place, scale));

    // Scale
    float refDist = Vector3.Distance(topReference.place, bottomReference.place);
    float targetDist = Vector3.Distance(topTargetPos, bottomTargetPos);

    float scaleRatio = targetDist / refDist;
    Vector3 finalScale = new Vector3(0.5f, 1f, 0.5f) * scaleRatio;

    // Rotation
    Vector3 targetDir = topTarget.place - bottomTarget.place;
    Vector3 refDir =  bottomReference.localPosition - topReference.localPosition;

    Quaternion objectRotation = Quaternion.FromToRotation(refDir, targetDir);

    // Place
    Vector3 childNodePos = Vector3.Scale(topReference.localPosition, finalScale);
    childNodePos = objectRotation * childNodePos;
    Vector3 finalPosition = topTargetPos + childNodePos;

    return (finalPosition, objectRotation, finalScale);
}



Supply hyperlink

RELATED ARTICLES

Most Popular

Recent Comments