소프트웨어 개발 3대 원칙 : DRY, KISS, YAGNI
·
Unity/Design Pattern
1. DRY(Don't Repeat Yourself) DRY 원칙은 코드에서 중복을 피하도록 권장합니다. 효율적인 재사용을 위해 반복되는 코드를 하나의 구성 요소로 통합하는 것을 지지합니다. 이 원칙은 복잡성을 줄이고 유지 관리성을 높이는 것을 목표로 합니다. 시스템이 커짐에 따라 개념의 수와 상호 연결로 인해 복잡성이 기하급수적으로 증가할 수 있습니다. 각 개념과 기능이 한 곳에만 존재하도록 하여 이를 관리하는 것이 중요합니다. 이는 개별 코드 블록에서 팀 전체 기능 및 여러 팀 간의 공유 구성 요소에 이르기까지 프로젝트의 다양한 규모에 적용할 수 있습니다. DRY 원칙을 위반하는 것을 종종 WET라고 하는데, 이는 'We Enjoy Typing' 또는 'Write Everything Twice'를 의..
Unity : 게임 오브젝트에 Bouncing
·
Unity
이 글에서는 게임 객체를 어떻게 튕겨나갈 수 있는지 보여드리겠습니다.이것은 바닥, 벽 또는 천장에서 공을 튕겨야 할 때 유용합니다.Unity에서 이를 달성할 수 있는 방법을 알아보겠습니다. 1. 리지드바디(RigidBody) 추가 물리학 법칙을 적용하기 위해 통통 튀는 효과를 줄 오브젝트에 리지드바디 컴포넌트를 부착해야합니다. Use Gravity가 선택되어 있는지 확인합니다. 2. Material 생성 3. 마찰력과 탄력성 설정 4. 게임 오브젝트에 적용 생성한 Material을 드래그로 끌어다 놓거나 콜라이더 안의 Material을 생성한 것으로 바꿔주면 됩니다. 5. 테스트
Unity로 이해하는 상태 패턴 (State Pattern)
·
Unity/Design Pattern
상태 패턴란 ?? 상태 패턴은 개체가 클래스를 변경한 것처럼 내부 상태가 변경될 때 개체가 동작을 변경하도록 하는 동작 디자인 패턴입니다. 게임을 위한 적 AI를 만든다고 상상해 보십시오. 적은 순찰, 플레이어 추격, 공격과 같은 여러 상태를 가질 수 있습니다. 이러한 동작은 상당히 다르며 상태 패턴을 사용하지 않으면 코드가 여러 'if' 또는 'switch' 문으로 빠르게 복잡해질 수 있습니다. 상태 패턴이 빛나는 곳입니다. 이를 통해 서로 다른 동작을 별도의 클래스로 캡슐화하고 런타임에 전환할 수 있습니다. Unity에서 상태 패턴 구현 플레이어를 순찰하거나 추격할 수 있는 간단한 적 AI로 상태 패턴을 설명하겠습니다. 첫째, 적 상태에 대한 추상 기본 클래스가 필요합니다. csharpCopy cod..
Unity로 이해하는 옵저버 패턴 (Observer Pattern)
·
Unity/Design Pattern
옵저버 패턴 관찰자 패턴은 일부 개체('관찰자'라고 함)가 다른 개체('주체')를 관찰하고 상태 변경에 대한 알림을 받을 수 있도록 하는 동작 디자인 패턴입니다. 이 패턴은 한 개체를 변경하려면 다른 개체도 변경해야 하고 얼마나 많은 개체를 변경해야 하는지 모를 때 특히 유용합니다. 뉴스레터 구독이라고 생각하면 됩니다. 뉴스레터를 구독하면(관찰자가 됨) 뉴스레터 서비스(제목)에서 새 콘텐츠가 있을 때마다 업데이트를 보냅니다. Unity에서 옵저버 패턴 구현하기 게임에서 플레이어의 체력이 있는 경우를 예로 들어 보겠습니다. 플레이어의 체력이 변경될 때마다 다른 UI 요소(예: 체력 표시줄 또는 체력 텍스트 필드)가 업데이트되어야 합니다. 다음은 PlayerHealth 클래스('Subject')입니다. cs..
Unity의 Rigidbody 구성 요소 이해
·
Unity
Unity를 깊이 탐구했다면 의심할 여지 없이 Unity의 기본 구성 요소 중 하나인 Rigidbody를 접했을 것입니다. 3D 게임을 개발하든 2D 게임을 개발하든 Rigidbody 구성 요소를 이해하는 것은 게임의 물리 기반 상호 작용에 필수적입니다. 이 필수 구성 요소의 속성을 자세히 살펴보고 분석해 보겠습니다. 1. Mass 'Mass' 속성은 물체의 무게를 나타냅니다. 질량이 클수록 물체가 움직이는 데 더 많은 힘이 필요하고 충돌 시 더 많은 힘을 발휘합니다. 본질적으로 물체의 질량은 물체가 힘에 반응하는 방식과 충돌하는 동안 다른 물체에 미치는 영향에 영향을 미칩니다. 2. Drag 'Drag'는 물체의 움직임에 반대되는 공기 저항(또는 2D 물체의 경우 유체 저항)을 나타냅니다. 항력이 클..
Unity로 이해하는 팩토리 패턴 (Factory Pattern)
·
Unity/Design Pattern
팩토리 패턴 팩토리 패턴은 슈퍼클래스에서 객체를 생성하기 위한 인터페이스를 제공하지만 서브클래스가 생성될 객체의 유형을 변경할 수 있도록 허용하는 생성 디자인 패턴입니다. 기본적으로 팩토리 클래스를 사용하여 개체 인스턴스를 생성함으로써 개체 생성 프로세스를 추상화합니다. 제품 생성 프로세스가 정의된 조립 라인으로 생각하면 정확한 제품이 필요에 따라 변경될 수 있습니다. Unity에서 팩토리 패턴 구현 공장 패턴의 작동 방식을 이해하려면 각기 다른 클래스로 표시되는 고블린, 좀비, 뱀파이어 등 다양한 유형의 적을 생성할 수 있는 게임을 상상해 보세요. 각 클래스의 인스턴스를 직접 만드는 대신 팩토리 클래스를 사용하여 이를 수행합니다. 다음은 Enemy 클래스의 초기 구조입니다. csharpCopy code..
Unity로 이해하는 어댑터 패턴 (Adapter Pattern)
·
Unity/Design Pattern
어댑터 패턴 소개 래퍼 패턴이라고도 하는 어댑터 패턴은 호환되지 않는 두 인터페이스 간의 간격을 연결하여 기존 코드를 변경하지 않고 함께 작동할 수 있도록 합니다. 이 패턴은 소스 코드를 변경하지 않고 기존 클래스를 다른 클래스와 함께 작동시키려는 경우 매우 유용합니다. 어댑터 패턴에 대한 실제 비유는 전원 어댑터입니다. 소켓과 호환되지 않는 플러그가 있는 경우 플러그를 소켓에 원활하게 연결할 수 있는 어댑터를 사용합니다. 어댑터 패턴은 코드에서 호환되지 않는 클래스 또는 인터페이스에 대해 동일한 작업을 수행합니다. Unity의 어댑터 패턴 어댑터 패턴이 어떻게 작동하는지 설명하기 위해 Player 클래스와 Enemy 클래스가 있는 게임을 생각해 보십시오. 둘 다 공격할 수 있지만 다른 방법을 사용합니다..
오브젝트 자연스럽게 이동하기 : Mathf.PingPong
·
Unity/Tip
Mathf.PingPong이란? Mathf.PingPong은 값이 0과 지정된 최대값 사이에서 "핑퐁" 방식으로 앞뒤로 진동하게 만드는 Unity 함수입니다. 이 기능은 주로 부드러운 전환, 애니메이션 또는 특정 범위 내에서 숫자가 변동해야 하는 기타 사용 사례를 만드는 데 사용됩니다. Mathf.PingPong 구문 Mathf.PingPong의 구문은 매우 간단합니다. 여기있어: csharpCopy code Mathf.PingPong(t, length); 이 함수에서 't'는 진동시키고자 하는 값이고, '길이'는 진동의 최대값입니다. 이 함수는 0과 '길이' 사이에서 앞뒤로 핑퐁하는 값을 반환합니다. Mathf.PingPong의 실제 적용 Mathf.PingPong을 사용하는 실용적인 예를 살펴보겠습니..