Используйте transform.Translate
на ASO
с отрицательным положением BabyPrefab
в мировом пространстве для перемещения ASO
, так что позиция BabyPrefab
переходит в Vector3.zero
:
var _go = GameObject.Find("BabyPrefab");
var _arOrig = GameObject.Find("ASO");
_arOrig.transform.Translate(-_go.transform.position, Space.World);
Затем получите вращение мира BabyPrefab
в форме угла / оси:
float babyAngle;
Vector3 babyAxis;
_go.transform.rotation.ToAngleAxis(out babyAngle, out babyAxis);
Затем поверните ASO
вокруг этой оси, проходящей через Vector3.zero
, на отрицательное значение этого угла:
_arOrig.transform.RotateAround(Vector3.zero, babyAxis, -babyAngle);
Всего:
var _go = GameObject.Find("BabyPrefab");
var _arOrig = GameObject.Find("ASO");
_arOrig.transform.Translate(-_go.transform.position, Space.World);
float babyAngle;
Vector3 babyAxis;
_go.transform.rotation.ToAngleAxis(out babyAngle, out babyAxis);
_arOrig.transform.RotateAround(Vector3.zero, babyAxis, -babyAngle);