게임_클라이언트(3)
-
[UE5] 컴포넌트 디자인 패턴: 기본 전투
언리얼 엔진 C++ 공부중이며 건설적인 비판이나 수정사항 요청은 언제든지 환영합니다! 컴포넌트 디자인 패턴 코딩을 오랫동안 배운 사람이라도,어떠한 객체지향 프로그램을 제대로 만들어보지 않은 사람이라면,어떤 객체를 구현할 때 가질 수 있는 기능을 모두 클래스 안에 넣는 경우가 생긴다. 아니면 조금 만들어본 사람이라면 오버로딩이나 오버라이딩 등 상속을 잘 활용하는 경우도 있지만,그것만으로는 프로젝트의 유연성을 보장해주지는 못한다. 다음 예를 보자: 게임에서는 대부분 캐릭터와 몬스터(적)이 있다.각각은 체력, 공격력, 움직임 등의 성질이 있는데, 이 세가지 성질을 구현하는 좋지 않은 방법은 위의 두가지이다. 1. 첫번째는 캐릭터와 몬스터 각각의 클래스 안에 모든 성질을 일일이 다 구..
2024.09.12 -
[UE5](C++) 아이템, 무기 픽업
언리얼 엔진 C++ 공부중이며 건설적인 비판이나 수정사항 요청은 언제든지 환영합니다! RPG 게임에서의 핵심적인 요소 중 하나인 아이템 픽업을 구현해보았다.아이템 픽업을 구현하는 방법은 여러가지가 있겠지만,내가 구현한 방식은 델리게이트, 콜리전 프로파일, 소켓, 오버라이딩에 대한 이해가 필요하다. 델리게이트를 활용한 충돌 이벤트 우선, 아이템 클래스를 만든다. 필자는 cpp 클래스의 이름을 MyItem로 정했다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344// Fill out your copyright notice in the Description page of Project ..
2024.09.04 -
[UE5] Error: Exception _Access_Violation reading address 0x0000..
잡담 언리얼을 하다보면 크래시가 자주 뜨는데,일반적으로 사용하고 있을 때는 눈치채지 못하다가 다시 껐다가 키면 크래시가 발생하는 경우가 많다..즉 변경사항이 시스템에 곧바로 적용이 되지 않을 수 있다는 이야기. 프로그래밍을 입문했을 때 컴파일하고 오류를 잡는 과정이 난해하고 힘들어 했었는데, 시간이 지나면서 익숙해지고 점점 오류를 잡는 속도가 빨라지는 것을 느꼈다. 이러한 상용엔진은 코드 뿐만 아니라 실제 에셋 데이터 등 연관된게 많다보니,오류가 나면 일반적인 백준 문제를 풀며 에러를 해결하는 것보다 훨씬 어렵게 느껴진다.마치 처음 디버깅하며 느꼈던 감정과 비슷하려나.. 그렇지만, 나의 경험상 이러한 언리얼 크래시도 자주 겪다보면오류를 빠르고 정확하게 해결할 수 있는 날이 올것이라고 믿는다 :) ..
2024.08.28