분류 전체보기(189)
-
전투 게임 4일차
어제 공격속도를 적용했는데 뭔가 아직 해결되지 않은것같다. 공격속도가 4일때, 1초에 4번 공격하지도 않음!! ㅜㅠ 일단 애니메이션 테스트를 해보니 배속은 정상적인것 같고, 하나는 애니메이션만 재생하는 인형이고 나머지는 일반 캐릭터인데 애니메이터를 보니까 상태 전환이 일어나는 과정에서 애니메이션이 씹히는것 같다.. 지금 상태머신 상 Attack 후 Idle -> Chase - > Attack 인데. Idle상태에서 Walk 트리거가 발동된 상태여서 두개가 가끔 동시에 켜질때가 있는데 이게 Walk로 가버리는 순간 공격이 끊김.. 일단 몇가지 해결 방법을 또 생각할 수 있는데 알고리즘을 수정하거나 애니메이션 타임을 좀 수정하거나 아니면 Attack일때 트리거를 꺼버리는 방법 지금 떠오르는것은 여기까지. 일..
2024.01.17 -
전투 게임 3일차
일단 '공격속도' 라는것을 구현해야 하는데, 일단 처음에 생각한것은 AI측에서 State제어를 걸어주는것. 하지만 이것은 AI가 또 스텟 참조를 해야한다. 그리고 공격속도라는것은 모든 캐릭터에 적용되는 사항이라서 다른 방법이 필요할 것 같다. 그렇다면, 공격속도를 제어해주는 것은 결국 캐릭터측에서 존재해야 할 것 같다. 다시 말하지만 공격속도는 모든 캐릭터에서 존재하여야 한다. 그리고 공격속도는 추상적인게 아니라 어떠한 실체가 제어를 해 주어야 한다. 근데 지금은 모든 캐릭터가 인터페이스만 상속받고있다. 따라서 캐릭터를 관리하는 상위 클래스가 존재하여야 한다. 갑자기 Knight is a Char 와 Char has a Knight 와 조금 헷갈렸다. Char has a Knight는 애초에 뭔가 말이 ..
2024.01.16 -
InputManager
InputManager을 사용하는 이유!! 예들 들어서, 입력을 받는 객체가 있다고 가정해보자. 자 객체가 하나일때는 괜찮다 하지만 여러 객체가 입력을 받는다면? 그 객체의 수만큼 Update에서 계속 입력을 받았는지 안받았는지 if문으로 체크를 하는 상황이 발생한다!! 이는 성능 이슈가 발생할수 있는 충분한 여지이다. 또한? 어디서 입력이 되었고 어떤것을 실행하여야 하는것인지 명확하지 않다. 이를 해결해줄수 있는것이 바로 InputManager이다. 한번 만들어보자. 일단 델리게이트(Action)을 이용한 방식으로 실행이 된다. 이제 간단한 캐릭터 인풋을 구현해보자. Update에서 Input을 계속 체크해주는 모습이다. 만약 이 객체가, 10개 혹은 100개가 있다면 Update에서 100번을 동일하..
2024.01.15 -
전투 게임 2일차
일단, 전에 생각했던 수정사항중 하나를 적용해보자면 알고리즘과 행동에 대한 분리가 필요하다고 생각하였다. AI는 단순히 조건에 따라서 상태를 전이하는 역할만 한다. 일정한 거리에 적이 들어오면 공격 상태로 전이하고, HP가 얼마 남지 않았으면 뒤로 후퇴하고.. 상황에 따라서 다른 알고리즘을 가질수도 있겠지만, 같은 알고리즘을 가질수도 있다. 하지만 여기서 상태전이와 행동(공격,데미지) 등을 같이 처리하게 된다면, 하나의 캐릭터에만 스크립트가 의존하게 됨으로서 또다른 스크립트를 만들어야지 적용할 수 있다. 예를 들어 생각하자면 나는 클래시오브클랜의 바바리안과 바바리안 킹이 있다고 생각하였다. 바바리안과 바바리안 킹은 알고리즘이 아마 비슷하거나 똑같을것이다. (바바리안 킹이 스킬만 추가될 뿐.) 일단 똑같다..
2024.01.14 -
전투 게임 1일차
1일차! 스텟관리 및 AI를 손보았다. 친구랑 롤 하면서 매치 돌리는 시간에 틈틈히 만들어봄! ㅋㅋ 일단 테스트삼아서 해 보려고 했는데 판이 커짐.. 열거형으로 변경해야 함. 간단한 AI 제작.. 개판으로 한번 싸워보았따. 그냥 테스트 삼아서 해 본거니까 AI도 미흡하고 설계적인 문제가 있다. 나중에 고쳐야지..ㅎ
2024.01.09 -
오늘의 연구
뜬금없지만 공부를 하다가 프리팹의 인스턴스화 과정이 궁금해서 고민해보았다. 하지만 그 질문을 해결하기 전에 또 궁금한것이 생겼는데 필드에서 바로 생성자를 호출하는것에 대하여 의문점을 가졌다. 그래서, 이렇게 3중으로 타고 타고 클래스를 계속 생성해보았따. 마지막 순서대로 생성이 되는것이 뭔가 상속관계와 비슷한 느낌이랄까? 좀 찾아보았는데, C#은 마이크로소프트에서 개발한 것 이니까 여윽시 마이크로소프트 공식 문서에서 찾아보면 된다. 공식 문서에 따르면 이렇다고 한다. 따라서 처음 Test 클래스가 있는데 필드에서 초기화를 진행하니까 TestClass라는 놈이 초기화가 될것이다. 하지만 저 말에 따르면 필드는 인스턴스에 대한 생성자를 호출하기 직전에 필드가 초기화가 되니까..TestClass의 필드가 초기..
2023.12.24