CollisionFlags это битовая маска, полученная из CharacterController.Move.
Это дает широкий обзор того, где именно ваш персонаж столкнулся с какими-либо другими объектами.
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 sides!"); 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)!=0) print("Touching sides!"); if (controller.collisionFlags == CollisionFlags.Sides) print("Only touching sides, nothing else!"); if ((controller.collisionFlags & CollisionFlags.Above)!=0) print("Touching sides!"); 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!"); } }
None | CollisionFlags это битовая маска, полученная из CharacterController.Move. |
Sides | CollisionFlags это битовая маска, полученная из CharacterController.Move. |
Above | CollisionFlags это битовая маска, полученная из CharacterController.Move. |
Below | CollisionFlags это битовая маска, полученная из CharacterController.Move. |