- Home /
 
               Question by 
               SyahirNoe · Oct 31, 2020 at 01:48 PM · 
                third-personthird person controllerthirdpersoncontroller  
              
 
              jump and gravity failure for Third Person Controller
It's okay at first i can double jump and the gravity works fine but then when I put the code for the player to move towards the camera view with the label "THIS PART" in the coding below, the jump function and gravity does't work anymore. Need help
 using System.Collections;
 using System.Collections.Generic;
 using UnityEditor.Experimental.GraphView;
 using UnityEngine;
 
 public class PlayerController : MonoBehaviour
 {   
     public CharacterController controller;
     public Transform cam;
 
     public float moveSpeed;
     public float jumpForce;
     public float gravityScale;
     public float turnSmoothTime = 0.1f;
     float turnSmoothVelocity;
    
     private Vector3 moveDirection;
     private bool doubleJump = false;
 
     void Start()    // Start is called before the first frame update
     {
         controller = GetComponent<CharacterController>();
     }
     
     void Update()   // Update is called once per frame
     {
         //move wasd control
         moveDirection = new Vector3(Input.GetAxisRaw("Horizontal") * moveSpeed, moveDirection.y, Input.GetAxisRaw("Vertical") * moveSpeed);
 
         if (moveDirection.magnitude >= 0.1f)
         {
             //smooth turn
             float targetAngle = Mathf.Atan2(moveDirection.x, moveDirection.z) * Mathf.Rad2Deg + cam.eulerAngles.y;
             float angle = Mathf.SmoothDampAngle(transform.eulerAngles.y, targetAngle, ref turnSmoothVelocity, turnSmoothTime) ;
             transform.rotation = Quaternion.Euler(0f, angle, 0f);
 
             //ground check
             if (controller.isGrounded)
             {
                 doubleJump = true;
                 moveDirection.y = 0f;
                 //jump
                 if (Input.GetButtonDown("Jump"))
                 {
                     moveDirection.y = jumpForce;
                 }
             }
             else 
             {
                 if (Input.GetButtonDown("Jump") && doubleJump)
                 {
                     moveDirection.y = jumpForce;
                     doubleJump = false;
                 }
             }
             
             //gravity
             moveDirection.y += Physics.gravity.y * gravityScale * Time.deltaTime ;   
 
             //move towards camera view 
             **//THIS PART**
             //Vector3 moveTowards = Quaternion.Euler(0f, targetAngle, 0f) * Vector3.forward;
             
             //moveDirection = Quaternion.Euler(0f, targetAngle, 0f) * Vector3.forward;
             
             //movement
             controller.Move(moveDirection.normalized * moveSpeed * Time.deltaTime);
 
         }
     }
 }
               Comment
              
 
               
              Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                