How do I get pointer to PxScene in Nvidia PhysX API from Unreal Actor or component ?

Code For you, Using UWorld* To Get PhysX Scene

Dear Community,

PhysX Wiki

I’ve added to my PhysX Wiki showing you some code and additional #includes to use to get access to the PhysX Scene in a way where you can do low level multi-threaded PhysX coding!

's Wiki on PhysX Coding in UE4


**PhysX + UE4 Code For You!**

Here's the code that you can use to get started in multi-thread friendly way, please see my higher post for more places to look for PhysX code in the UE4 code base.



```


//PhysX 
#include "PhysXIncludes.h"

//For the ptou conversions
#include "PhysicsPublic.h"	

//For Scene Locking using Epic's awesome helper macros like SCOPED_SCENE_READ_LOCK
#include "Runtime/Engine/Private/PhysicsEngine/PhysXSupport.h"

void SomeClass::SomeFunction(UWorld* World)
{
  check(World); 
  //if crash here world was not valid, needs to be investigated, did it come from a UObject?

  FPhysScene* PhysScene = World->GetPhysicsScene();
 
  // Scene Lock for Multi-Threading
  PxScene* SyncScene = PhysScene->GetPhysXScene(PST_Sync);
  SCOPED_SCENE_READ_LOCK(SyncScene);

  //now you can use the PhysX scene in multi-threaded fashion within this function context!
  //  -
}


```



Note on UWorld*

Any Actor can easily just call GetWorld() to get you the UWorld* ptr



UWorld* World = YourActor->GetWorld();


UObjects can do the same but its not quite as reliable depending on the UObject


**Conclusion**

Have fun doing low level multi-threaded PhysX coding using the awesome Epic helper functions of PhysXSupport.h!

Enjoy!