void Update() { //Если ячеек нужное количество, то присваиваем предмету место if (Places.Count == PlacesCountNeeded) { Place = Places[My.Closest(gameObject, Places)]; } //Двигаем предмет по курсору if (GameMain.ItemInHand == gameObject.transform) { if (GameMain.Mouse) { ray = Camera.main.ScreenPointToRay(Input.mousePosition); } else { ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position); } if (Physics.Raycast(ray, out hit, 10, LayerMask.GetMask("Table"))) { transform.position = new Vector3(hit.point.x, 0.67f, hit.point.z); } } else //Если предмет не схвачен, то его либо в ячейку двигать, либо на место { if (Place) { transform.SetParent(Place.transform, true); transform.position = Vector3.Lerp(transform.position, Place.transform.position, 5 * Time.deltaTime); if (Vector3.Distance(transform.position, Place.transform.position) > 0.01f) { moving = true; } else { moving = false; } } else { transform.SetParent(null); transform.position = Vector3.Lerp(transform.position, Pos, 3 * Time.deltaTime); if (Vector3.Distance(transform.position, Pos) > 0.01f) { moving = true; } else { moving = false; } } } }