Unity 6.3
0 онлайн 25 гостей 3 в системе
Вход

LowLevelPhysics2D API рабочий процесс

Создайте 2D сцену, которая симулирует физику с помощью LowLevelPhysics2D API.

Выполните следующие действия:

  1. Включить библиотеку LowLevelPhysics2D в скрипт C#.
  2. Создайте 2D мир физики.
  3. Создайте физические объекты и добавьте их в мир.
  4. Настройка объектов с определениями.
  5. Присоедините скрипт к GameObject, затем перейдите в режим воспроизведения.

Включить библиотеку LowLevelPhysics2D

В скрипте C#добавьте using UnityEngine.LowLevelPhysics2D; вверху, чтобы включить библиотеку LowLevelPhysics2D.

Вы можете использовать LowLevelPhysics2D API в любом скрипте C#, а не только в файлах скриптов MonoBehaviour. Но если вы используете файл скрипта MonoBehaviour, вы можете настроить свойства физики в окне Inspector GameObject, переместить GameObjects и прикрепить спрайты.

Создать мир физики 2D

Чтобы добавить физические объекты 2D, сначала необходимо создать объект PhysicsWorld, в который их добавить. Выполните одно из следующих действий:

  • Используйте мир, который Unity автоматически создает.
  • Создайте новый мир.

Дополнительные сведения см. в Создание физического мира.

Создание физических объектов

Чтобы добавить физические объекты в мир, выполните следующие действия:

  1. Создайте объект PhysicsBody, который определяет положение, вращение и скорость объекта. Он не определяет область.
  2. Присоедините один или несколько объектов PhysicsShape к PhysicsBody, которые определяют область, взаимодействующую с другими фигурами. Unity также рисует фигуры в качестве отладочной визуализации.
  3. Добавь тело к миру, который ты создал.

Дополнительные сведения см. в Создание физического объекта.

Настройка объектов с определениями

Чтобы настроить свойства мира и его физических объектов, создайте объекты определения, например 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