Hi, I have some trouble updating my project to 4.8 : I have some “ConstructObject is deprecated” in my compilation, and it say to use NewObject() instead.
I find it really weird since I’m using ConstructObject because it what everyone say to use instead of NewObject, and I have no idea how to use NewObject to match my actual code :
UStaticMeshComponent* comp = ConstructObject<UStaticMeshComponent>(UStaticMeshComponent::StaticClass(), this, *node->GetAttribute("name"));
comp->RegisterComponent();
comp->SetStaticMesh(Cast<UStaticMesh>(StaticLoadObject(UStaticMesh::StaticClass(), NULL, TEXT("/Engine/EngineMeshes/Cube.Cube"))));
comp->AttachTo(GetRootComponent(), NAME_None, EAttachLocation::KeepWorldPosition);
 
(this) reference a class that extends AActor()
Thanks for any help!
             
            
               
               
              1 Like 
            
            
           
          
            
            
              Hello, megatlantis
This change was made in order to simplify UObject creation. 
With NewObject, your code will look something like this:
UStaticMeshComponent* comp = NewNamedObject<UStaticMeshComponent>(this, *node->GetAttribute("name"));
 
If you like to learn more about UObject creation, please go here:
Also, if you want to learn more about 4.8 release notes, this might be useful:
Hope this helped!
Have a great day!
             
            
               
               
              1 Like 
            
            
           
          
            
            
              Thanks you, it’s working fine with this !
             
            
               
               
               
            
            
           
          
            
              
                wills  
                (wills)
               
              
                  
                    April 26, 2016, 10:41pm
                   
                   
              4 
               
             
            
              ConstructObject<> does provide you with more options, but you’re right, there is a compiler warning that suggests it is deprecated.
             
            
               
               
               
            
            
           
          
            
            
              return NewObject(InParent, Class, Name, Flags);
             
            
               
               
               
            
            
           
          
            
              
                Dexgecko  
                (Dexgecko)
               
              
                  
                    July 23, 2018,  5:46am
                   
                   
              6 
               
             
            
              I think NewNamedObject is deprecated now too in favor of NewObject
             
            
               
               
               
            
            
           
          
            
              
                Probezeit  
                (Probezeit)
               
              
                  
                    June 29, 2022,  7:25pm
                   
                   
              7