Что такое BlueprintReadOnly
BlueprintReadOnly — спецификатор UPROPERTY, который открывает свойство только для чтения в Blueprints. Значение можно получить через Get-ноду, но нельзя изменить через Set.
Этот спецификатор используется, когда значение должно быть видно в Blueprint, но изменять его должен только C++ код.
Когда использовать BlueprintReadOnly
- значение должно быть видно в Blueprint, но изменять его должен только C++ код
- состояние объекта, которое можно читать, но нельзя перезаписывать из Blueprint
- внутренние расчётные данные, которые нужно показывать для отладки
Пример кода
UCLASS()
class MYGAME_API AMyActor : public AActor
{
GENERATED_BODY()
public:
UPROPERTY(BlueprintReadOnly)
float CurrentSpeed = 0.0f;
UPROPERTY(BlueprintReadOnly)
bool bIsAlive = true;
virtual void Tick(float DeltaTime) override;
};
Разница между BlueprintReadOnly и BlueprintReadWrite
| Спецификатор | Get (чтение) | Set (запись) | Когда использовать |
|---|---|---|---|
| BlueprintReadWrite | Да | Да | Когда нужен полный доступ из Blueprint |
| BlueprintReadOnly | Да | Нет | Когда менять значение должен только C++ |
