EditAnywhere

EditAnywhere - самый универсальный спецификатор UPROPERTY.
Он позволяет редактировать переменную везде, где появляется панель Details:

  • в Class Defaults (настройки класса по умолчанию)
  • в каждом отдельном экземпляре актора на уровне
  • в компонентах, структурах, вложенных объектах

Это означает, что одно и то же свойство можно настраивать как глобально (для всех объектов), так и индивидуально (для каждого объекта в сцене)..

  • когда хочешь настраивать значения для каждого объекта на сцене
  • нужна гибкость и на уровне класса, и на уровне экземпляра
UCLASS()
class MYGAME_API AMyClass : public AActor
{
    GENERATED_BODY()

public:

    UPROPERTY(EditAnywhere)
    FString Property = "";

    UPROPERTY(EditDefaultsOnly)
    FString DefaultOnlyProperty = "";

};

В Class Defaults меняешь → влияет на все новые экземпляры.
В размещённом акторе меняешь → переопределяется только этот экземпляр.

СпецификаторClass DefaultsЭкземпляр на уровнесценарий
EditAnywhereДаДаУниверсальный
(самый популярный)
EditDefaultsOnlyДаНетГлобальные настройки класса
EditInstanceOnlyНетДаТолько индивидуальные корректировки