I'm trying to create a simple tank based game and basically I wan't to have a tank move forward with W, back with S, turn right with D and left with A in a simple world (the floor will always be the same height and the walls are quite simple) my problem is I've tried to implement it before and always had some problems with it not behaving exactly as it should. My question is what is the best practice way to do it: by using a Rigidbody and AddForce, or by using a Character Controller, or by just manually setting the positions and handling collisions myself?
Thanks, in advance :) - James
Hi James, as with many issues in Unity there are many ways to approach it. Part of the solution relies on the kind of terrain / environment the tank will be covering - whats your plan? This may alter whether you should use wheel colliders, primitive colliders, raycasting.. etc?
Answer by aldonaletto
May 27, 2011 at 12:59 PM
Believe me, the Character Controller is easier to use. Just add the prefab Standard Assets/Character Controllers/First Person Controller to your scene. It has built-in controls which allows left-right and forth-back movimentation, but doesn't turn. You can disable or delete the 3 built-in scripts and add this one:
private var controller: CharacterController;
var speed: float = 6.0;
var turnSpeed: float = 90;
controller = GetComponent(CharacterController);
var movDir: Vector3;
movDir = transform.forward*Input.GetAxis("Vertical")*speed;
// moves the character in horizontal direction
It's very simple, but does the job: it goes forth and back, turns to right and left, and DOESN'T jump, which would be very strange for a thank!
Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.
The best place to ask and answer questions about development with Unity.
To help users post good questions and use the site effectively we have posted a user guide.
If you are a new user, check out our FAQ for more information.
If you are a moderator, see our Moderator Guidelines page.
We are making improvements to UA, see the list of changes.
For troubleshooting common problems with Unity 5.x Editor (including Win 10).
Answers and Comments
3 People are following this question.
RigidBody Character Controller Bug
Character Controller children of a car: Inertia effect, delay effect, what???
Rigidbody move Character Controller
turn on and off character controller
jet pack physics with character controller