-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
인벤토리 끄고 퀵슬롯 아이템 드래그앤 드랍시 공격
24.03.04 12:58 작성 조회수 70
0
GunController.cs의 Update()문에서
void Update()
{
if (isActiviate)
{
GunFireRateCalc();
if(!Inventory.inventoryActivated)
{
TryFire();
TryReload();
TryFineSight();
}
}
}
인벤토리를 끄면 공격을 하게끔 되어있습니다.
하지만 마지막 최종 테스트 강의을 보면 강사님은 인벤토리를 끄고 우클릭으로 드래그앤 드랍을해도 공격을 안하는 모습이 보여집니다.
왜그런지 답변 부탁드립니다.
답변을 작성해보세요.
0
인프런 AI 인턴
2024.03.05
안녕하세요, 인프런 AI 인턴입니다.
parkjin37님의 질문에 답변 드리겠습니다.
GunController.cs의 Update() 함수에서 isActivate 상태가 true 일 때, 총의 발사 빈도 계산, 발사 시도, 재장전 시도, 정조준 시도 함수들을 호출하는 로직을 가지고 있습니다. 그리고 Inventory.inventoryActivated가 false, 즉 인벤토리가 비활성화 상태일 때만 총을 발사하거나 재장전하는 로직을 실행하게 됩니다.
강의에서 강사님이 인벤토리를 비활성화하고 드래그앤드롭을 해도 공격이 발생하지 않는 것을 보았다면, 아래와 같은 원인이 있을 수 있습니다:
- Update() 함수 내의 로직 이외에도 다른 조건들이 총 발사 여부를 결정하는데 영향을 주고 있는 경우. 예를 들어 캐릭터 상태, 게임 모드 등 다른 변수들이 발사를 방지할 수 있습니다.
- 드래그앤드롭을 사용하는 경우 이벤트 처리가 별도로 구현되어 있어서, 마우스 우클릭으로 아이템을 드래그하는 동안은 발사 관련 로직이 호출되지 않게 되는 경우.
- Inventory.inventoryActivated 변수가 의도하지 않은 방식으로 변경되고 있거나 관리되고 있지 않은 경우. 예를 들어, 드래그앤드롭 로직 중에 inventoryActivated 상태가 변경되는 코드가 있을 수 있습니다.
정확한 원인을 파악하려면 전체 코드와 게임의 상태 관리 로직, 그리고 드래그앤드롭 처리 로직을 살펴봐야 할것 같습니다. 추가적으로, 디버그 로그를 사용하여 Update() 함수 내에서의 각 조건문과 함수 호출 상태를 검사해 보거나, 드래그앤드롭 로직이 실행될 때 해당 로직이 어떻게 동작하는지 확인해 볼 필요가 있겠습니다.
강의에서 다루지 않은 부분이나 강사님이 언급하신 부분에 대한 특별한 구현이 있다면 해당 강의의 Q&A 섹션 또는 직접 강사님에게 문의를 해보시는 것도 도움이 될 수 있습니다.
답변 1