LoginSignup
0
0

【UE,C++メモ -4- 】 レベル内の要素を取得

Posted at

C++で取得

// アウトライナーからAActorをすべて取得
TArray<AActor*> Actors;
UGameplayStatics::GetAllActorsOfClass(GetWorld(), AActor::StaticClass(), Actors);
	for (AActor* Actor : Actors)
	{
		if (AHoge* Hoge = Cast<AHoge>(Actor))
        {
            HogeArray.Add(Hoge);
        }
    }

これで特定のアクタを取得できるが効率が悪い気がする。
エディタ上でも取得できるのでそれで良いだろう。

UPROPERTY()のこと

UPROPERTY(EditAnywhere) エディタ上で編集可能
UPROPERTY(VisibleAnywhere) エディタ上で閲覧可能
大体これしか使わなかった。
細かく説明するとすると以下の表のように結構ある。
参考サイト様

引数 説明
EditAnywhere レベルエディターおよびブループリントエディター上での閲覧・編集が可能
EditDefaultsOnly ブループリントエディター上での閲覧・編集が可能
EditInstanceOnly レベルエディター上での閲覧・編集が可能
VisibleAnywhere レベルエディターおよびブループリントエディター上での閲覧のみが可能
VisibleDefaultsOnly ブループリントエディター上での閲覧のみが可能
VisibleInstanceOnly レベルエディター上での閲覧のみが可能
BlueprintReadOnly ブループリントエディター上でGetのみ公開
BlueprintReadWrite ブループリントエディター上でGet・Setの両方を公開
Category = “TopCategory|SubCategory|…” ブループリントエディター上で表示される際のプロパティのカテゴリを設定

Categoryは結構使ったと思う。
このように、編集可能にしておき、ワールドに配置後、同ワールド内の要素を設定するのもありだし正直そのほうが楽な場合もある。
UPROPERTY()はUFUNCTION()、UCLASS()、UENUM()、USTRUCT()と数種あるがタイトルとかけ離れてくるため説明はしない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0