Tile based movement


I currently use the CharacterControl for movement and collision detection for the player.

Now I want to switch the player to tile based movement with methods moveTileDown(), moveTileUp(), moveTileLeft() und moveTileRight().

Now when I call moveTileDown() once I want the player object to move 1.6 in the z-direction and then stop. I would also like to choose the speed with which my character moves one tile down.

How should I implement this? Can/Should I use the CharacterControl’s setMoveDirection() method for this or is there a control with better methods to implement this? I also would like to keep my collision detection.