본문 바로가기
회사 TIL

[TIL] 23.01.09 / Pico 축 설정, 3 x 3 퍼즐 이동 경로 구현중

by imagineer_jinny 2023. 1. 10.

TIL (Today I Learned)

 

오늘 해야할 것

  • 3 x 3 퍼즐 구현

 

오늘 한 것

  • 왼손/오른손 동시 접근 막기

- 왼손/오른손이 퍼즐을 잡고 있을 때 반대쪽 손이 퍼즐을 잡을 수 없다.

- fingerSocket이 왼쪽 상태일 때 오른쪽 상태가 될 수 없다

- 선택할 수 있는 상태는 None 상태에서만 가능하다.

- 왼쪽 상태가 되면  othercomp가 Right이면 Return

 

 

  • 퍼즐 이동 경로 설정하기

- 퍼즐이 이미 있는 곳/ 판이 아닌 곳은 움직일 수 없다.

- 빈 공간인 경우만 움직일 수 있다.

- 빈 공간이여서 움직였을 때 움직인 곳은 퍼즐이 있는(움직일 수 없는) 공간으로 리셋되고, 떠나온 곳(방금전까지 퍼즐이 있었던 곳)은 움직일 수 있는 상태가 된다.

 

 


1. 퍼즐이 이미 있는 곳/ 판이 아닌 곳은 움직일 수 없다.

- 처음에 판의 상태를 읽어오는 것이 필요할 것 같다. (?)

  • 언제 읽을 것인가?
  • 어떻게 읽을 것인가?
    • 어떻게 판의 중심 좌표와 상태를 Sync 시켜 줄 것인가?

- 상태의 종류는 BLOCK(갈 수 없음), EMPTY(갈 수 있음)

- 판의 상태는 초기에 어떻게 세팅해줄것인가?

  •  판의 정보 미리 지정한다. EMPTY를 설정해준다.

- 판의 상태는 어떻게 세팅해줄까?

  • 2차 배열 형태에 상태를 저장해준다.

 

2. 빈 공간인 경우만 움직일 수 있다.

 

- 움직이려 할 때 움직이려 하는 칸의 상태를 먼저 확인한다.

  • 언제 확인할것인가? 
    • 포인팅 되었을 때 
  • 어떻게 상태를 확인할 것인가?
    • 포인팅 되었을 때 포인팅 된 퍼즐 기준의 상,하,좌,우 상태를 확인한다.
      • 포인팅한 퍼즐의 위치를 받아오고
      • 퍼즐 위치의 index를 받아오고
      • for문을 돌려 index(y,x)의 상,하,좌,우의 상태를 확인한다.
      • 상,하,좌,우 중 상태가 EMPTY일 때만 움직임을 허가한다.
        • 움직임을 어떻게 허가할 것인가?
        •  CheckBoardPath가 EBoardPathState::EMPTY를 반환했을 때만 Moving 할 수 있다.
      • 상태 관련해서 고민
        • 선택될때마다 갈 수 있는 EMPTY는 계속 계산한다.
        • 선택한 퍼즐과 EMPTY의 상태가 바뀔 때는 버튼이 완전히 움직인 후이다.

 

3. 퍼즐이 옮겨간 곳은 BLOCK, 퍼즐이 있었던 곳은 EMPTY

 

- 퍼즐이 있었던 곳의 정보 필요

- 퍼즐이 옮겨간 곳의 정보 필요

- 어떻게 바꿔줄 것인가?

 

 

오늘 배운 것

  • Postinitializecomponents vs Beginplay

액터를 스폰(인스턴싱)할 때 따르게 되는 경로

  1. SpawnActor (액터 스폰)이 호출됩니다.
  2. PostSpawnInitialize (스폰 초기화 이후)가 호출됩니다.
  3. PostActorCreated 액터 생성 이후 - 스폰된 액터의 생성 이후에 호출됩니다. 생성자같은 것이 여기에 와야 합니다. PostActorCreated (액터 생성 이후)는 PostLoad (로드 이후)와 상호 배제적입니다.
  4. ExecuteConstruction (생성 실행):
    • OnConstruction 생성시 - 액터의 생성 지점으로, 블루프린트 액터가 컴포넌트를 만들고 블루프린트 변수를 초기화시키는 곳입니다.
  5. PostActorConstruction (액터 생성 이후):
    1. PreInitializeComponents 컴포넌트 초기화 이전 - 액터의 컴포넌트에서 InitializeComponent (컴포넌트 초기화)가 호출되기 전에 호출됩니다.
    2. InitializeComponent (컴포넌트 초기화) - 액터에 정의된 컴포넌트 각각의 생성을 돕는 함수입니다.
    3. PostInitializeComponents 컴포넌트 초기화 이후 - 액터의 컴포넌트 초기화가 완료된 이후 호출됩니다.
  6. OnActorSpawned (액터가 스폰되었을 때)가 UWorld 에 방송됩니다.
  7. BeginPlay (플레이 시작)이 호출됩니다.
  • 짠 코드가 잘 되는지 먼저 파악하기!
  • Pico 축 설정

 

 

내일 진행할 것

  • 3 x 3 마무리

 

 

 

앞으로 진행할 것

  • 유데미 언리얼 강의 듣기
  • UE5 블루프린트 강의 듣기
  • R1 Project 커리큘럼 - 유데미 강의 들으면서 러프하게 짜기
  • Static Mesh / Skeletal Mesh(애니메이션을 위한) 찾아보기
  • Texture / Material(상위개념)  찾아보기
  • Pico 빌드
  • 서랍, 문 등 다시 잡을 때 손잡이가 앞으로 확 오는 문제 처리하기
  • 롤 하기
  • Gimmick 가이드 완성하기(for 인프런)

 

댓글