一個主學Unity、很少接觸C++、接觸過藍圖的人通過模板的代碼對虛幻C++的簡單探索——01.構建一個簡單的角色類

一個主學Unity、很少接觸C++、接觸過藍圖的人通過模板的代碼對虛幻C++的簡單探索

01.構建一個簡單的角色類

(知識水平有限,如果有很多錯誤的地方請見諒)

  1. 首先創建一個GameModeBase的C++類,取名爲“MyGameModeBase”。
  1. 這是初始化的頭文件MyGameModeBase.h

  1. 虛幻4一般都是在一個頭文件中寫這個類,然後在對應名字的源文件中定義這個成員函數,我們寫如下代碼,有什麼作用請看註釋(默認東西的就不管了)

  1. 這是初始化的源文件MyGameModeBase.cpp

  1. 我們先定義這個構造函數

  1. 創建一個Character的C++類,取名爲”MyCharacter”。
  1. 這是初始化的頭文件MyCharacter.h

  1. 這是初始化的源文件MyCharacter.cpp

  1. 這時候我們再創建一個繼承於MyCharacter的藍圖NewCharacterBlueprint,以便於之後可視化地設置各個組件的位置
  2. 我們把MyGameModebase的構造函數寫好,代碼已有詳細的註釋,這裏主要只是設置MyGameModeBase默認的Pawn

  1. 給MyCharacter添加組件
  1. MyCharacter繼承於Character,也就是繼承了USkeletalMeshComponent(骨架網格物體,對應:Mesh)、UCharacterMovementComponent(角色移動組件,對應:CharacterMovement)、UCapsuleComponent(膠囊體組件,對應:CapsuleComponent)和UArrowComponent(箭頭組件,對應:ArrowComponent)四個組件,我們可以看一下藍圖

  1. 創建組件之前,我們先來看一下虛幻4常見的宏:UPROPERTY

(詳細信息:https://blog.csdn.net/u012793104/article/details/78480085

我們只看一些常用的,其他的請看詳細信息,跟網絡複製相關的也在詳細信息中有提及:

BlueprintCallable:藍圖可調用

BluprintReadOnly:藍圖只讀,變量必須公開

BlueprintReadWrite:藍圖可讀可寫,變量必須公開

Category =“變量分類的名稱”:相當於藍圖中可以給變量分組顯示

EditAntwhere:變量在藍圖中可以在藍圖的屬性面板或世界的屬性面板看到並編輯

VisibleAnywhere:變量可以在藍圖的屬性面板或世界的屬性面板中看到

EditDefaultsOnly:變量只能在藍圖的屬性面板中看到並編輯

VisibleDefaultOnly:變量只能在藍圖的屬性面板中看到

EditInstanceOnly :變量只能在世界的屬性面板中看到並編輯

VisibleInstanceOnly:變量只能在藍圖的屬性面板中看到

meta = (AllowPrivateAccess = "true"):如果爲true,則可以訪問藍圖中可以訪問C ++私有範圍中定義的屬性

  1. 在MyCharacter.h中聲明組件USpringArmComponent和UCameraComponent,組件一定要是指針變量,否則會報錯

  1. 在MyCharacter類的構造函數中創建這些組件,核心是CreateDefaultSubobject函數模板和AttachTo函數,用法可以參考相關藍圖,也可以使用“MainCamera->SetupAttachment(SpringArm);”代替AttachTo函數

(5)到此爲止,一個角色基本構建構建完成,接下來我們只需要根據自己的需求去調整繼承者Character類的變量,或者直接在藍圖類中修改也可以。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章