(現在プレビュー版の)Unity Physics を試してみる
Unity Physics は 100% DOTSで実装された新しい Unity の物理エンジンです。
※GDCでの講演動画からの引用。
使い方
環境準備
対応しているのは Unity 2019.1 からなのでまだインストールしていない場合はインストールして下さい。
Unity エディタを起動し、メニューから Windows > Package Manager と選択。
Unity Physics はまだプレビュー版なので Advanced の所をクリック後、 Show preview package をクリックしてプレビュー版のパッケージも表示される様にします。
検索欄に Physics と入力して絞り込み、 install ボタンを押してインストールします。
試してみる
床に球を落とす簡単なサンプルを作ってみます。
まずは床を作ります。 Cube を作成し、 Scale を (20, 1, 20) に設定して下さい。
Unity Physics に差し替える為に Box Collider コンポーネントを削除し、Physics Shape コンポーネント、 Convert To Entity コンポーネントを追加します。
次に球を作ります。 Shpere を作成し、床の上に移動させます。
Sphere Collider コンポーネントを削除し、Physics Shape コンポーネント、 Convert To Entity コンポーネントを追加します。
Physics Shape コンポーネントの Shape Type を Sphere に変更します。
球は床とは異なり、重力の影響を受けるので Rigidbody に当たるものを追加します。
Unity Physics では Physics Body がそれに当たりますので Physics Body コンポーネントを追加して下さい。
この状態で実行してみると実行した瞬間、床と球が描画上も Hierarchy からも消えてしまう事が確認できます。
これはDOTS(というか ECS)では(ざっくりと言うと)今までの Unity の世界とは別の世界で動いてるからです。
ECS 世界でのレンダリングを今までの世界に持ってくる場合には Hybrid Renderer というパッケージが必要です。 Package Manager を開き、 Hybrid Renderer をインストールして下さい。
インストール後にもう一度実行すると正しくレンダリングされたオブジェクトが物理法則に則って落下するのが確認できるかと思います。
もっと色々と試してみたい場合には GitHub のこちらのリポジトリをクローンし、 UnityPhysicsExamples というフォルダのプロジェクトを実行してみて下さい。