예제 #1
0
    protected void Init()
    {
        tiles      = GameObject.FindGameObjectsWithTag("Tile");
        halfHeight = GetComponent <Collider>().bounds.extents.y;

        TurnManger.AddUnit(this);
    }
예제 #2
0
    public void Move()
    {
        if (path.Count > 0)
        {
            TileScript t      = path.Peek();
            Vector3    target = t.transform.position;

            target.y += halfHeight + t.GetComponent <Collider>().bounds.extents.y;

            if (Vector3.Distance(transform.position, target) >= 0.05f)
            {
                bool jump = transform.position.y != target.y;

                if (jump)
                {
                    Jump(target);
                }
                else
                {
                    CalculateHeading(target);
                    SetHorizontalVelocity();
                }
                transform.forward   = heading;
                transform.position += velocity * Time.deltaTime;
            }
            else
            {
                transform.position = target;
                path.Pop();
            }
        }
        else
        {
            RemoveSelectableTiles();
            moving = false;
            TurnManger.EndTurn();
        }
    }