1. 程式人生 > >UE4學習筆記3——問題及解決方案

UE4學習筆記3——問題及解決方案

以外掛名 SimpleWindow 為例:

  • 編譯無法通過,可能是沒有新增 *PCH.h 預編譯檔案頭,在 Private 目錄下新建檔案:外掛名+PrivatePCH.h 的檔案,即SimpleWindowPrivatePCH.h ,內容為:
#include "SimpleWindow.h"

// UObject core
#include "CoreUObject.h" //預設是不含這個的

// Actor based classes
#include "GameFramework/Character.h" //包外掛中所有用的的引擎類都丟到這裡來

//預先定義日誌巨集
DEFINE_LOG_CATEGORY_STATIC(MyLog, Warning, All);

        使用方法:在後新增的所有自定義 .cpp 檔案頭新增此檔案,即 

#include "SimpleWindowPrivatePCH.h"
  • 無法開啟原始檔 XX.h ,右擊專案->屬性->VC++目錄,在包含目錄新增 $(ProjectDir); 如下圖:

  • 自定義Slate常用相關標頭檔案
#include "DeclarativeSyntaxSupport.h"  //Slate巨集語法支援
#include "SCompoundWidget.h" //混合視窗型別
#include "SBoxPanel.h" //UI佈局型別,例如水平、垂直、覆蓋
  • 獲取場景中Actor例項的兩種方法
#include "Kismet/GameplayStatics.h"
#include "Runtime/Engine/Public/EngineUtils.h"

void AMyActor::BeginPlay()
{
    //方法一:通過迭代器
    Super::BeginPlay();
    for (TActorIterator<AMyActor> Iterator(GetWorld()); Iterator; ++Iterator) 
    {
        if (Iterator->GetName() == FString("MyActor_BP4")) //注意,此處Actor的name為id_name,具有唯一性,不是display_name
                {
                    Iterator->PrintMessage(TEXT("通過TActor找到Actor&呼叫PringMessage函式"));
                }
    }

    //方法二:通過陣列遍歷世界元素
    TArray<AActor*> _TempArryActors;
    UGameplayStatics::GetAllActorsOfClass(GetWorld(), AActor::GetClass(), _TempArryActors);
    for (int32 i = 0; i < _TempArryActors.Num(); i++)
    {
        Cast<AMyActor>(_TempArryActors[i])->PrintMessage(TEXT("通過UGameplay找到Actor&呼叫PringMessage函式"));
    }
    //this->PrintMessage(FString("testMessage"));
}

  • 不允許指向不完整的類型別:
    沒有 include 相關標頭檔案

相關推薦

UE4學習筆記3——問題解決方案

以外掛名 SimpleWindow 為例: 編譯無法通過,可能是沒有新增 *PCH.h 預編譯檔案頭,在 Private 目錄下新建檔案:外掛名+PrivatePCH.h 的檔案,即SimpleW

QT學習筆記:關於QT下配置OpenCV3.4.0後出現 error: undefined reference to 'cv::xxx'的問題解決方案

按照網上的辦法,在QT中pro檔案末尾新增以下程式碼來引入OpenCV的庫和標頭檔案: INCLUDEPATH += D:\OpenCV3.4\opencv\build_mingw\install\x64\mingw\include LIBS += D:\Ope

【JVM學習筆記】(一)jvm初體驗-記憶體溢位問題分析解決方案

####1、開始 建立Main類和Demo類,在Main類的main方法中建立List,並向List中無限建立Demo物件,造成記憶體溢位, 並輸出記憶體溢位錯誤檔案在專案目錄下,為了使等待時間減小,設定執行堆記憶體大小。 ####2、建立Demo類 package com.ch

【極客學院】-python學習筆記-3-單執行緒爬蟲 (request安裝遇到問題解決,應用requests提取資訊)

極客學院課程網址:http://www.jikexueyuan.com/course/821_2.html?ss=1 任務: 爬取極客學院官方網站的課程庫,並儲存 Requests介紹與安裝: HTTP for Humans Python的第三方庫,實現網頁連結,更自動

AngularJs學習筆記3-服務過濾器

聲明 運行時 維護 style 函數調用 factor blog 使用場景 需要 距離上次別博客有有一段時間了,因為最近公司和個人事情比較多,也因為學習新的知識所以耽擱了,也有人說Angularjs1.5沒有人用了,沒必要分享,我個人感覺既然開頭了我就堅持把他寫完,

mybatis學習筆記(3)—資料庫和bean名稱不一樣處理方案

之前寫的mybatis物件的bean物件和資料庫的物件名稱是對應的,然而再實際開發的過程有很多不一一對應的情況。就需要解決。 bean物件: package com.test.bean; /* * javabean 物件 */ public class order { pr

Web學習之跨域問題解決方案

在做前端開發時,我們時常使用ajax與伺服器通訊獲取資源,享受ajax便利的同時,也知道它有限制:跨域安全限制,即同源策略。 同源策略(SOP),核心是確保不同源提供的檔案之間是相互獨立的 預設情況下,XHR物件只能訪問與包含它的頁面處於同一域中的資源,這種限制可以預防某些惡意攻擊,但同

springcloud學習之分散式配置中心(Finchley版本),遇到的問題解決方案

在學習中,遇到的問題: 一、在搭建好配置服務中心後,不太理解訪問路徑,/{application}/{prolfile}[/label] 之類的路徑,通俗的解釋,就是application指應用名,profile指開發環境,label指git分支,這樣解釋

基於深度學習的目標檢測演算法綜述:常見問題解決方案

導讀:目標檢測(Object Detection)是計算機視覺領域的基本任務之一,學術界已有將近二十年的研究歷史。近些年隨著深度學習技術的火熱發展,目標檢測演算法也從基於手工特徵的傳統演算法轉向了基於深度神經網路的檢測技術。從最初 2013 年提出的 R-CNN

Python踩坑之路-Python-3.6 安裝pycrypto 2.6.1各種疑難雜症解決方案

最近接觸公司後臺管理系統的開發,其中涉及到加密模組pycrypto。 重點來了!!!!敲黑板!!!! pycrypto在PyCharm中跟其他的模組不一樣,pip install pycrypto安裝的是1.4.1版本,然後雖然模組能夠install成功,但

ADAS(3) 各功能模組解決方案提供商詳解

轉自: http://www.52rd.com/S_TXT/2016_1/TXT78751.HTM?WebShieldDRSessionVerify=U6Y6USYM0JN0A7yn5qr1         先進駕駛輔助系統(Advanced Driver Assista

機器學習問題中過擬合出現的原因解決方案

如果一味的追求模型的預測能力,所選的模型複雜度就會過高,這種現象稱為過擬合。模型表現出來的就是訓練模型時誤差很小,但在測試的時候誤差很大。 一、產生的原因: 1.樣本資料問題 樣本資料太少 樣本抽樣不符合業務場景 樣本中的噪音資料影響 2.模型問題 模型複雜度高,引

菜鳥調錯——Hibernate 4.3.x 註解常見錯誤解決方案

程式設計的過程免不了遇到各種錯誤,各種問題,而遇到問題,解決問題的這個過程我認為是最讓人興奮的事情。越棘手的問題,解決以後帶來的快感也越大。當一個問題你搞了一下午或者一天,甚至幾天,當你解決的那一刻你會覺得你又獲得了重生。甚至會感覺此時此刻整個世界都是你的。 啊哦,扯的有點

MySQL必知必會學習遇到的問題解決方案

《MySQL必知必會》 P123頁有這麼一個例子select note_text, match(note_text)against('rabbit') as rank from productnotes;在MySQL 8.0.11裡面會報錯[Err] 1064 - You h

Android學習中遇到的問題解決方案

1.搭建開發環境時遇到的問題: 初裝Android Studio,首次執行報錯:Error running app: Instant Run requires ‘Tools | Android | Enable ADB integration’ to be e

學習筆記3——32位和64位Linux作業系統的區別系統識別方法

32位和64位Linux系統的區別: 一、設計初衷不同 最初,64位是為了滿足高科技人員使用本行業需要大量記憶體和浮點特性的特殊軟體的需要而設計的執行平臺,而32位作業系統是為了滿足普通使用者的需要。 二、要求配置不同 64位只能安裝在64位電腦上;32位可以安裝在64位

Tersorflow深度學習入門—— CIFAR-10 訓練示例報錯解決方案

Tersorflow  CIFAR-10 訓練示例報錯及解決方案 1.AttributeError: 'module' object has noattribute 'random_crop' 解

Java學習中,所遇到的一些問題解決方案

1、在使用BigDecimal資料型別做除法運算的時候,彈出如下異常: public static void main(String[] args){ BigDecimal a =

學習mysql報錯資訊解決方案集合

mysql錯誤:Column ‘id’ in field list is ambiguous的解決方法 列’ID’在欄位列表中重複,其實就是兩張表有相同的欄位,但是使用時表字段的名稱前沒有加表名,導致指代不明 如 前面加上字首就沒問題了。 SELECT pare

【Linux學習筆記3】Contos7系統沒有ifconfig,route -n功能解決辦法

上期說到第一次開啟Contos7系統遇到的問題,也講到了Contos系統是最小安裝化安裝,沒有像Window那麼多圖形,不僅僅如此,裡面的一些ifconfig,route -n等這些查詢網路的功能命令也會沒有。這是Contos7一些比較新版的系統已經淘汰了。當然