public void Attach(CommonJoint joint) { commonJoint = joint; pivotObject = joint.GetPivotObject(); gameObject = joint.GetGameObject(); rotationInit = Quaternion.Inverse(pivotObject.transform.rotation) * gameObject.transform.rotation; }
//оставлено, чтобы поддержать старый вариант, поддерживает только физический тип соединения //вручную создаётся Joint, ancjor и axis выставляются вручную, а не автоматически в CommonJoint //axis обязана совпадать с локальным направлением вверх для шарнира(чаще цилиндра) т.е. Vector3.up //иначе мотор для физики неправильно будет управляться и изменятся направления в кинематике //у объекта должен быть единственный HingeJoint public void Attach(GameObject pivot, GameObject obj) { commonJoint = null; pivotObject = pivot; gameObject = obj; rotationInit = Quaternion.Inverse(pivotObject.transform.rotation) * gameObject.transform.rotation; }