본문 바로가기
TIL2

03.27 TIL

by 오랑이귀엽다 2024. 3. 27.

구현한 기능: 공 드래그 앤 드롭으로 이동

목적: 사용자가 공을 마우스로 드래그하여 원하는 방향과 강도로 발사할 수 있게 하는 것입니다. 이를 통해 사용자는 게임 내에서 직접적인 상호작용을 경험할 수 있습니다.

사용 이유: 사용자가 게임 내에서 직접적으로 물체를 조작하는 경험을 제공함으로써, 플레이어의 몰입감을 높이고 더 다이내믹한 게임 플레이를 가능하게 하기 위함입니다.

구현 코드 (간단한 로직):

더보기

void Update()
{
    if (Input.GetMouseButtonDown(0)) { StartDrag(); }
    if (isDragging) { WhileDragging(); }
    if (Input.GetMouseButtonUp(0)) { EndDrag(); }
}

사용한 기술: 드래그 앤 드롭 인터랙션

이유와 목적: 이 방식을 사용함으로써, 플레이어는 게임 내에서 더욱 능동적으로 참여할 수 있으며, 다양한 상황에서 공을 발사하는 새로운 전략을 시도해볼 수 있습니다. 이는 게임의 재미와 전략적 깊이를 더합니다.

구현 코드 (간단한 로직):

더보기

// 드래그 시작
void StartDrag() { ... }

// 드래그 동안 계속 호출
void WhileDragging() { ... }

// 드래그 끝내고 발사
void EndDrag() { ... }

트러블슈팅: 공의 일정한 경로 반복 문제

  • 상황: 공이 특정 조건 하에서 반복적인 경로로만 이동하는 경향을 보였습니다.
  • 원인: 공의 물리적 반응(특히 반발력과 마찰력)이 일정하여, 예측 가능한 경로를 따라 이동하는 경우 발생할 수 있습니다.
  • 해결: 공과 벽이 충돌할 때마다 소량의 무작위성을 추가함으로써, 매번 조금씩 다른 반응이 일어나도록 조정했습니다.
더보기

void OnCollisionEnter2D(Collision2D collision)
{
    Vector2 randomFactor = new Vector2(Random.Range(-randomness, randomness), Random.Range(-randomness, randomness));
    rb.velocity += randomFactor;
}