Replicated

[ChronoSpace] Switch 본문

언리얼 엔진/ChronoSpace

[ChronoSpace] Switch

라구넹 2025. 2. 20. 23:28

전에 했던 InteractionInterface 써서 스위치 상위 클래스를 만들 것

 

일단 애셋 보면 이렇게 생긴 스태틱 메시

활성화 시 메시 메테리얼을 바꾸면 될 듯

 

인덱스 1번이랑 3번 바꾸면 될 듯

 

활성화 시 쓸 메테리얼이랑 비활성화 시 쓸 메테리얼 만들고

 

생성자에서 연결

 

그리고 스태틱 메시 컴포넌트나 트리거 등등 설정

 

void ACSSwitchBase::BeginInteraction()
{
	InteractionPromptComponent->SetVisibility(true);
}

void ACSSwitchBase::EndInteraction()
{
	InteractionPromptComponent->SetVisibility(false);
}

void ACSSwitchBase::Interact()
{
	bIsInteracted = !bIsInteracted;

	SetMaterial();
}

인터페이스 구현은 이렇게 되어 있음

프롬프트 활성화, 비활성화 해주고

Interact()에서 메테리얼을 설정해줌

 

void ACSSwitchBase::SetMaterial()
{
	if ( bIsInteracted )
	{
		StaticMeshComp->SetMaterial(1, MaterialSolidInteracted);
		StaticMeshComp->SetMaterial(3, MaterialGlowInteracted);
	}
	else
	{
		StaticMeshComp->SetMaterial(1, MaterialSolidNonInteracted);
		StaticMeshComp->SetMaterial(3, MaterialGlowNonInteracted);
	}
}

메테리얼 슬롯 맞춰서 설정해주는 함수 구현

 

 

작동은 이렇게 됨

 

실제 사용은 ACSSwitchBase 상속받고 Interact 오버라이드 하면 될 듯