Невозможно использовать пользовательский стиль, установленную в моем виджете Slate в UE5, прочитайте нарушение доступа (C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно использовать пользовательский стиль, установленную в моем виджете Slate в UE5, прочитайте нарушение доступа (

Сообщение Anonymous »

Я создал пользовательский стиль для моего пользовательского интерфейса ue5 Slate после этого сообщения в блоге. Проект строится/редактор работает, но когда пользовательский интерфейс загружен в игру, он вылетает со следующей ошибкой: Исключено: Читать нарушение доступа. FtestCustomStyle :: StyleSet.

Код: Выделить всё

#pragma once

#include "CoreMinimal.h"
#include "Styling/SlateStyle.h"

class FTestCustomStyle final
{
public:
static void Initialize();
static void Shutdown();

static ISlateStyle& Get()
{
return *StyleSet.Get();
}

static FName GetStyleSetName();

private:
UPROPERTY()
static TUniquePtr StyleSet;

static FString RootToProjectContentDir(const FString& RelativePath, const TCHAR* Extension);
};
и .cpp файл:
#include "TestCustomStyle.h"
#include "Styling/CoreStyle.h"
#include "Styling/SlateStyleRegistry.h"

TUniquePtr FTestCustomStyle::StyleSet;

void FTestCustomStyle::Initialize()
{
if (StyleSet.IsValid())
{
// Only set up once
return;
}

StyleSet = MakeUnique(GetStyleSetName());

//~ Begin styles def
StyleSet->SetContentRoot(FPaths::EngineContentDir() / TEXT("Editor/Slate"));
StyleSet->SetCoreContentRoot(FPaths::EngineContentDir() / TEXT("Slate"));

// Text
StyleSet->Set("TitleTextStyle", FTextBlockStyle()
.SetFont(FCoreStyle::GetDefaultFontStyle("Bold", 34))
.SetColorAndOpacity(FLinearColor::FromSRGBColor(FColor::FromHex(TEXT("#FFFFFF"))))
);
//~ End styles def

FSlateStyleRegistry::RegisterSlateStyle(*StyleSet.Get());
}

void FTestCustomStyle::Shutdown()
{
if (StyleSet.IsValid())
{
FSlateStyleRegistry::UnRegisterSlateStyle(*StyleSet.Get());
StyleSet.Reset();
}
}

FName FTestCustomStyle::GetStyleSetName()
{
static const FName StyleSetName(TEXT("TestCustomStyle"));
return StyleSetName;
}

FString FTestCustomStyle::RootToProjectContentDir(const FString& RelativePath, const TCHAR* Extension)
{
static const FString ContentDir = FPaths::ProjectConfigDir();
return (ContentDir / RelativePath) + Extension;
}
< /code>
И я называю методы инициализации и выключения стиля в методах запуска и выключения моего основного модуля: < /p>
#pragma once

#include "CoreMinimal.h"

class FTestGameModule : public FDefaultGameModuleImpl
{
public:
void StartupModule() override;

void ShutdownModule() override;
};
< /code>
#include "TestGame.h"
#include "TestCustomStyle.h"
#include "Modules/ModuleManager.h"

IMPLEMENT_PRIMARY_GAME_MODULE(FDefaultGameModuleImpl, TestGame, "TestGame")

void FTestGameModule::StartupModule()
{
FTestCustomStyle::Initialize();
}

void FTestGameModulee::ShutdownModule()
{
FTestCustomStyle::Shutdown();
}
< /code>
However, when I try to use the style set in my custom widget, I get the above error:
#include "UI/Menus/STestMenu.h"
#include "UI/HUD/DefaultHUD.h"
#include "TestCustomStyle.h"

#define LOCTEXT_NAMESPACE "TestMenu"

void STestMenu::Construct(const FArguments& InArgs)
{
bCanSupportFocus = true;

OwningHUD = InArgs._OwningHUD;

const FText TitleText = LOCTEXT("TitleText", "Test");

ChildSlot
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
[
// Header
SNew(SVerticalBox)
+ SVerticalBox::Slot()
[
SNew(STextBlock)
.TextStyle(FTestCustomStyle::Get(), "TitleTextStyle")
.Text(TitleText)
]
];
}
< /code>
When I remove the custom styling from the equation, it works fine, so I know it's specific to that.

Подробнее здесь: https://stackoverflow.com/questions/794 ... lation-thr
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Невозможно использовать пользовательский стиль, установленную в моем виджете Slate в UE5, прочитайте нарушение доступа (
    Anonymous » » в форуме C++
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Осеррор: Исключение: Нарушение на нарушение доступа 0x00000001
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Вопросы о сопоставлении правил slate `editor.nodes ()` function
    Anonymous » » в форуме Javascript
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Проблема, связанная с Skywise - Slate Dashboard [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Проблема, связанная с Skywise - Slate Dashboard [закрыто]
    Anonymous » » в форуме Javascript
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»