void Builder(float delta) { if (!initLerp) { build_t += delta; if (build_t > build_Time) { build_t = 0; initLerp = true; bool interrupt = false; build_Count++; if (build_Count > buildAmount) { interrupt = true; } int _tx = curNode.x; int _ty = curNode.y; _tx = (movingLeft) ? _tx - 1 : _tx + 1; _ty++; startPos = transform.position; targetNode = gameControl.GetNode(_tx, _ty); if (targetNode.isEmpty == false || interrupt) { ChangeAbility(Ability.walker); return; } targetPos = gameControl.GetWorldPosFromNode(targetNode.x, targetNode.y); float dist = Vector3.Distance(startPos, targetPos); moveSpeed = build_Speed / dist; //Debug.Log(moveSpeed); List <Node> possibleNodes = new List <Node>(); for (int i = -1; i < 6; i++) { int size = _tx + i; Node n = gameControl.GetNode(size, curNode.y); if (n.isEmpty == true) { possibleNodes.Add(n); } } gameControl.AddPossibleNodesToSelection(possibleNodes); } } else { LerpIntoPosition(delta); } }