CharacterController Manual     Reference     Scripting  
Scripting > Runtime Classes > CharacterController
CharacterController Inherits from Collider

A CharacterController allows you to easily do movement constrained by collisions without having to deal with a rigidbody.

A CharacterController is not affected by forces and will only move when you call the Move funtion. It will then carry out the movement but be constrained by collisions.

See Also: Character Controller component and Character animation examples

Variables
isGrounded

Was the CharacterController touching the ground during the last move?

velocity

The current relative velocity of the Character (see notes).

collisionFlags

What part of the capsule collided with the environment during the last CharacterController.Move call.

radius

The radius of the character's capsule

height

The height of the character's capsule

center

The center of the character's capsule relative to the transform's position.

slopeLimit

The character controllers slope limit in degrees

stepOffset

The character controllers step offset in meters

detectCollisions

Should other rigidbodies or character controllers collide with this character controller (By default always enabled)

Functions
SimpleMove

Moves the character with speed.

Move

A more complex move function taking absolute movement deltas.

Messages Sent
OnControllerColliderHit

OnControllerColliderHit is called when the controller hits a collider while performing a Move.

Inherited members
Inherited Variables
attachedRigidbody

The rigidbody the collider is attached to.

isTrigger

Is the collider a trigger?

material

The material used by the collider.

sharedMaterial

The shared physic material of this collider.

bounds

The world space bounding volume of the collider.

transform

The Transform attached to this GameObject (null if there is none attached).

rigidbody

The Rigidbody attached to this GameObject (null if there is none attached).

camera

The Camera attached to this GameObject (null if there is none attached).

light

The Light attached to this GameObject (null if there is none attached).

animation

The Animation attached to this GameObject (null if there is none attached).

constantForce

The ConstantForce attached to this GameObject (null if there is none attached).

renderer

The Renderer attached to this GameObject (null if there is none attached).

audio

The AudioSource attached to this GameObject (null if there is none attached).

guiText

The GUIText attached to this GameObject (null if there is none attached).

networkView

The NetworkView attached to this GameObject (Read Only). (null if there is none attached)

guiTexture

The GUITexture attached to this GameObject (Read Only). (null if there is none attached)

collider

The Collider attached to this GameObject (null if there is none attached).

hingeJoint

The HingeJoint attached to this GameObject (null if there is none attached).

particleEmitter

The ParticleEmitter attached to this GameObject (null if there is none attached).

gameObject

The game object this component is attached to. A component is always attached to a game object.

tag

The tag of this game object.

name

The name of the object.

hideFlags

Should the object be hidden, saved with the scene or modifiable by the user?

Inherited Functions
ClosestPointOnBounds

The closest point to the bounding box of the attached collider.

Raycast

Casts a Ray that ignores all Colliders except this one.

GetComponent

Returns the component of Type type if the game object has one attached, null if it doesn't.

GetComponent.<T>

GetComponent

Returns the component with name type if the game object has one attached, null if it doesn't.

GetComponentInChildren

Returns the component of Type type in the GameObject or any of its children using depth first search.

GetComponentInChildren.<T>

GetComponentsInChildren

Returns all components of Type type in the GameObject or any of its children.

GetComponentsInChildren.<T>

GetComponents

Returns all components of Type type in the GameObject.

GetComponents.<T>

CompareTag

Is this game object tagged tag?

SendMessageUpwards

Calls the method named methodName on every MonoBehaviour in this game object and on every ancestor of the behaviour

SendMessage

Calls the method named methodName on every MonoBehaviour in this game object.

BroadcastMessage

Calls the method named methodName on every MonoBehaviour in this game object or any of its children.

GetInstanceID

Returns the instance id of the object.

ToString

Returns the name of the game object.

Inherited Messages Sent
OnTriggerEnter

OnTriggerEnter is called when the Collider other enters the trigger.

OnTriggerExit

OnTriggerExit is called when the Collider other has stopped touching the trigger.

OnTriggerStay

OnTriggerStay is called almost all the frames for every Collider other that is touching the trigger.

OnCollisionEnter

OnCollisionEnter is called when this collider/rigidbody has begun touching another rigidbody/collider.

OnCollisionExit

OnCollisionExit is called when this collider/rigidbody has stopped touching another rigidbody/collider.

OnCollisionStay

OnCollisionStay is called once per frame for every collider/rigidbody that is touching rigidbody/collider.

Inherited Class Functions
operator bool

Does the object exist?

Instantiate

Clones the object original and returns the clone.

Instantiate.<T>

Destroy

Removes a gameobject, component or asset.

DestroyImmediate

Destroys the object obj immediately. It is strongly recommended to use Destroy instead.

FindObjectsOfType

Returns a list of all active loaded objects of Type type.

FindObjectOfType

Returns the first active loaded object of Type type.

operator ==

Compares if two objects refer to the same

operator !=

Compares if two objects refer to a different object

DontDestroyOnLoad

Makes the object target not be destroyed automatically when loading a new scene.