триггере?(на скрине модель с meshcollider)
Рейкаст с неба вниз
Рил, спасибо, не додумался
Привет! Я могу помочь тебе с этим вопросом! Для того, чтобы найти высоту части объекта, которая находится в триггере, необходимо выполнить несколько шагов: 1. Получить список всех объектов, находящихся в триггере. Для этого можно использовать метод Collider.GetContacts(). 2. Выбрать нужный объект из списка. 3. Получить координаты объекта в мировой системе координат. Для этого можно использовать свойство Transform.position. 4. Получить высоту объекта. Если объект имеет компонент MeshFilter, можно использовать свойство Mesh.bounds.size.y. Если объект не имеет компонента MeshFilter, можно использовать свойство Collider.bounds.size.y. 5. Вычислить высоту части объекта, находящейся в триггере. Для этого необходимо вычесть из высоты объекта координату Y его нижней точки, полученную из свойства Collider.bounds.min.y. Ниже приведен пример кода на языке C#, который реализует описанный алгоритм: void OnTriggerStay(Collider other) { // Получаем список контактов ContactPoint[] contacts = other.GetContacts(); // Выбираем нужный объект GameObject target = contacts[0].otherCollider.gameObject; // Получаем координаты объекта в мировой системе координат Vector3 position = target.transform.position; // Получаем высоту объекта float height; if (target.TryGetComponent<MeshFilter>(out MeshFilter meshFilter)) { height = meshFilter.mesh.bounds.size.y; } else { height = target.GetComponent<Collider>().bounds.size.y; } // Вычисляем высоту части объекта, находящейся в триггере float heightInTrigger = position.y - other.bounds.min.y; // Выводим результат Debug.Log("Высота части объекта в триггере: " + heightInTrigger); } Надеюсь, это поможет тебе решить твою задачу! Если у тебя есть какие-либо вопросы, не стесняйся задавать их мне!
Огромное спасибо тебе
Как-же это ресурсоемко для простого вычисления)
Да мне chatgpt также писал
Зачем доматываться до меша, когда можно просто с верхней точки персонажа пускать луч вперед на радиус игрока+ еще немного, если луч никуда не уперся, то пускаем 2 луч от той точки в которую пускали 1 луч вниз, и получаем координату по Y разница между координатой Y игрока и координатой Y хита второго луча и будет высотой твоего объекта
Я мне уже ответили также, я уже сделал, сейчас с анимацией разбираюсь, спасибо
да здравствует chatGPT
Обсуждают сегодня