인프런 커뮤니티 질문&답변

idim7님의 프로필 이미지
idim7

작성한 질문수

따라하면서 배우는 고박사의 2D 플랫포머 게임 제작

02-05 플레이어 원거리 공격

02-05 플레이어 원거리공격. 혹시 저처럼 공이 빨리 사라지는 경우

작성

·

14

0

혹시 저처럼 공이 빨리 사라지는 경우가 있는 분들을 위해 글을 남깁니다.

공을 생성해서 던질때, 공이 지면과 충돌하면서(공이 수평으로 이동하는 것이 아니라, 대각선으로 이동하면서 충돌)
약간의 x방향 속도가 줄어들 수 있습니다.

아마도 그런 이유 때문인지, 제가 실습해보니, 지면에 닿자마자 공 오브젝트가 모두 사라집니다.

그래서 다음 코드를 이렇게 고쳤어요.
void Update(){

        if ( movement.IsGrounded ) movement.Jump();


        if( Mathf.Abs(movement.Velocity.x) < (originSpeed - some)){

            Destroy(gameObject);

        }

    }


movement.Velocity.x < originSpeed 대신에,
originSpeed에서 약간의 값을 빼주는 식으로 했습니다.
시험해 보니 0.1f 만 빼줘도 되더라구요.
some 대신에 직접적으로 0.1f를 넣으시면 됩니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

idim7님께서 설명하신 문제는 2D 플랫포머 게임 제작 시, 플레이어가 던진 공이 지면에 닿았을 때 너무 빨리 사라지는 현상과 관련이 있습니다. 이는 공이 수평으로 이동할 때 마찰이나 다른 충돌 효과로 인해 예상보다 빨리 멈추게 되는 경우 발생할 수 있습니다.

이 문제를 해결하기 위해 idim7님께서 제안하신 방법은 공의 X축 속도가 원래 설정된 속도보다 약간 낮을 때도 공을 파괴하지 않도록 하는 것입니다. 이를 통해 공이 조금 더 오래 유지되도록 조정할 수 있습니다.

주어진 코드를 참고하면:
- movement.Velocity.xoriginSpeed보다 약간 작은 경우에도 공이 사라지지 않도록 설정합니다.
- originSpeed에서 0.1f를 빼는 방식으로 조건을 완화하여, 충돌 이후에도 공이 사라지지 않고 정상적으로 움직일 수 있도록 합니다.

이런 방식의 접근은 공이 갑작스럽게 사라지는 것을 방지하며 게임의 물리적 동작을 더 자연스럽게 만들어줍니다.

유사한 문제와 해결 사례 참고:

질문과 관련된 더 많은 정보와 구체적인 에러 메시지나 코드를 공유해주시면 추가적인 도움이 될 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

idim7님의 프로필 이미지
idim7

작성한 질문수

질문하기