Создайте мир с LowLevelPhysics2D API
Примечание: Эта документация посвящена написанию C# скрипты с использованием LowLevelPhysics2D API. Использовать 2D физики в Unity Editor используя компоненты, такие как Rigidbody 2D компонент, см. 2D физика вместо этого.
Чтобы создать физические объекты с помощью LowLevelPhysics2D API, вам сначала нужно создать мир физики.
Предварительные условия
Перед созданием мира физики выполните следующие действия:
- Создать файл скрипта MonoBehaviour: в главном меню выберите Ассеты > Создать > C# Script.
- Чтобы импортировать пространство имен
LowLevelPhysics2DAPI, добавьтеusing UnityEngine.LowLevelPhysics2D;в начале скрипта.
Примечание: Вы можете использовать API в любом скрипте C#, а не только в файлах скриптов MonoBehaviour. Но если вы используете файл скрипта MonoBehaviour, вы можете настроить физические свойства в окне Inspector GameObject, переместить GameObjects и прикрепить спрайты.
Получить мир по умолчанию
Unity автоматически создает мир по умолчанию. Чтобы получить его, выполните следующие действия:
-
Получить
defaultWorldсвойства отPhysicsWorldclass.PhysicsWorld world = PhysicsWorld.defaultWorld; Прикрепите скрипт к GameObject в вашей сцене.
Для запуска скрипта перейдите в режим воспроизведения.
Чтобы изменить свойства мира, см. Настройка глобальных LowLevelPhysics2D API параметров.
Unity создает или восстанавливает мир по умолчанию в следующие моменты:
- При запуске редактора.
- При входе или выходе из режима воспроизведения.
- Когда запускается созданное приложение.
Создайте свой собственный мир
Чтобы создать свой собственный мир, выполните следующие действия:
-
Создайте публичный
PhysicsWorldDefinitionобъект, который содержит свойства мира и отображает их в Inspector окно. Например:public PhysicsWorldDefinition worldDefinition = new PhysicsWorldDefinition();Новое определение имеет набор значений по умолчанию. Например, для gravity установлено значение –9.81f. Дополнительные сведения об определениях и изменении значений по умолчанию см. в Настройка объектов с использованием определений.
Вы также можете использовать
PhysicsWorld.defaultDefinitionдля получения объекта определения со значениями по умолчанию. -
Создайте объект
PhysicsWorldс определением. Например:PhysicsWorld world = PhysicsWorld.Create(worldDefinition); Прикрепите скрипт к GameObject в вашей сцене.
-
Чтобы изменить свойства мира, измените значения в окне Inspector.
Чтобы настроить мир в скрипте, установите свойства объекта определения перед созданием мира. Дополнительные сведения см. в Настройка объектов с помощью определений.
Перейдите в режим Игра, чтобы запустить скрипт и создать мир.
Приостановка мира
Мир начинает работать, как только вы создаете его. Чтобы приостановить симуляцию, установите свойство 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);
}
}