CollisionFlags 是 CharacterController.Move 返回的位掩码。
它为您提供了角色与其他任何对象发生碰撞的大致情况概览。
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) != 0) { print("Touching sides!"); }
if (controller.collisionFlags == CollisionFlags.Sides) { print("Only touching sides, nothing else!"); }
if ((controller.collisionFlags & CollisionFlags.Above) != 0) { print("Touching Ceiling!"); }
if (controller.collisionFlags == CollisionFlags.Above) { print("Only touching Ceiling, nothing else!"); }
if ((controller.collisionFlags & CollisionFlags.Below) != 0) { print("Touching ground!"); }
if (controller.collisionFlags == CollisionFlags.Below) { print("Only touching ground, nothing else!"); } } }