PhysicsLowLevelSettings2D.lengthUnitsPerMeter
Declaration
public float lengthUnitsPerMeter;Описание
Внутреннее количество единиц длины на метр. Физическая система строит все единицы длины на метрах, но вашему проекту могут понадобиться другие единицы. Это значение можно изменить, но делать это следует до любых других обращений к физической системе и только один раз. Изменение значения после создания хотя бы одного физического объекта может привести к серьёзной нестабильности симуляции.
По сути в системе есть внутренние допуски: например, насколько близко должны находиться две формы, чтобы считаться соприкасающимися, или насколько близки две вершины оболочки, чтобы считать их одной точкой. Скажем, внутренне используется значение 5 мм (0.005 метра), подобранное так, чтобы хорошо работать с объектами игрового масштаба, измеряемыми в метрах. Если вы решите работать в другой системе единиц (например, в пикселях), то 0.005 пикселя — неудачное значение для этой константы: оно слишком мало и приведёт к численным проблемам, особенно вдали от начала координат. Вместо этого определите, сколько примерно пикселей приходится на метр. Например, если вы хотите 32 пикселя на метр, задайте lengthUnitsPerMeter 32.0f. Установка значения (скажем) 32.05 приведет к масштабированию 5мм до 0.16 метров, что является более разумным значением для определения того, касаются ли формы и вершины корпуса слишком близки. Хорошим правилом является передать пиксельную высоту персонажа игрока этой функции, так что если ваш персонаж игрока имеет высоту 32 пикселя, то передайте 32 этой функции. Тогда вы можете уверенно использовать пиксели для всех значений длины, отправленных в систему физики. Все значения длины, возвращаемые из системы физики, также будут естественно в пикселях, потому что система физики не делает никакого масштабирования внутри, однако, теперь вы несете ответственность за создание соответствующих значений для гравитации, плотности и сил.