LowLevelPhysics2D API рабочий процесс
Создайте 2D сцену, которая симулирует физику с помощью LowLevelPhysics2D API.
Выполните следующие действия:
- Включить библиотеку LowLevelPhysics2D в скрипт C#.
- Создайте 2D мир физики.
- Создайте физические объекты и добавьте их в мир.
- Настройка объектов с определениями.
- Присоедините скрипт к GameObject, затем перейдите в режим воспроизведения.
Включить библиотеку LowLevelPhysics2D
В скрипте C#добавьте using UnityEngine.LowLevelPhysics2D; вверху, чтобы включить библиотеку LowLevelPhysics2D.
Вы можете использовать LowLevelPhysics2D API в любом скрипте C#, а не только в файлах скриптов MonoBehaviour. Но если вы используете файл скрипта MonoBehaviour, вы можете настроить свойства физики в окне Inspector GameObject, переместить GameObjects и прикрепить спрайты.
Создать мир физики 2D
Чтобы добавить физические объекты 2D, сначала необходимо создать объект PhysicsWorld, в который их добавить. Выполните одно из следующих действий:
- Используйте мир, который Unity автоматически создает.
- Создайте новый мир.
Дополнительные сведения см. в Создание физического мира.
Создание физических объектов
Чтобы добавить физические объекты в мир, выполните следующие действия:
- Создайте объект
PhysicsBody, который определяет положение, вращение и скорость объекта. Он не определяет область. - Присоедините один или несколько объектов
PhysicsShapeкPhysicsBody, которые определяют область, взаимодействующую с другими фигурами. Unity также рисует фигуры в качестве отладочной визуализации. - Добавь тело к миру, который ты создал.
Дополнительные сведения см. в Создание физического объекта.
Настройка объектов с определениями
Чтобы настроить свойства мира и его физических объектов, создайте объекты определения, например PhysicsBodyDefinition. Объекты определения содержат свойства, такие как position и gravity, которые вы можете настроить в Unity Editor, или передать в объект при его создании.
Чтобы настроить свойства в окне Inspector, сделайте объект определения полем public.
Дополнительные сведения см. в Настройка объектов с использованием определений.
Присоедините скрипт к GameObject
Чтобы начать симуляцию, вы обычно прикрепляете скрипт к GameObject в вашей сцене, затем вводите режим Play.
По умолчанию физические объекты не перемещают GameObject. Чтобы физический объект обновил компонент Transform компонента GameObject, см. Перемещение GameObject с LowLevelPhysics2D API.
Чтобы добавить спрайт, см. Добавить спрайт к объекту.
Пример
Следующий пример создает небольшой круг, который падает под действием силы тяжести на большой круг. Прикрепите скрипт к GameObject в вашей сцене, затем перейдите в режим воспроизведения.
using UnityEngine;
using UnityEngine.LowLevelPhysics2D;
public class Example2DPhysics : MonoBehaviour
{
void Start()
{
// Create the world
PhysicsWorld world = PhysicsWorld.defaultWorld;
// Create a body in the world, with a definition object that sets the position and enables physics
PhysicsBody object1 = world.CreateBody(new PhysicsBodyDefinition
{
position = new Vector2(0.5f, 8f),
type = PhysicsBody.BodyType.Dynamic
});
// Attach a circle shape to the first body
PhysicsShape object1shape = object1.CreateShape(new CircleGeometry());
// Create a second body in the world, with a definition object that sets the position and disables physics
PhysicsBody object2 = world.CreateBody(new PhysicsBodyDefinition
{
position = new Vector2(0f, 0f),
type = PhysicsBody.BodyType.Static
});
// Attach a circle shape to the second body
object2.CreateShape(new CircleGeometry {
radius = 3f,
});
}
}
Дополнительные ресурсы
- PhysicsCore2D хранилище на GitHub