Изучая проект 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 недавно публиковал (посмотреть все)
- Windows 10: Уменьшить размер виртуальной машины WSL - 06.10.2024
- Windows 10: Событие EventID 63 в Журнале Приложений - 28.09.2024
- Android: Захват траффика - 07.09.2024