void Update() { if (!isMoving) { return; } if (currentTime < 0) { SetPosition(currentPosition); currentPathIndex++; if (currentPathIndex >= path.Length) { isMoving = false; // сменим позицию куба в сетке _grid.MoveCube(oldPosition, newPosition); } else { currentPosition = path[currentPathIndex]; currentTime = movingTime; } return; } SetPosition(Vector3.Lerp(transform.position, currentPosition, Time.deltaTime / currentTime)); currentTime -= Time.deltaTime; }
private void ProcessTargetClick() { switch (PreviousEditorMode) { case EditorModes.Move: { if (!_selectedObject) { break; } _grid.MoveCube(_selectedObject.transform.position, _markerPosition); break; } case EditorModes.Connect: { BoxClasses.BaseBox component = _selectedObject.GetComponentInChildren <BoxClasses.BaseBox>(); if (component.CanBeConnected()) { GameObject targetObject = _grid.GetCubeAt(_markerPosition); component.ConnectTo(targetObject); } break; } } EditorMode = PreviousEditorMode; }