public void Move() { if (path.Count > 0) { Block t = path.Peek(); Vector3 target = t.transform.position; if (Vector3.Distance(transform.position, target) >= 0.05f) { bool jump = transform.position.y != target.y; if (jump) { Jump(target); } else { CalculateHeading(target); SetHorizotalVelocity(); } //Locomotion transform.forward = heading; transform.position += velocity * Time.deltaTime; } else { //Block center reached transform.position = target; path.Pop(); } } else { RemoveSelectableBlocks(); moving = false; TurnManager.EndTurn(); } }
protected void Init() { halfHeight = GetComponent <Collider>().bounds.extents.y; TurnManager.AddUnit(this); }