- Home /
Which character control method to use to constrain the movement to a circular path?
I'm building a 3d tower-jumping game. This basically means that the player's character jumps around a 3d cylinder (the tower), jumping on platforms protruding from this cylinder. My dilemma is choosing between possible character control solutions for this. I've came up with these 3:
The character is controlled by a CharacterController. The advantage of this is, that this way I get free detection of colliders (for the platfroms he jumps on). But only if I use the "Move()" method of the controller. If I just translate it around the cylinder - which would be the easiest way to handle movement- then I lose this advantage. So I've found a hacky way: I translate an invisible target object around the cylinder, and the CharacterControl always follows this by using "Move()". It does kinda work, but it doesn't seem the proper way to do this.
The character has a rigidbody attached, and I apply forces to this rigidbody to move it around. Reading up on different articles on platform-game creation, this is not a good way to handle the player's movement, since it usually doesn't move "realistically" and hard to get it right. In this case I would also need to make sure that the player stays around the cylinder and doesn't "drift off".
I use a standard game object and translate it around the tower, checking collisions by raycasting.
Which one of these possible solutions would be the best to handle this scenario? Or is there some other trivial way to handle this?
Your answer
![](https://koobas.hobune.stream/wayback/20220613072816im_/https://answers.unity.com/themes/thub/images/avi.jpg)