트러블슈팅
-
[TIL] 15주차 4일 트러블슈팅 FSM을 사용하며 일어난 문제들개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 26. 10:11
FSM을 사용하면서 일어난 다양한 문제들문제State간의 전환이 안될 때가 있는 경우각 State의 애니메이션 간의 전환이 매끄럽지 않은 경우State의 강제적인 변환으로 인해서 일어난 버그들 ( 캐릭터가 굳어 버린다던가 )State간의 전환 사이에 1프레임 씩 다른 State가 섞이는 문제State의 전환에 따라서 물리적인 문제가 발생하는 경우State의 조작과 내부로직이 함께 작동하지 않고 따로 노는 경우State를 마구마구 변환 시키다 보면 발생하는 문제 ( 스킬을 막 누르고, 전환을 막 누르다 보면 굳음 )기존 접근저 버그들이 한번에 모두 발생한 것이 아니기 때문에버그가 발생할 때마다 그에 맞은 어느정도 하드코딩으로 대처를 했었다.예를 들면 State간의 전환이 안될 때는 미리 만들어둔 Chang..
-
[TIL] 14주차 5일 트러블슈팅 ( State가 많이 늘어나면서 생긴 문제들 )개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 19. 22:19
최종프로젝트 진행중정말 많은 버그가 있었지만, 애니메이션 관련된 버그는 진짜 다 부수고싶다..오늘은 그에대한 트러블 슈팅이다. 캐릭터가 마나가 부족할 때 스킬을 못쓰게 하는 방법 이 문제는 애니메이션 관련은 아니지만 맞기도한게 스테이트 머신으로의 진입을 막아야 하는데스킬마다의 스테이트는 다른데 마나도 달라서 고민하던 차에if(stateMachine.Player.healthSystem.CurrentMana 진입을 막는것이 아닌 아예 스킬 애니메이션 실행 전에 IdleState로 돌려버리는 방법으로해결했다. 스킬 슬롯 스왑문제 protected virtual void AddInputActionCallbacks() { if(UIManager.Instance.onUI) return; if (sta..
-
[TIL] 13주차 2일 FSM에서 신경써야 할 부분 ( 트러블 슈팅 )개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 9. 18:20
FSM을 사용한다는 건 많은 애니메이션을 사용한다는 것이다.그렇다보면 갖가지 이유로 버그가 발생하곤 한다.나만해도 Has Eixt Time 만으로도 수많은 버그가 발생했었다. 트러블 슈팅 오늘 해결한 문제 1. 플레이어가 떨어지면서 1프레임 IdleState가 되는 현상2. 플레이어가 달리면서 점프하면 중간에 갑자기 멈춰서 뚝 떨어지는 현상3. 플레이어가 제자리에서 점프하면 공중에서 움직여지지 않는 현상 첫 번째의 경우에는public override void Update(){ base.Update(); if(stateMachine.Player.Rigidbody.velocity.y 내가 JumpState일 때 Rigidbody.velocity.y가 0과 같거나 작으면 아이들 상태로 돌아가게초기에..
-
[TIL] 12주차 4일 ( Raycast2D로 연속점프 방지하기 _ 트러블슈팅 )개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 4. 21:03
트러블 슈팅 연속점프를 막기위한 Raycast2D 코드private void FixedUpdate(){ stateMachine.PhysicsUpdate(); if (Rigidbody.velocity.y 0.5f) { isJump = true; } } }}DrawRay 상으로는 분명 바닥에 잘 레이가 닿았는데 기능하지 않았다.if(rayHit.distance 0.5f로 바꿔서 해결했다.distance는 Ray의 원점에서 충돌체 까지의 거리라서원점이 생각보다 위쪽에 잡혔기 때문에원점까지의 거리가 0.5이상일 때로 바꿨고그렇다고 추가 점프가 되지 않게 충돌체가 존재할때만 ditance를 계산한다. 하지만 이러고 ..
-
[TIL] 10주차 4일 ( 옵저버패턴 , 캐릭터 스텟 강화 )개발일지/스파르타 코딩클럽 부트캠프 2024. 6. 20. 21:01
오늘은 관찰자 패턴에 대해서 공부한 부분을 간단하게 볼건데 그 전에 자료초반부에도 써져있던 부분을 정리해봤다. 모든 문제에 정답이란 없으며 확실치 않을 때는 Kiss(Keep it simple, stupid) 단순하게 유지하기, 수고를 더 들일 가치가 있을지 미리 생각하기 필요할때만 사용하기관찰자 패턴(Observer pattern)관찰자 패턴은 일대다 종속관계를 사용해 오브젝트가 통신하되 낮은 결합도를 유지하도록 할 수 있다. 한 오브젝트의 상태가 변경되면 종속된 모든 오브젝트가 자동으로 알림을 받는다. 게임플레이 과정에서 발생하는 거의 모든 상황에 관찰자 패턴을 적용할 수 있다. 관찰자 패턴의 장점결합도가 낮고 확장성이 높음런타임에서 옵저버 추가 제거가 용이유니티에선 구현이 용이단점시스템의 복잡성이 ..