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

Создайте мир с LowLevelPhysics2D API

Примечание: Эта документация посвящена написанию C# скрипты с использованием LowLevelPhysics2D API. Использовать 2D физики в Unity Editor используя компоненты, такие как Rigidbody 2D компонент, см. 2D физика вместо этого.

Чтобы создать физические объекты с помощью LowLevelPhysics2D API, вам сначала нужно создать мир физики.

Предварительные условия

Перед созданием мира физики выполните следующие действия:

  1. Создать файл скрипта MonoBehaviour: в главном меню выберите Ассеты > Создать > C# Script.
  2. Чтобы импортировать пространство имен LowLevelPhysics2D API, добавьте using UnityEngine.LowLevelPhysics2D; в начале скрипта.

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

Получить мир по умолчанию

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

  1. Получить defaultWorld свойства от PhysicsWorld class.

    PhysicsWorld world = PhysicsWorld.defaultWorld;
    
  2. Прикрепите скрипт к GameObject в вашей сцене.

  3. Для запуска скрипта перейдите в режим воспроизведения.

Чтобы изменить свойства мира, см. Настройка глобальных LowLevelPhysics2D API параметров.

Unity создает или восстанавливает мир по умолчанию в следующие моменты:

  • При запуске редактора.
  • При входе или выходе из режима воспроизведения.
  • Когда запускается созданное приложение.

Создайте свой собственный мир

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

  1. Создайте публичный PhysicsWorldDefinition объект, который содержит свойства мира и отображает их в Inspector окно. Например:

    public PhysicsWorldDefinition worldDefinition = new PhysicsWorldDefinition();
    

    Новое определение имеет набор значений по умолчанию. Например, для gravity установлено значение –9.81f. Дополнительные сведения об определениях и изменении значений по умолчанию см. в Настройка объектов с использованием определений.

    Вы также можете использовать PhysicsWorld.defaultDefinition для получения объекта определения со значениями по умолчанию.

  2. Создайте объект PhysicsWorld с определением. Например:

    PhysicsWorld world = PhysicsWorld.Create(worldDefinition);
    
  3. Прикрепите скрипт к GameObject в вашей сцене.

  4. Чтобы изменить свойства мира, измените значения в окне Inspector.

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

  5. Перейдите в режим Игра, чтобы запустить скрипт и создать мир.

Приостановка мира

Мир начинает работать, как только вы создаете его. Чтобы приостановить симуляцию, установите свойство paused объекта мира на true.

Пример

Следующий пример получает мир по умолчанию и регистрирует значение гравитации в окне Консоли.

using UnityEngine;
using UnityEngine.LowLevelPhysics2D;

public class GetDefaultWorld : MonoBehaviour
{
    void Awake()
    {
        // Fetch the default physics world
        PhysicsWorld world = PhysicsWorld.defaultWorld;

        // Log the gravity value to check the world is created
        Debug.Log("The gravity in this world is " + world.gravity);
    }    
}

Дополнительные ресурсы