예제 #1
0
        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();
            }
        }
예제 #2
0
        protected void Init()
        {
            halfHeight = GetComponent <Collider>().bounds.extents.y;

            TurnManager.AddUnit(this);
        }