PhysicsDirectSpaceState3D
Прямые запросы физического мира 3D.
PhysicsDirectSpaceState3D предоставляет запросы мира, к которому относится viewport. Получайте его через GetWorld3D().DirectSpaceState у сущности в нужном мире. Выполняйте запрос в подходящей физической фазе; при потоковой симуляции пространство может быть заблокировано.
IntersectRay использует мировые From/To и возвращает пустой Dictionary при промахе. При попадании проверяйте ключи и тип collider. Для последующей отложенной работы учитывайте, что найденный объект может быть удалён. Геометрия, только что перемещённая вне физического шага, не обещает немедленного обновления всех данных мира.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Методы12
CastMotionfloat[]
public float[] CastMotion(PhysicsShapeQueryParameters3D parameters);Проверяет, насколько далеко Shape3D может двигаться без столкновений. Все параметры для запроса, включая форму и движение, предоставляются через объект PhysicsShapeQueryParameters3D.
Возвращает массив с безопасными и небезопасными пропорциями (от 0 до 1) движения. Безопасная пропорция — это максимальная часть движения, которую можно выполнить без столкновений. Небезопасная пропорция — это минимальная часть расстояния, которое необходимо пройти для столкновения. Если столкновение не обнаружено, будет возвращен результат [1.0, 1.0].
Примечание: Любые Shape3D, с которыми фигура уже сталкивается, например, внутри, будут игнорироваться. Используйте PhysicsDirectSpaceState3D.CollideShape, чтобы определить Shape3D, с которыми фигура уже сталкивается.
| Имя | Тип | По умолчанию |
|---|---|---|
parameters | PhysicsShapeQueryParameters3D | — |
float[]CastMotionIntobool
public bool CastMotionInto(PhysicsShapeQueryParameters3D parameters, PhysicsCastMotionResult3D result);Проверяет, как далеко Shape3D Все параметры запроса, включая форму и движение, предоставляются через а. PhysicsShapeQueryParameters3D объект.
Если запрос удовлетворен, этот метод возвращает true и записывает результаты движения в PhysicsCastMotionResult3D объект передан в result. Если столкновения не происходит, оно возвращается false.
Примечание: Любой Shape3Ds Что форма уже вступает в коллизию с, например, внутри, будет проигнорирована. PhysicsDirectSpaceState3D.CollideShapeInto для определения Shape3DС тем, что форма уже вступает в противоречие.
| Имя | Тип | По умолчанию |
|---|---|---|
parameters | PhysicsShapeQueryParameters3D | — |
result | PhysicsCastMotionResult3D | — |
boolCollideShapeReckfell.Collections.Array<Vector3>
public Reckfell.Collections.Array<Vector3> CollideShape(PhysicsShapeQueryParameters3D parameters, int maxResults = 32);Проверяет пересечения формы, заданной через объект PhysicsShapeQueryParameters3D, с пространством. Результирующий массив содержит список точек, в которых форма пересекает другую. Как и в случае с PhysicsDirectSpaceState3D.IntersectShape, количество возвращаемых результатов может быть ограничено для экономии времени обработки.
Возвращаемые точки представляют собой список пар точек контакта. Для каждой пары первая находится в форме, переданной в объект PhysicsShapeQueryParameters3D, вторая — в столкновенной форме из физического пространства.
Примечание: Этот метод не учитывает свойство motion объекта.
| Имя | Тип | По умолчанию |
|---|---|---|
parameters | PhysicsShapeQueryParameters3D | — |
maxResults | int | 32 |
Reckfell.Collections.Array<Vector3>CollideShapeIntobool
public bool CollideShapeInto(PhysicsShapeQueryParameters3D parameters, PhysicsCollideShapeResult3D result);Проверяет пересечения формы, получаемой через a PhysicsShapeQueryParameters3D Объект, против пространства.
При обнаружении перекрестков этот метод возвращает true и записывает точки столкновения в PhysicsCollideShapeResult3D объект передан в result. Если перекрестки не найдены, они возвращаются false.
Число возвращенных результатов может быть ограничено с использованием PhysicsCollideShapeResult3D.MaxCollisions, чтобы сократить время обработки.
Примечание: Данный метод не учитывает motion - свойство объекта.
| Имя | Тип | По умолчанию |
|---|---|---|
parameters | PhysicsShapeQueryParameters3D | — |
result | PhysicsCollideShapeResult3D | — |
boolGetRestInfoReckfell.Collections.Dictionary
public Reckfell.Collections.Dictionary GetRestInfo(PhysicsShapeQueryParameters3D parameters);Проверяет пересечения фигуры, заданной через объект PhysicsShapeQueryParameters3D, с пространством. Если она сталкивается с несколькими фигурами, выбирается ближайшая. Возвращаемый объект представляет собой словарь, содержащий следующие поля:
collider_id: идентификатор сталкивающегося объекта.
linear_velocity: скорость сталкивающегося объекта Vector3. Если объект является Area3D, результатом будет (0, 0, 0).
normal: нормаль столкновения фигуры запроса в точке пересечения, направленная от пересекающегося объекта.
point: точка пересечения.
rid: Rid пересекающегося объекта.
shape: индекс фигуры сталкивающейся фигуры.
Если фигура ничего не пересекла, то вместо этого возвращается пустой словарь.
Примечание: Этот метод не учитывает свойство motion объекта.
| Имя | Тип | По умолчанию |
|---|---|---|
parameters | PhysicsShapeQueryParameters3D | — |
Reckfell.Collections.DictionaryGetRestInfoIntobool
public bool GetRestInfoInto(PhysicsShapeQueryParameters3D parameters, PhysicsGetRestInfoResult3D result);Проверяет пересечения формы, получаемой через a PhysicsShapeQueryParameters3D Объект, против пространства.
Если форма коллидирует с одной или несколькими формами, этот метод возвращается. true и записывает ближайшую информацию о столкновении PhysicsGetRestInfoResult3D объект передан в result. Если столкновения не происходят, они возвращаются false.
Примечание: Данный метод не учитывает motion - свойство объекта.
| Имя | Тип | По умолчанию |
|---|---|---|
parameters | PhysicsShapeQueryParameters3D | — |
result | PhysicsGetRestInfoResult3D | — |
boolIntersectPointReckfell.Collections.Array<Reckfell.Collections.Dictionary>
public Reckfell.Collections.Array<Reckfell.Collections.Dictionary> IntersectPoint(PhysicsPointQueryParameters3D parameters, int maxResults = 32);Проверяет, находится ли точка внутри какой-либо сплошной фигуры. Положение и другие параметры определяются через PhysicsPointQueryParameters3D. Фигуры, внутри которых находится точка, возвращаются в массиве, содержащем словари со следующими полями:
collider: сталкивающийся объект.
collider_id: идентификатор сталкивающегося объекта.
rid: Rid пересекающегося объекта.
shape: индекс сталкивающейся фигуры.
Количество пересечений можно ограничить параметром max_results, чтобы сократить время обработки.
| Имя | Тип | По умолчанию |
|---|---|---|
parameters | PhysicsPointQueryParameters3D | — |
maxResults | int | 32 |
Reckfell.Collections.Array<Reckfell.Collections.Dictionary>IntersectPointIntobool
public bool IntersectPointInto(PhysicsPointQueryParameters3D parameters, PhysicsIntersectPointResult3D result);Проверяет, находится ли точка в какой-либо твердой форме. PhysicsPointQueryParameters3D.
Если одна или несколько форм пересекают точку, этот метод возвращает true и записывает данные о пересечении PhysicsIntersectPointResult3D объект передан в result. Если перекрестки не найдены, они возвращаются false.
Количество перекрестков может быть ограничено с использованием PhysicsIntersectPointResult3D.MaxIntersections, чтобы сократить время обработки.
| Имя | Тип | По умолчанию |
|---|---|---|
parameters | PhysicsPointQueryParameters3D | — |
result | PhysicsIntersectPointResult3D | — |
boolIntersectRayReckfell.Collections.Dictionary
public Reckfell.Collections.Dictionary IntersectRay(PhysicsRayQueryParameters3D parameters);Проверяет мировой отрезок и возвращает Dictionary: пустой при промахе, данные collider/position/normal и формы при попадании. Перед чтением проверьте результат и тип объекта.
| Имя | Тип | По умолчанию |
|---|---|---|
parameters | PhysicsRayQueryParameters3D | — |
Reckfell.Collections.DictionaryIntersectRayIntobool
public bool IntersectRayInto(PhysicsRayQueryParameters3D parameters, PhysicsIntersectRayResult3D result);Пересекает луч в данном пространстве. Расовое положение и другие параметры определяются через PhysicsRayQueryParameters3D.
Если луч попадает в форму, этот метод возвращается true и записывает информацию о пересечении PhysicsIntersectRayResult3D объект передан в result. Если ничего не происходит, он возвращается false.
| Имя | Тип | По умолчанию |
|---|---|---|
parameters | PhysicsRayQueryParameters3D | — |
result | PhysicsIntersectRayResult3D | — |
boolIntersectShapeReckfell.Collections.Array<Reckfell.Collections.Dictionary>
public Reckfell.Collections.Array<Reckfell.Collections.Dictionary> IntersectShape(PhysicsShapeQueryParameters3D parameters, int maxResults = 32);Проверяет пересечения формы, заданной через объект PhysicsShapeQueryParameters3D, с пространством. Пересеченные формы возвращаются в массиве, содержащем словари со следующими полями:
collider: сталкивающийся объект.
collider_id: идентификатор сталкивающегося объекта.
rid: Rid пересекающегося объекта.
shape: индекс формы сталкивающейся формы.
Количество пересечений можно ограничить параметром max_results, чтобы сократить время обработки.
Примечание: Этот метод не учитывает свойство motion объекта.
| Имя | Тип | По умолчанию |
|---|---|---|
parameters | PhysicsShapeQueryParameters3D | — |
maxResults | int | 32 |
Reckfell.Collections.Array<Reckfell.Collections.Dictionary>IntersectShapeIntobool
public bool IntersectShapeInto(PhysicsShapeQueryParameters3D parameters, PhysicsIntersectShapeResult3D result);Проверяет пересечения формы, получаемой через a PhysicsShapeQueryParameters3D Объект, против пространства.
Если обнаруживается, что одна или несколько форм пересекаются, этот метод возвращает true и записывает данные о пересечении PhysicsIntersectShapeResult3D объект передан в result. Если не обнаруживается пересекающихся форм, она возвращается false.
Количество перекрестков может быть ограничено с использованием PhysicsIntersectShapeResult3D.MaxIntersections, чтобы сократить время обработки.
Примечание: Данный метод не учитывает motion - свойство объекта.
| Имя | Тип | По умолчанию |
|---|---|---|
parameters | PhysicsShapeQueryParameters3D | — |
result | PhysicsIntersectShapeResult3D | — |
bool