인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

작성자 없음

작성자 정보가 삭제된 글입니다.

책 3권을 영상으로 만든 Unity 게임 개발

적의 이동, 공격 구현

에너미 이동 질문

해결된 질문

작성

·

69

·

수정됨

1

Vector2.right에 -speed 곱하는거말고

Vector2.left를 사용하면 안되는 건가요??

 

그리고 코드를 /똑같이 작성했는데도 불구하고 에너미가 스폰되고 우리팀 본진에 충돌했을시 공격애니메이션이 최초 1회밖에 실행이 안됩니다 반복이 안되고 처음 충돌하고 최초 1회 실행되고 그다음부터는 그냥 아이들모션으로 멈추네요 왜이러는거죠ㅠㅠ

답변 2

0

JEngineer님의 프로필 이미지
JEngineer
지식공유자

질문 감사합니다!

 

Vecter2.right에 -speed를 곱하는 것과 Vecter2.left로 작성하는 법은 동일하게 작동이 됩니다! 편하신 대로 작성해주셔도 됩니다!

 

그리고 두번째 질문 주신 부분은 코드 누락이 있었던 것 같습니다. 이 부분은 제가 사과드리겠습니다..! 바로 수정해서 업로드하도록 하겠습니다..!

EnemyBaseAttack 코루틴 메소드를 이렇게 수정해주시면 됩니다.

 

IEnumerator EnemyBaseAttack() {

while (true) {

animator.SetFloat("EnemyStatus", 1f);

BlueBaseControl.Instance.TakeDamage(EnemyAttack);

yield return new WaitForSeconds(0.25f);

animator.SetFloat("EnemyStatus", 0.5f);

yield return new WaitForSeconds(1.5f);

}

}


코루틴 메소드를 반복하도록 하기 위해서는 while 문을 선언해서 조건을 true로 주고, while 문 내에 동작 코드를 작성하면 반복을 하게 됩니다. 다시 한번 죄송합니다..!

0

인프런 AI 인턴님의 프로필 이미지

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

유니티에서 Vector2.rightVector2.left는 방향 벡터로, 각각 (1, 0)과 (-1, 0)을 의미합니다. Vector2.right-speed를 곱하는 것과 Vector2.left를 사용하는 것은 기본적으로 동일한 동작을 수행합니다. 하지만 코드 스타일이나 개인적 선호에 따라 방향 벡터를 사용할 수 있습니다.

  1. Vector2.right * -speed: 이 방식은 방향을 오른쪽으로 지정한 다음 속도를 음수로 주어 왼쪽으로 이동시키는 방법입니다. 직관적으로 “오른쪽 방향에서 속도를 반대로 설정하여 왼쪽으로 보낸다”는 의미가 됩니다.

  2. Vector2.left * speed: 이 방식은 처음부터 왼쪽 방향을 지정하고, 이동 속도를 양수로 적용하여 같은 효과를 누리는 방법입니다. 코드의 가독성 측면에서 명확하게 “왼쪽으로 이동한다”는 의도를 나타냅니다.

둘 중 어느 쪽을 선택해도 동작에는 큰 차이가 없습니다. 다만, 팀 내 코드 스타일 가이드나 본인의 코드 스타일에 맞게 선택하여 사용하시길 권장합니다.

관련 질문이나 더 궁금한 점이 있으면 언제든지 문의해 주세요. 아래 유사한 질문 링크도 참고하시기 바랍니다.

애니메이션 질문 관련

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

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기