//remember for cylinder, width (y - scale) is half of real public void Init(Vector3 position, float angle) { //следующее звено FixedJoint fixedjoint = GetComponent <FixedJoint>(); GameObject next = fixedjoint.connectedBody.gameObject; arm nextbehavior = fixedjoint.connectedBody.GetComponent <arm>(); //размещаем следующее звено next.transform.localScale = new Vector3(nextbehavior.width, nextbehavior.length, nextbehavior.width); next.transform.position = new Vector3(transform.position.x, transform.position.y + (diameter + nextbehavior.length) / 2, transform.position.z); //якорь шарнира fixedjoint.anchor = new Vector3(0.0f, 0.5f, 0.0f); //инициализируем следующие звенья nextbehavior.Init(position, angle); //поворачиваем вокруг вертикальной оси transform.RotateAround(position, Vector3.down, angle); }