본문 바로가기
회사 TIL

[TIL] 22.12.28 / CardReader - Door 연결 완성, Tutorial 방에 배치, 레벨 - 라이트

by imagineer_jinny 2022. 12. 28.

TIL (Today I Learned)

 

오늘 해야할 것

  • Card Reader -> Inter Door 연결
  • 서랍 안에 넣은 키 서랍이 움직일때마다 따라가기(parent-child 처리)
  • 박스에 물건 넣었을 때 박스를 뚫고 손으로 꺼낼 수 있는 문제 처리

 

오늘 한 것

  • Card Reader -> Inter Door 연결

1. Inter Door에서 Object Manager를 불러온다

- Object Manager 불러올 때 GameMode 통해서 불러옴

- GameMode에 GetR1ObjectManager 함수가 있기 때문에

 

2. Object Manager가 Object가 가지고 있는 키를 찾아준다.

3. Object의 상태를 받아와서 확인 후 문을 열 수 있게 해준다.

 

  • 서랍 안에 넣은 키 서랍이 움직일때마다 따라가기(parent-child 처리)  -> 미해결

- 씬 안에서 그냥 키를 서랍의 하위로 처리 

- 서랍만 있으면 괜찮은데 Mesh 전체인 경우 서랍에만 상속할 수 있는 방법이 있나?

 

  • 콜리전 뚫고 꺼낼 수 있는 문제 해결하기 

-  씬 안에 카드를 키박스 안에 넣고 키 박스/WoodBox가 Open 상태이면 카드/열쇠가 Off 상태에서 On 상태로 변화

 

  • 라이트가 좀 이상하다?
  • 창 -> 레벨  -> LightOff 우클릭 -> 스트리밍 방법 변경 -> 항상 로드됨 (블루프린트로 되있으면 안됨) -> 그리고 다시 라이팅만 빌드 해보기

 

오늘 배운 것 

  • 언리얼 Cast
for (AActor* actor : outActors)
{
    AR1TeleportArea* tp = Cast<AR1TeleportArea>(actor);
}

AR1Level1Key* key = Cast<AR1Level1Key>(otherActor);

 

  • private / public 활용하기
    • State 같은 것을 넘겨줄 때 public을 이용해서 바로 넘겨줬었는데 public으로 상태를 설정하는 것은 위험하기 때문에 상태는 private로 유지하고 다른 public 함수를 이용해서 처리해야함
//CardReader.h

public:
	ELevel1CardReaderState CheckCardInsert();

private:
	ELevel1CardReaderState GetCardReaderState() { return _state; }
	void SetCardReaderState(ELevel1CardReaderState state);
    
    
//CardReader.cpp

ELevel1CardReaderState AR1Level1CardReader::CheckCardInsert()
{
	if (_state == ELevel1CardReaderState::WaitingCardInteraction)
	{
		SetCardReaderState(ELevel1CardReaderState::Recognized);
	}

	return _state;
}​

 

내일 진행할 것

  • 콜리전 문제 -> ObjectManager의 SetGimmickOnOff 참고
  • Drawer -> 코드에서 ChildActor 참고, 키를 코드로 SetAttach 했다가 BeginPlay에 넣어줘서 시작할때만 가져오는 방법 등등 생각

 

앞으로 진행할 것

  • novel ai - 콘티, 시나리오 활용 방안 연구
  • 유데미 언리얼 강의 듣기
  • UE5 블루프린트 강의 듣기
  • R1 Project 커리큘럼 - 유데미 강의 들으면서 러프하게 짜기
  • Static Mesh / Skeletal Mesh(애니메이션을 위한) 찾아보기
  • Texture / Material(상위개념)  찾아보기

댓글