구현한 기능: 공 드래그 앤 드롭으로 이동
목적: 사용자가 공을 마우스로 드래그하여 원하는 방향과 강도로 발사할 수 있게 하는 것입니다. 이를 통해 사용자는 게임 내에서 직접적인 상호작용을 경험할 수 있습니다.
사용 이유: 사용자가 게임 내에서 직접적으로 물체를 조작하는 경험을 제공함으로써, 플레이어의 몰입감을 높이고 더 다이내믹한 게임 플레이를 가능하게 하기 위함입니다.
구현 코드 (간단한 로직):
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;
}