Unity, как динамично считать заполненность объекта(бутылки)?
|
|
SoDamnBerserk | Дата: Воскресенье, 07 Июня 2020, 08:02 | Сообщение # 1 |
уже был
Сейчас нет на сайте
| Всем привет! У меня есть бутылка на сцене, в нее сверху падают разные детали, но они иногда бывают рандомного размера, справа от бутылки UI Slider , в котором хотелось бы реализовать показ заполненности, т.е. например, упали в бутылку 3-4 детали и мы показываем на слайдере , что наполненность на 4%. Как это можно реализовать? Помогите пожалуйста, заранее спасибо.
|
|
| |
IlyaKos | Дата: Воскресенье, 07 Июня 2020, 10:55 | Сообщение # 2 |
участник
Сейчас нет на сайте
| Первое, что пришло в голову, создать две точки - "дно" и "горлышко".
максимальная высота = (горлышко - дно).у
Затем перебрать в цикле детали и их коллайдеры (или рендереры), чтобы получить наивысшую точку к горлышку через коллайдер (или рендерер).ClosestPoint (горлышко).
Когда получили, сравнить позиции У "дна" и найденной точки: высота = (точка - дно).y
тогда наполненность можно считать равной:
наполненность (%) = высота/ максимальная высота
Либо другая реализация, задаться объёмом бутылки и объемами каждой детали, и высчитывать суммарный занимаемый объём и делить на объём бутылки, чтобы получить процент наполненности.
Сообщение отредактировал IlyaKos - Воскресенье, 07 Июня 2020, 11:00 |
|
| |