Изучая проект AngryBots, я обратил внимание, что у объекта «polySurface5097», который является поверхностью пола, и по которому перемещается главный персонаж, нет коллайдера. Т.е. если на нем окажется главный персонаж, то он провалится сквозь пол. Однако этого не происходило.
Я отфильтровал объекты по типу, включив в фильтр только коллайдеры, но легче не стало — их все равно было слишком много. Тогда я решил проверить, какой коллайдер не позволяет персонажу проваливаться сквозь пол. Для этого я добавил к объекту «Player» скрипт ColliderLog.cs:
using UnityEditor;
using UnityEngine;
public class ColliderLog : MonoBehaviour
{
private void OnCollisionEnter(Collision collisionInfo)
{
// Force select COLLIDER gameObject
Selection.activeObject = collisionInfo.gameObject;
Debug.Log("*--> " + gameObject.name + " collided with " + collisionInfo.gameObject.name);
EditorGUIUtility.PingObject(collisionInfo.gameObject);
}
}
После запуска игры в окне иерархии был выделен объект Colliders->»Cube», который содержал в себе компонент «Box Collider»:
DenTNT недавно публиковал (посмотреть все)
- C#: Сравнить два массива - 12.12.2024
- EVE-Online: Фильтры каналов - 23.11.2024
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024