Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by cjtcrosby68 · Oct 06, 2012 at 10:49 PM · controllercubethird-personracing3rd person controller

How would I make a 3rd person Controller that only moves up, down, left, and right?

Hello,

I'm making a game where you control a cube as it goes through a line of obstacles on it's way. It would be in 3D and the obstacles are other cubes popping out of the wall and would kinda have a racing feel to it. Now, I need to know how to make a 3rd person controller for a cube so that it only can move up, down, left, and right. It would not have any gravity yet not constantly having it keep moving after you press the button. Also, the controls would be W A S D. Thanks for any help.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

2 Replies

· Add your reply
  • Sort: 
avatar image
2

Answer by nixtwiz · Oct 06, 2012 at 10:57 PM

if you dont need any physics-based movement you could just use transform.position. That may cause some problems with collision though.

You could also use a rigidbody, set Use Gravity to false, make force applied only when the velocity is below the max speed (to limit speed), and then when the player is not pressing a button set the rigidbody's velocity to 0 so it doesn't keep moving when the button is no longer pressed with rigidbody.velocity = Vector3.zero.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image
0

Answer by TheDarkVoid · Oct 06, 2012 at 11:56 PM

I would recommend something like this, it uses a character controller and it goes in your `Update()` function:

         CharacterController Controller = GetComponent<CharacterController>();
         Vector3 dir = thisTransform.forward * curSpeed;
         if(Input.GetKey(KeyCode.W) && curSpeed < HighSpeed)
             curSpeed += Input.GetAxis("Vertical") * Acceleration * Time.deltaTime;
         if(Input.GetKey(KeyCode.S) && curSpeed > LowSpeed)
             curSpeed -= Input.GetAxis("Vertical") * Acceleration * Time.deltaTime;
         if(!Controller.isGrounded)
             dir.y -= Gravity * Time.deltaTime;
         Controller.Move(dir * Time.smoothDeltaTime);


You will need to define curSpeed, Gravity, HighSpeed, LowSpeed, Acceleration, and you may want to put set the Controller in the `Start()` function.

Comment
Add comment · Show 2 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image cjtcrosby68 · Oct 07, 2012 at 12:56 AM 0
Share

Could you put the entire script in there. I'm having trouble with defining the stuff. Thanks.

avatar image TheDarkVoid · Oct 07, 2012 at 01:42 PM 0
Share

Here is an even simpler script on the scripting ref: http://docs.unity3d.com/Documentation/ScriptReference/CharacterController.$$anonymous$$ove.html

YOu will also need to put the smoothFollow script on your camera and target your player.

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

12 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Guiding a sphere 2 Answers

Third Person Controller. Need Help 1 Answer

On screen button forward for a car (Android) 1 Answer

3rd person controller , movement issues 1 Answer

MMD How to export model and animations to Unity as 3rd person controller? 2 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges