Ejemplo n.º 1
0
 protected void WaitMeshLoadUpdate(float deltaTime)
 {
     if (MeshAsset != null && MeshAsset.GetAsset().IsLoaded)
     {
         SetPhysicsFromLoadedMesh();
         m_loadWaitUpdateScope.Disconnect();
         m_loadWaitUpdateScope = null;
     }
 }
Ejemplo n.º 2
0
 public override void Init()
 {
     base.Init();
     if (MeshAsset == null || MeshAsset.GetAsset() == null || !MeshAsset.GetAsset().IsLoaded)
     {
         m_physicsMesh           = new InstancedMesh(PhysicsStatics.DummyInstancedMesh);
         m_physicsMesh.Sidedness = TriangleSidedness.Clockwise;
     }
     InvalidateCollider();
     m_transform.OnPositionChanged += OnPositionChanged;
     m_transform.OnRotationChanged += OnRotationChanged;
 }
Ejemplo n.º 3
0
 protected override void InvalidateCollider()
 {
     if (MeshAsset != null && MeshAsset.GetAsset() != null)
     {
         if (MeshAsset.GetAsset().IsLoaded)
         {
             SetPhysicsFromLoadedMesh();
         }
         else if (m_loadWaitUpdateScope == null)
         {
             m_loadWaitUpdateScope = World.UpdateScheduler.Connect(WaitMeshLoadUpdate, EUpdatePriority.Earliest);
         }
     }
     else
     {
         m_physicsMesh.Shape = PhysicsStatics.DummyInstancedMesh;
     }
 }