CollisionFlags is a bitmask returned by CharacterController.Move.
It gives you a broad overview of where your character collided with any other objects.
function Update () {
var controller : CharacterController = GetComponent(CharacterController);
if (controller.collisionFlags == CollisionFlags.None)
print("Free floating!");
if (controller.collisionFlags & CollisionFlags.Sides)
print("Touching sides!");
if (controller.collisionFlags == CollisionFlags.Sides)
print("Only touching sides, nothing else!");
if (controller.collisionFlags & CollisionFlags.Above)
print("Touching ceiling!");
if (controller.collisionFlags == CollisionFlags.Above)
print("Only touching ceiling, nothing else!");
if (controller.collisionFlags & CollisionFlags.Below)
print("Touching ground!");
if (controller.collisionFlags == CollisionFlags.Below)
print("Only touching ground, nothing else!");
}
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
void Update() {
CharacterController controller = GetComponent<CharacterController>();
if (controller.collisionFlags == CollisionFlags.None)
print("Free floating!");
if (controller.collisionFlags & CollisionFlags.Sides)
print("Touching sides!");
if (controller.collisionFlags == CollisionFlags.Sides)
print("Only touching sides, nothing else!");
if (controller.collisionFlags & CollisionFlags.Above)
print("Touching ceiling!");
if (controller.collisionFlags == CollisionFlags.Above)
print("Only touching ceiling, nothing else!");
if (controller.collisionFlags & CollisionFlags.Below)
print("Touching ground!");
if (controller.collisionFlags == CollisionFlags.Below)
print("Only touching ground, nothing else!");
}
}
import UnityEngine
import System.Collections
class example(MonoBehaviour):
def Update():
controller as CharacterController = GetComponent[of CharacterController]()
if controller.collisionFlags == CollisionFlags.None:
print('Free floating!')
if controller.collisionFlags & CollisionFlags.Sides:
print('Touching sides!')
if controller.collisionFlags == CollisionFlags.Sides:
print('Only touching sides, nothing else!')
if controller.collisionFlags & CollisionFlags.Above:
print('Touching ceiling!')
if controller.collisionFlags == CollisionFlags.Above:
print('Only touching ceiling, nothing else!')
if controller.collisionFlags & CollisionFlags.Below:
print('Touching ground!')
if controller.collisionFlags == CollisionFlags.Below:
print('Only touching ground, nothing else!')