Example #1
0
        public override ActorStateWorld Execute(ActorWorld actor, Vector3 mapSize)
        {
            // Debug.Log("update : StateIdle");
            ActorStateWorld next = this;


            if (!actor.IsMoving)
            {
                int dx = 0, dz = 0, rotY = 0;
                actor.GetMove(out dx, out dz, out rotY);
                actor.restrictMove(mapSize, ref dx, ref dz);

                if (dx != 0 || dz != 0 || rotY != 0)
                {
                    actor.m_trueNextRotY += rotY;
                    actor.smoothMove(dx, dz, rotY);
                }
            }

            if (actor.IsMoving)
            {
                next = new StateWorldMove();
            }

            return(next);
        }
    public virtual void Execute(Vector3 mapSize)
    {
        ActorStateWorld next = m_actorStateWorld.Execute(this, mapSize);

        if (next != m_actorStateWorld)
        {
            m_actorStateWorld.Exit();
            m_actorStateWorld = next;
            m_actorStateWorld.Enter();
        }
    }
Example #3
0
        //mapSizeは使わない
        public override ActorStateWorld Execute(ActorWorld actor, Vector3 mapSize)
        {
            //Debug.Log("update : StateMove");
            ActorStateWorld next = this;

            if (!actor.IsMoving)
            {
                next = new StateWorldIdle();
            }

            return(next);
        }