Unity.PhysicsをFixedUpdateさせる



Unity Physics 0.4.1-preview時点ではUnityPhysicsはフレームレート依存の挙動をするので従来のPhysXのようにフレームレートによらず一定間隔で物理シュミレートする場合以下のスクリプトを書いておく必要がある。
 
using Unity.Entities;

public class UnityPhysicsFixedUpdateSystem : SystemBase
{
    bool done = false;

    protected override void OnUpdate()
    {
        if (!done)
        {
            FixedRateUtils.EnableFixedRateWithCatchUp(World.GetOrCreateSystem(), UnityEngine.Time.fixedDeltaTime);
            done = true;
        }
    }
}
これはコンポーネントシステムなのでゲームオブジェクト等にアタッチする必要はない。

コメント

このブログの人気の投稿

Unityで移動速度とアニメーション速度を同期させて足滑りを防ぐ方法

Unityでソウルライクが作りたい人のためのカメラスクリプト