[Unity] 유니티 무기 시스템 구현(전략 패턴 이용, 구현 코드)
게임에서 무기는 여러가지 종류가 있기 때문에 확장성과 유연성은 필수적인 요소 입니다. 만약 캐릭터가 검을 쓰다가 활을 쓴다거나, 지팡이을 쓰는 경우에 애니메이션도 변경해 줘야 하고, 공격 방식도 변경해 줘야 합니다. 전략…
게임에서 무기는 여러가지 종류가 있기 때문에 확장성과 유연성은 필수적인 요소 입니다. 만약 캐릭터가 검을 쓰다가 활을 쓴다거나, 지팡이을 쓰는 경우에 애니메이션도 변경해 줘야 하고, 공격 방식도 변경해 줘야 합니다. 전략…
for, foreach, while문은 반복문이라는 공통점이 있지만 사용에 따라서 의도가 달리지기 때문에 어떻게 사용하느냐에 따라서 가독성 측면에서 나쁠 수도 좋을 수도 있으며, 치명적인 오류가 생길 가능성도 낮춰주기도 합니다. 이번 시간에는 각…
DateTime과 TimeSpan은 앱이나 게임을 만들 때 자주 사용되곤 합니다. 두 가지 모두 틱을 기본 단위로 가지기 때문에 현재 틱을 시간이나 분, 초로 바꾸거나, 현재시간으로 바꿔야하는 경우가 많습니다. 이 두 가지의…
학생 시절 접근제한자를 사용하는 이유는 대략적으로 알겠는데 get, set 즉, 프로퍼티를 왜 사용하는지 몰랐던 적이 있습니다. 이유를 모를 경우 get set을 사용 안 하게 되고, 비효율적인 프로그래밍으로 이어지게 됩니다. get…
if문과 switch문은 조건에 맞는 코드를 실행시킨다는 것에서 공통점이 있습니다. 하지만 차이점이 있기 때문에 구분해서 사용해만 각자의 장점을 살려서 사용할 수 있습니다. 즉, 장점과 단점을 모르고 사용할 경우 각자의 단점이 부각되게…
List와 Array는 하나의 변수가 아닌 여러 개의 변수를 담을 수 있다는 점에서 공통점이 있습니다. 하지만 서로의 특성을 잘 알지 못하는 상태로 쓰다보면 리스트를 써야하는 상황에 배열을 쓰게 되고, 그 반대의…
Action과 delegate, Unityevent모두 메서드를 대신 호출해 주는 "대리자"라는 성격을 가진 점에서 비슷합니다. 각각 차이가 존재하며, 그에 따라 용도도 조금씩 달라집니다. 이러한 차이를 아는 것은 코드를 효율적으로 구성하는 데 도움이 많이…
추상 클래스와 인터페이스는 어떠한 객체가 공통된 기능을 중복없이 사용하게 해주고, 그로 인해서 확장성과 유연성이 증가하게 됩니다. 하지만 이 둘의 차이를 모를 경우 추상 클래스를 써야 할 상황에 인터페이스를 사용하게 되고,…
객체지향 프로그래밍을 처음 배우면 잘 와닿지도 않을 뿐더러 어떻게 코드를 작성 해야 하는지도 감이 잘 안 잡히실 겁니다. 이 문제점을 잘 알기에 이번 시간에는 객체지향 프로그래밍이 무엇인지 알아보고 그 장점과…
C#에서 상속은 정말 중요한 개념입니다. 많이 사용되기도 하며, 잘 사용한다면 코드의 양을 많이 줄일 수있기 때문입니다. 그 뿐만 아니라 프로젝트의 생산성과 확장성이 올라가게 됩니다. 이번 시간은 왜 상속이 중요한지, 생산성과…
클래스와 네임스페이스는 c#에서 기초적인 문법 중 하나입니다. 기본기가 뛰어나야 코딩 실력이 오른다는 말이 있듯이, 두 개념을 잘알아 두고 언제 사용 해야하는지 알아합니다. 클래스는 개념들을 하나로 캡슐화 해주는 역할을 해주고, 네임스페이는…