Можете помочь? При компиляции кода в Unreal Engune 4.27 выходит ошибка:
Строками 9 и 18 являются:
USystemFunctionLibrary::AsyncLevelLoadFinished;
USystemFunctionLibrary::AsyncLevelLoadSystem;
Код:…
2 153
0
7
0
Немного переработал код, теперь всё работает.
#pragma once

#include "CoreMinimal.h"
#include "GameFramework/PlayerController.h"
#include "SystemPlayerController.generated.h"

UCLASS()
class IFIRIMAL_API ASystemPlayerController : public APlayerController
{
	GENERATED_BODY()
public:
			UFUNCTION(BlueprintCallable, Category = SystemPlayer)
			void AsyncLevelLoadSystem();
			void AsyncLevelLoadFinished();
public:
			UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = SystemPlayer)
			TArray<FString> LevelsNameArray;
public:
			UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = SystemPlayer)
			FString Path;
			int Index;
};
#include "SystemPlayerController.h"
#include "UObject/UObjectGlobals.h"
#include "Kismet/GameplayStatics.h"

void ASystemPlayerController::AsyncLevelLoadSystem()
{
	if (LevelsNameArray[Index].IsEmpty())
	{
		ASystemPlayerController::AsyncLevelLoadFinished();
		GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("All Levels Load End"));
	}
	else
	{
		LoadPackageAsync(Path + LevelsNameArray[Index],
			FLoadPackageAsyncDelegate::CreateLambda([=](const FName& PackageName, UPackage* LoadedPackage, EAsyncLoadingResult::Type Result)
				{
					if (Result == EAsyncLoadingResult::Succeeded)
					{
						GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Level Load End"));
						ASystemPlayerController::AsyncLevelLoadSystem();
					}
				}
			),
			PKG_ContainsMap);
		Index++;
	}
}

void ASystemPlayerController::AsyncLevelLoadFinished()
{
	UGameplayStatics::OpenLevel(this, "MainLevel");
	GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Open MainLevel"));
}
0
7
0
Нашел в чем причина ошибки, просто перед USystemFunctionLibrary необходимо было поставить &.
Однако при выполнении кода функций AsyncLevelLoadSystem и AsyncLevelLoadFinished не вызываются. Кто-то может подсказать в чем причина?
#pragma once

#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "SFunctionLibrary.generated.h"

UCLASS()
class IFIRIMAL_API USFunctionLibrary : public UBlueprintFunctionLibrary
{
	GENERATED_BODY()
public:
	UFUNCTION(BlueprintCallable)
	static void AsyncLevelLoadSystem(TArray<FString> LevelName, const FString& LevelPath, int ArrIndex);
	void AsyncLevelLoadFinished();
};
#include "SFunctionLibrary.h"
#include "UObject/UObjectGlobals.h"
#include "Kismet/GameplayStatics.h"

void USFunctionLibrary::AsyncLevelLoadSystem(TArray<FString> LevelName, const FString& LevelPath, int ArrIndex)
{
	if (LevelName[ArrIndex].IsEmpty())
	{
		&USFunctionLibrary::AsyncLevelLoadFinished;
		GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("All Levels Load End"));
	}
	else
	{
		LoadPackageAsync(LevelPath + LevelName[ArrIndex],
			FLoadPackageAsyncDelegate::CreateLambda([=](const FName& PackageName, UPackage* LoadedPackage, EAsyncLoadingResult::Type Result)
				{
					if (Result == EAsyncLoadingResult::Succeeded)
					{
						GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Level Load End"));
						&USFunctionLibrary::AsyncLevelLoadFinished;
					}
				}
			),
			PKG_ContainsMap);
		ArrIndex++;
	}
}

void USFunctionLibrary::AsyncLevelLoadFinished()
{
	UGameplayStatics::OpenLevel(this, "MainLevel");
	GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Open MainLevel"));
}
Как сделать отображение на предмете курсора по центру экрана во время наведения камеры на него. И самое главное-как заставить исчезнуть этот курсор при отведении камеры. Помогите пожалуйста. Мозг кипит))
1 158
0
31
Не пользуюсь UE, т.ч. мои слова будут максимально общими.
Вот нагуглил две ссылки:
Собственно создаешь RayCast (наверняка такое есть в UE или оно там просто как-то по-другому называется)
Проверяешь коллизию с объектом.
Если луч задел предмет, то устанавливаем положение курсора в центр экрана (задать X, Y как половину ширины и высоты экрана), и отображаем курсор.
Если луч не задевает предмет, то скрываем курсор.
Статья в основном посвящена прекрасному фреймворку со всей основой rts
Из коробки он умеет уже фукнционал:
  • Управления камерой
  • Выбор одного или нескольких юнитов передвижение их
  • Постройка здания
  • Атака других юнитов
  • Миникарта
  • Туман войны
  • Мультиплеер
и многое другое. Обо всем есть на странице…
7 1 093
0
8
0
А как называется хоть фреймворк то? 🤔
там кнопочка с ссылочкой есть, можно нажать получить и сразу на gh перейдешь
но он уже давно не развивается, это грустно конечно(
0
1
0
А как называется хоть фреймворк то? 🤔
0
8
0
Да мне нужен готовый ртс))
если готовый можешь взять этот, там есть пример с корабликами в который можно поиграть и посмотреть

Да мне нужен готовый ртс))
ну вообще на unity будет проще запилить за счет того что там есть плагин для движения юнитов хорошо проработанный на анриале нет такого (может уже есть но когда я искал не было)
0
27
0
Да мне нужен готовый ртс))
0
8
0
И видео

Сыровато. Факты
да не особо можно что то добавить. Вообще спустя долгое время использования фреймворка понял что это хорошие наработки кода, но полностью его интегрировать нет смысла. + по нему нужны либо уроки чтоб обьяснить что да как либо упорство чтоб понять самому) крч не сложный фрейворк но надо поразбираться