UE4C++如何在靜態(tài)函數(shù)中SpawnActor-創(chuàng)新互聯(lián)

最近在學(xué)習(xí)用C++復(fù)刻YouTube上的一個藍(lán)圖庫存系統(tǒng),其中在從背包中丟棄槍械,然后在世界中生成一個槍械A(chǔ)ctor的時候遇到了問題,由于這個生成函數(shù)是在幾個不同的類中復(fù)用的,YouTube原版的做法是把這個函數(shù)寫在了GameState類里面,以實現(xiàn)隨處調(diào)用,但我思考了一下覺得把它用C++寫在UBlueprintFunctionLiberary子類里是一種更合適的做法。而問題也就在這時候出現(xiàn),在UBlueprintFunctionLiberary子類中一般都是使用靜態(tài)函數(shù),這就導(dǎo)致如果按一般C++中SpawnActor的方法寫會有錯誤

創(chuàng)新互聯(lián)客戶idc服務(wù)中心,提供簡陽服務(wù)器托管、成都服務(wù)器、成都主機托管、成都雙線服務(wù)器等業(yè)務(wù)的一站式服務(wù)。通過各地的服務(wù)中心,我們向成都用戶提供優(yōu)質(zhì)廉價的產(chǎn)品以及開放、透明、穩(wěn)定、高性價比的服務(wù),資深網(wǎng)絡(luò)工程師在機房提供7*24小時標(biāo)準(zhǔn)級技術(shù)保障。
GetWorld()->SpawnActor(Params...)

在靜態(tài)函數(shù)中使用GetWorld()操作非靜態(tài)成員變量會報錯call to non-static member function without an object argument,所以我們需要其他方法來SpawnActor,而這個方法就是UGamePlayStatic類中的BeginDeferredActorSpawnFromClass()函數(shù)以及FinishSpawningActor()函數(shù),以我在上述內(nèi)容中需要設(shè)計的函數(shù)為例,使用如下

.h
static AActor* SpawnActorFromItemObject(UItemObject* ItemObject, AActor* OriginLocationActor);

.cpp
AActor* UHelperFunctionLibrary::SpawnActorFromItemObject(UItemObject* ItemObject, AActor* OriginLocationActor)
{if (ItemObject && OriginLocationActor)
    {FVector SpawnLocation = OriginLocationActor->GetActorLocation() + OriginLocationActor->GetActorForwardVector() * 150;

        FTransform SpawnTransform(FRotator::ZeroRotator, SpawnLocation);
        
        //該函數(shù)向世界中注冊一個新Actor但不執(zhí)行Actor的初始化
        AActor* Actor = UGameplayStatics::BeginDeferredActorSpawnFromClass(OriginLocationActor->GetWorld(), ItemObject->ItemClass, SpawnTransform, ESpawnActorCollisionHandlingMethod::AdjustIfPossibleButAlwaysSpawn);
        
        return UGameplayStatics::FinishSpawningActor(Actor, SpawnTransform);//該函數(shù)完成Actor的初始化
    }

    return nullptr;
}

這樣就可以實現(xiàn)通過靜態(tài)函數(shù)在世界中SpawnActor
第一次寫,主要用于個人記錄,語言啰嗦,有大佬看到請見諒

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前題目:UE4C++如何在靜態(tài)函數(shù)中SpawnActor-創(chuàng)新互聯(lián)
文章源于:http://muchs.cn/article2/dpisic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)站營銷網(wǎng)站設(shè)計公司、ChatGPT移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司