So if we use
transform.Translate (new Vector3 (0, -distanceToRaise, 0), Space.World);
causes pins to be placed where they stopped before tidying. In real game we want lower pins spot they were when game started, so this is what i did instead.
private Quaternion pinStartRot;
private Vector3 pinStartPos;
void Start () {
rb = GetComponent<Rigidbody>();
pinStartRot = transform.rotation;
pinStartPos = transform.position;
}
public void Lower ()
{
transform.position = pinStartPos;
transform.rotation = pinStartRot;
rb.useGravity = true;
}
With this, pins will be set as they were at beginning, even they would have been moved a bit in a collision