【Unreal Engine 5】Visual Studio 2019でc++を動かす(3)~グローバル変数を扱う編~

Unreal Engine 5

概要

今回はUnreal Engine 5のc++でグローバル変数を扱ってみます.

はじめに

記事の背景

Unreal Engine 5で込み入ったアルゴリズムなどを書こうと思ったときに,やはりC++ができたら良いかなと思いまして手を出してみました.

そこで今回はグローバル変数を扱えるようになることで自由度を高めたいと思います.

過去の記事

こちらの方の記事を参考にやっていきます.

UE5/UE4 C++で値(Float、Int、Bool)を「FString」型に変換する(FString::SanitizeFloat、FString::FromInt) 凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

動作環境

  • Unreal Engine 5.0.3
    file

  • Visual Studio 2019

file

グローバル変数を扱ってみる

ソリューションファイルを開く

エクスプローラーを開くから

file

ソリューションファイルをVS2019で開く.

file

こんな感じになります.

file

C++ファイルを作成する

もしC++のファイルがない場合はこちらから作成してください.

【Unreal Engine 5】Visual Studio 2019でc++を動かす(2)~簡単なC++を動かす編~
今回はUnreal Engine 5でc++を動かします.

コードを記述する

ここから,グローバル変数を扱うコードを記述していきます.

ここのcppファイルを編集していきます.

file

// Fill out your copyright notice in the Description page of Project Settings.

#include "cpp_sample.h"
#include "Kismet/KismetSystemLibrary.h" 
#include <stdio.h>
#include <string>

//using namespace std;

// ----------------------------------------------------------------
// 追加部分
// 
int32 count = 0;

// Sets default values
Acpp_sample::Acpp_sample()
{
    // Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
    PrimaryActorTick.bCanEverTick = true;

}

// Called when the game starts or when spawned
void Acpp_sample::BeginPlay()
{
    Super::BeginPlay();

}

// Called every frame
void Acpp_sample::Tick(float DeltaTime)
{
    Super::Tick(DeltaTime);

    // ----------------------------------------------------------------
    // 追加部分
    //
    // count up
    count++;
    //
    // int --> string
    FString aFString = FString::FromInt(count);
    //
    // FString + FString ----> FString
    FString TestHUDString = FString(TEXT("This is my test FString : ")) + aFString;
    //
    // print text
    UKismetSystemLibrary::PrintString(this, TestHUDString, true, true, FColor::Cyan, 2.f);

}

コードの解説

ここにカウントを保持する変数を追記します.

// Fill out your copyright notice in the Description page of Project Settings.

#include "cpp_sample.h"
#include "Kismet/KismetSystemLibrary.h" 
#include <stdio.h>
#include <string>

//using namespace std;

// ----------------------------------------------------------------
// 追加部分
// 
int32 count = 0;

次に,カウントアップします.カウントアップした変数を文字列に変換し,結合してから表示します.


    // ----------------------------------------------------------------
    // 追加部分
    //
    // count up
    count++;
    //
    // int --> string
    FString aFString = FString::FromInt(count);
    //
    // FString + FString ----> FString
    FString TestHUDString = FString(TEXT("This is my test FString : ")) + aFString;
    //
    // print text
    UKismetSystemLibrary::PrintString(this, TestHUDString, true, true, FColor::Cyan, 2.f);

}

コンパイルする

「Ctrl+Alt+F11」でコンパイルします.

file

アクタを配置する

ドラッグアンドドロップしてアクタを配置します.

file

実行する

実行すると

file

こんな感じにちゃんとカウントアップされて表示されます.

file

結論

今回は,C++のコードでグローバル変数を扱ってみました.
これでだいぶ自由度が増しました!

次回からも作りこんでいきます.

コメント

タイトルとURLをコピーしました