Я знаю, что в Character Controller есть булева переменная isGrounded, которая определяет, стоит ли персонаж на каком-либо объекте. Так вот, можно ли как-то получить объект, на котором стоит персонаж?
Выбирай, что необходимо по задаче:
OnControllerColliderHit (связан с Character Controller) - вызывается тогда, когда контроллер сталкивается с коллайдеров, во время выполнения метода Move
void OnControllerColliderHit(ControllerColliderHit hit) {
if (hit.normal.y > 0.9f) // 0.9 можно изменить на другое значение
varobjectStanding = hit.collider.gameObject;
}
OnCollisionEnter - вызывается, когда этот collider/rigidbody начал соприкосновение с другим rigidbody/collider.
void OnCollisionEnter(Collision collision) {
// collision - содержит инфу https://docs.unity3d.com/ru/current/ScriptReference/Collision.html
Debug.Log(collision.gameObject.name);
}
OnCollisionStay - вызывается один раз в кадр для каждого collider/rigidbody, который касается другого rigidbody/collider.
void OnCollisionStay(Collision collisionInfo) {
// collisionInfo - содержит инфу https://docs.unity3d.com/ru/current/ScriptReference/Collision.html
Debug.Log(collisionInfo.gameObject.name);
}
Physics.Raycast :
RaycastHit hit; // будет содержать инфу https://docs.unity3d.com/ru/530/ScriptReference/RaycastHit.html
Physics.Raycast(transform.position, Vector3.down, out hit, distanceToGround + 0.1f);
Debug.Log(hit.collider.gameObject);
еще есть OnTriggerEnter и OnTriggerStay
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости