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 ExampleClass : 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 public class ExampleClass(MonoBehaviour): def Update() as void: 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!')