• 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 Mushakushi · Aug 30, 2019 at 12:17 AM · unity 5physicscharactercontrollergravity3d model

Gravity still being applied with unity CharacterController

I am making fairly simple character controller using Unity's built-in CharacterController. It uses a base class, PhysicsObject, for physics handling and a child class, PlayerController, to handle user input and animation. My approach is very similar, in function, to this 2D platformer controller tutorial. Here is my code:
Physics Object

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class PhysicsObject : MonoBehaviour
 {
     [SerializeField] protected PlayerController playerController; 
     [SerializeField] protected CharacterController controller;
 
     [Header("Movement")]
     [SerializeField] protected float moveSpeed;
     [SerializeField] protected Vector3 direction;
 
     [Header("Jumping")]
     [SerializeField] protected float jumpForce;
     [SerializeField] protected float fallMultiplier;
     [SerializeField] protected float lowJumpMultiplier;
 
     [SerializeField] protected bool isGrounded;
     [SerializeField] protected float maxDistance;
 
     [Header("Animation")]
     [SerializeField] protected Animator animator;
 
     private void Awake()
     {
         controller = playerController.GetPlayerController();
         animator = playerController.GetPlayerAnimator();
 
         isGrounded = false; 
     }
     
     void FixedUpdate()
     {
 
         //Check ground
         if (direction.x > controller.minMoveDistance || direction.z > controller.minMoveDistance)
         {
             isGrounded = Physics.Raycast(transform.position, Vector3.down, maxDistance);
         }
 
         //Obtain user input
         MoveDirection();
 
         //Apply user input
         controller.Move(direction * Time.deltaTime);
     }
 
     protected virtual void Animate()
     {
 
     }
 
     protected virtual void MoveDirection()
     {
 
     }
 
 }

Player Controller

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class PlayerController : PhysicsObject
 {
 
     public CharacterController GetPlayerController()
     {
         return gameObject.GetComponent<CharacterController>(); 
     }
 
     public Animator GetPlayerAnimator()
     {
         return gameObject.GetComponent<Animator>(); 
     }
     
     protected override void MoveDirection()
     {
         //Jumping
         if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
         {
             direction.y = jumpForce; 
         }
         else
         {
             direction.y = 0f; 
         }
 
         //Movement
         direction = new Vector3(Input.GetAxis("Horizontal") * moveSpeed, direction.y, Input.GetAxis("Vertical") * moveSpeed);
     }
 
     protected override void Animate()
     {
 
     }
 }

I am using the Unity-chan model as my player character. As you can see in the PhysicsObject, I am using CharacterController.Move(); to move the character -- however gravity is being applied! I tried attaching the two scripts to another 3d object, a box, and no gravity was applied. However, for some odd reason, when I use Unity-chan as the player character gravity is applied to her. Please, help!

PS: this is my first question: sorry if it's sloppy.

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

280 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 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

Physics and gravity of my 3D model 0 Answers

Funfair simulation help 0 Answers

FPS Character Controller with the push DOWN rigidbodies ability 0 Answers

Character Controller problem when jumping 1 Answer

Should my character controller slide down a ramp when I apply gravity to it? 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