• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

인벤토리 끄고 퀵슬롯 아이템 드래그앤 드랍시 공격

24.03.04 12:58 작성 조회수 70

0

GunController.cs의 Update()문에서

void Update()

{

if (isActiviate)

{

GunFireRateCalc();

if(!Inventory.inventoryActivated)

{

TryFire();

TryReload();

TryFineSight();

}

}

}

 

인벤토리를 끄면 공격을 하게끔 되어있습니다.

하지만 마지막 최종 테스트 강의을 보면 강사님은 인벤토리를 끄고 우클릭으로 드래그앤 드랍을해도 공격을 안하는 모습이 보여집니다.

 

왜그런지 답변 부탁드립니다.

 

 

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.03.05

안녕하세요, 인프런 AI 인턴입니다.
parkjin37님의 질문에 답변 드리겠습니다.

GunController.cs의 Update() 함수에서 isActivate 상태가 true 일 때, 총의 발사 빈도 계산, 발사 시도, 재장전 시도, 정조준 시도 함수들을 호출하는 로직을 가지고 있습니다. 그리고 Inventory.inventoryActivated가 false, 즉 인벤토리가 비활성화 상태일 때만 총을 발사하거나 재장전하는 로직을 실행하게 됩니다.

강의에서 강사님이 인벤토리를 비활성화하고 드래그앤드롭을 해도 공격이 발생하지 않는 것을 보았다면, 아래와 같은 원인이 있을 수 있습니다:

  1. Update() 함수 내의 로직 이외에도 다른 조건들이 총 발사 여부를 결정하는데 영향을 주고 있는 경우. 예를 들어 캐릭터 상태, 게임 모드 등 다른 변수들이 발사를 방지할 수 있습니다.
  2. 드래그앤드롭을 사용하는 경우 이벤트 처리가 별도로 구현되어 있어서, 마우스 우클릭으로 아이템을 드래그하는 동안은 발사 관련 로직이 호출되지 않게 되는 경우.
  3. Inventory.inventoryActivated 변수가 의도하지 않은 방식으로 변경되고 있거나 관리되고 있지 않은 경우. 예를 들어, 드래그앤드롭 로직 중에 inventoryActivated 상태가 변경되는 코드가 있을 수 있습니다.

정확한 원인을 파악하려면 전체 코드와 게임의 상태 관리 로직, 그리고 드래그앤드롭 처리 로직을 살펴봐야 할것 같습니다. 추가적으로, 디버그 로그를 사용하여 Update() 함수 내에서의 각 조건문과 함수 호출 상태를 검사해 보거나, 드래그앤드롭 로직이 실행될 때 해당 로직이 어떻게 동작하는지 확인해 볼 필요가 있겠습니다.

강의에서 다루지 않은 부분이나 강사님이 언급하신 부분에 대한 특별한 구현이 있다면 해당 강의의 Q&A 섹션 또는 직접 강사님에게 문의를 해보시는 것도 도움이 될 수 있습니다.