• 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 /
  • Help Room /
avatar image
0
Question by adamanderson16 · Oct 03, 2019 at 03:28 AM · character controller

When I press left and right to move, the player moves forward slightly. I'd like the player not to move forward at all when I go left and right.

My script makes the player move forward a tiny amount, when I press right and left. I can't figure out how to adjust the script to make the player only move along the x and y, and not move towards the z axis when left and right are pressed.Can someone help me find where the error lies and what is needed to fix it?

using System.Collections; using System.Collections.Generic; using UnityEngine;

public class PlayerControl : MonoBehaviour {

 private CharacterController _characterController;

 public float Speed = 5.0f;

 public float RotationSpeed = 240.0f;

 private float Gravity = 80.0f;

 private Vector3 _moveDir = Vector3.zero;
 
 //changes
 
 //attempting to move while in air
 public float verticalVelocity = 0;
 private Vector3 jumpVelocity = Vector3.zero;
 
 //particle effect on death
 public GameObject deathParticles;
 
 //spawn player position
 private Vector3 spawn;

 // Use this for initialization
 void Start()
 {
     _characterController = GetComponent<CharacterController>();
 }

 // Update is called once per frame
 void Update()
 {
     // Get Input for axis
     float h = Input.GetAxis("Horizontal");
     float v = Input.GetAxis("Vertical");

     // Calculate the forward vector
     Vector3 camForward_Dir = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized;
     Vector3 move = v * camForward_Dir + h * Camera.main.transform.right;

     if (move.magnitude > 1f) move.Normalize();

     // Calculate the rotation for the player
     move = transform.InverseTransformDirection(move);

     // Get Euler angles
     float turnAmount = Mathf.Atan2(move.x, move.z);

     transform.Rotate(0, turnAmount *  RotationSpeed * Time.deltaTime, 0);

     if (_characterController.isGrounded)
     {

         _moveDir = transform.forward * move.magnitude;

         _moveDir *= Speed;
         
         if (Input.GetButton("Jump"))
         {
             _moveDir.y = Speed * 1.5f;
         }

     } else if (_characterController.isGrounded == false)
                 {
                     //_moveDir.x = Input.GetAxis("Horizontal") * Speed;
                     //_moveDir.z = Input.GetAxis("Vertical") * Speed;
                 
                     
                     _moveDir.x = transform.forward.x * move.magnitude;
                     _moveDir.z = transform.forward.z * move.magnitude;

                     _moveDir.x *= Speed;
                     _moveDir.z *= Speed;
                 }

     _moveDir.y -= Gravity * Time.deltaTime;

     _characterController.Move(_moveDir * Time.deltaTime);
 }
 
 void OnCollisionEnter(Collision other) 
 {
     if (other.transform.tag == "Enemy")
     {
         Die ();
     }
 }
 
 void OnTriggerEnter(Collider other)
 {
     if(other.transform.tag == "Goal")
     {
         GameManager.CompleteLevel();
     }
 }
 
 void Die()
 {
     Instantiate(deathParticles, transform.position, Quaternion.identity);
     transform.position = spawn;            
 }
 
 

}

adam

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

0 Replies

· Add your reply
  • Sort: 

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.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

181 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image 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

Character Cannot Move from its Spot 0 Answers

Switching platforms causes so many errors why? 0 Answers

How would i clamp X and Z without clamping Y? 1 Answer

I'm having issues making my Character Controller for my FPS.,I'm having issues with my Character Controller, and i'm not sure how to fix it. 0 Answers

How can I get simple character controler? 0 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