CE : 하랑 2024. 2. 18. 14:48

 

Stage1_Map.h

#pragma once
#include <EngineCore/Actor.h> // 상속

// 맵은 우선 잠시 대기
class AStage1_MAP : public AActor
{
public:
	// constrcuter destructer
	AStage1_MAP(); // 디폴트 생성자
	~AStage1_MAP(); // 디폴트 소멸자

	// delete Function
	AStage1_MAP(const AStage1_MAP& _Other) = delete; // 디폴트 복사 생성자
	AStage1_MAP(AStage1_MAP&& _Other) noexcept = delete; 
	AStage1_MAP& operator=(const AStage1_MAP& _Other) = delete; // 디폴트 대입 연산자
	AStage1_MAP& operator=(AStage1_MAP&& _Other) noexcept = delete;

	void SetMapImage(std::string_view _MapImageName); // 맵 이미지 Set
	void SetColMapImage(std::string_view _MapImageName); // 픽셀 충돌 맵 이미지 Set

	void SwitchDebug();

protected:
	void BeginPlay() override;
	void Tick(float _DeltaTime) override;
private:
	UImageRenderer* MapRenderer = nullptr; // 렌더링
	UImageRenderer* MapColRenderer = nullptr; // 콜리전 -> 픽셀 충돌
};

 


(1) SetMapImage

void AStage1_MAP::SetMapImage(std::string_view _MapImageName)
{
	MapRenderer->SetImage(_MapImageName); // 이미지 Set
	UWindowImage* Image = MapRenderer->GetImage(); // Set한 이미지 값을 받고
	FVector ImageScale = Image->GetScale(); // 이미지 크기를 저장
	MapRenderer->SetTransform({ ImageScale.Half2D(), ImageScale }); 
	// 이미지의 X축 Y축 절반의 위치에 이미지 크기만 크기만큼 랜더링
}

 

- 이미지 Set

- 이미지 크기만큼 랜더

 


 

(2) SetColMapImage()

void AStage1_MAP::SetColMapImage(std::string_view _MapImageName)
{
	MapColRenderer->SetImage(_MapImageName);
	UWindowImage* Image = MapColRenderer->GetImage();
	UActorCommon::ColMapImage = Image; // 픽셀 충돌할 맵 설정
	FVector ImageScale = Image->GetScale();
	MapColRenderer->SetTransform({ ImageScale.Half2D(), ImageScale });
}

 

 

- 이미지 Set

- 이미지 크기만큼 랜더

- 픽셀 충돌 맵 설정