Language:
Page Info
Skill Level:
Engine Version:
The translation of this page is out of date. Please see the English version for the latest version of the page.

4 - コードをテストする

  1. アンリアル エディタコンテンツ ブラウザ から「C++ Classes」という名前のフォルダを展開します。そのフォルダ内の「QuickStart」フォルダの中に、Actor クラスの FloatingActor が入っています。

    ClassInContentBrowser.png

  2. FloatingActor クラスを直接 [レベル エディタ] ウィンドウへドラッグすると、ワールド内に MyActor のインスタンスを作成することができます。レベル エディタワールド アウトライナー で「FloatingActor1」と名前が付いています。それを選択します。コンポーネント やその他のプロパティが [Details (詳細)] パネル で見えるようになります。

    WorldOutliner.png

  3. FloatingActor をゲーム内で見えるようにする必要があります。選択したまま、 [Details (詳細)] パネル[Add Component (コンポーネントを追加)] をクリックし、 [Cone] を選んで簡単な形を与えます。

    AddStaticMesh.png

  4. カスタマイズした アクタ の準備ができたので、どこか目立つ場所に移動させましょう。マウスの左ボタンで選択してドラッグしてワールド内を移動させたり、または手動で移動させることができます。手動で移動させるには、レベル エディタ または ワールド アウトライナー で対象を選択して、[Details (詳細)] パネル で [FloatingActor1 (Instance)] を選択します。FloatingActor1 の [Transform (トランスフォーム)][Location (位置)] フィールドを直接編集できるようになります。X を -200 に、そして Z を 200 に設定してみましょう。この設定により、"FloatingActor1" はシーンの中のテーブルの右側に配置されます。

    SetActorLocation.png

  5. [Play (再生)] ボタンを押して、コーンの浮き沈みを見てみましょう。

    MovingCone.png

完成コード

FloatingActor.h

// Copyright 1998-2017 Epic Games, Inc.All Rights Reserved.

#pragma once

#include "GameFramework/Actor.h"
#include "FloatingActor.generated.h"

UCLASS()
class QUICKSTART_API AFloatingActor : public AActor
{
    GENERATED_BODY()

public:
    // Sets default values for this actor's properties (このアクタのプロパティのデフォルト値を設定)
    AFloatingActor();

protected:
    // Called when the game starts or when spawned (ゲーム開始時またはスポーン時に呼び出されます)
    virtual void BeginPlay() override;

public:
    // Called every frame (フレーム毎に呼び出されます)
    virtual void Tick( float DeltaSeconds ) override;

    float RunningTime;
};

FloatingActor.cpp

// Copyright 1998-2017 Epic Games, Inc.All Rights Reserved.

#include "QuickStart.h"
#include "FloatingActor.h"

// Sets default values (デフォルト値を設定) 
AFloatingActor::AFloatingActor()
{
    // Set this actor to call Tick() every frame. (フレーム毎に Tick() を呼び出すようにこのアクタを設定) 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 AFloatingActor::BeginPlay()
{
    Super::BeginPlay();

}

// Called every frame (フレーム毎に呼び出されます)
void AFloatingActor::Tick( float DeltaTime )
{
    Super::Tick( DeltaTime );

    FVector NewLocation = GetActorLocation();
    float DeltaHeight = (FMath::Sin(RunningTime + DeltaTime) - FMath::Sin(RunningTime));
    NewLocation.Z += DeltaHeight * 20.0f;       //Scale our height by a factor of 20
    RunningTime += DeltaTime;
    SetActorLocation(NewLocation);
}