Humility

아무리 노력해도 최고가 되지 못할 수 있다⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀그럼에도 노력하는자가 가장 겸손한 것 아닌가

공부하는 블로그
반응형

유니티 52

[Unity] 유니티 C#) 메트로배니아 미니맵과 전체맵 ( 심화편 )

이번엔 맵 이동과 이동했을때 맞춰 업데이트 되는 맵을 구현해보겠다0. 준비다른맵을 같은 형식으로 만들어 주었다 ( Terrain 타일맵과 미니맵로 사용할 타일맵 ) 1. 플레이어간단하게 캡슐로 만들어주고 리지드바디와 콜라이더를 붙여주었다 플레이어의 자식으로 빈게임오브젝트를 하나 만들자Sprite Renderer만 추가하고 레이어를 미니맵으로 변경해주면미니맵에서 플레이어의 위치를 표시해줄 수 있다 플레이어 부분 코드는 아래쪽에서 한꺼번에 작성하였습니다 2. 카메라유니티 레지스트리에서 시네머신 다운로드 빈게임 오브젝트에 폴리곤 콜라이더로 시네머신이 돌아다닐 수 있는 범위 설정폴리곤 콜라이더 컴포넌트의 Points 값을 조정하여 반듯한 모양을 만들 수 있다 버츄얼 카메라 생성 후 세팅플레이어를 따라가야 하니 ..

[Unity] 유니티 C#) 메트로배니아 미니맵과 전체맵 ( 기본기능편 )

저번에 만들어둔 미니맵을 바탕으로 스크립트 작업을 이어나갔다설정이 더욱 중요하므로 보지 않았다면 아래 링크에서 보고 오시는 걸 추천한다 https://tears2am.tistory.com/44 0. 준비빈게임오브젝트를 생성하고 MapController와 MapManager 2개의 스크립트를 생성한다 1. MapController전체맵을 켜고 끄는 기능을 담은 스크립트다using UnityEngine;using UnityEngine.UI;public class MapController : MonoBehaviour{ public RawImage minimapImage; public RawImage fullmapImage; private KeyCode toggleMapKey = KeyCode...

[Unity] 유니티 C#) 2D 매트로베니아 미니맵과 전체맵 ( 유니티 설정편 )

매트로베니아 게임을 제작하며 미니맵 기능을 제작하였다미니맵 기능은 스크립트 작업보다 유니티로 설정 해주는 부분이 더 컸었다 완성된 미니맵 기능0. 준비타일맵으로 지형과 미니맵을 만들 것이기 때문에 2D로 프로젝트를 생성하였다 1. 지형 제작아래 사진과 같이 타일맵을 생성하고 원하는 지형을 그린다  2. 미니맵 제작미니맵으로 사용할 타일맵을 생성하여 이전에 만든 지형과 똑같이 그려준다'미니맵' 레이어를 추가하여 미니맵으로 사용할 타일맵의 레이어를 설정해준다 3. 카메라 설정 먼저 렌더텍스쳐를 생성하여 미니맵이라는 이름을 붙여주었다  메인카메라의 컬링마스크에서 미니맵 레이어를 제외하여 메인카메라에선 미니맵이 비춰지지 않게 하였다 맵을 비출 카메라를 새로 생성한다인스펙터 설정미니맵만 비추는 용도로 사용할 것이..

[Unity] 유니티 C#) Facade 패턴

파사드 패턴 복잡한 시스템을 간단한 인터페이스로 제공하는 구조적 디자인 패턴  기본 구현 방법1. 복잡한 하위 시스템들public class AudioSystem{ public void InitializeAudio() => Debug.Log("오디오 시스템 초기화"); public void PlayBackgroundMusic() => Debug.Log("배경음악 재생"); public void PlaySoundEffect(string effect) => Debug.Log($"효과음 재생: {effect}");}public class SaveSystem{ public void SaveGameState() => Debug.Log("게임 상태 저장"); public void Load..

[Unity] 유니티 C#) Adapter 패턴

어댑터 패턴호환되지 않는 인터페이스들을 함께 작동하도록 하는 구조적 디자인 패턴 기본 구현 방법1. 기존 시스템에서 사용하는 인터페이스Target (ICharacterMovement): 클라이언트가 사용하는 인터페이스public interface ICharacterMovement{ void Move(Vector3 direction); void Jump();} 2. 새로운 시스템의 클래스 ( 적용하고 싶은 클래스 )Adaptee (ModernMovementSystem): 적용하고 싶은 새로운 클래스public class ModernMovementSystem{ public void UpdatePosition(float x, float y, float z) { Debug.Lo..

[Unity] 유니티 C#) SpatialPartition패턴

공간 분할 패턴게임 내의 공간을 여러 영역으로 분할하여 충돌 감지나 객체 검색을 최적화하는 패턴 기본 구현 방법1. 그리드의 각 셀에 들어갈 게임 유닛을 위한 인터페이스public interface IGameObject{ Vector2 Position { get; } void CheckCollision(IGameObject other);} 2. 실제 게임 유닛 클래스public class Unit : MonoBehaviour, IGameObject{ public Vector2 Position => transform.position; public void CheckCollision(IGameObject other) { // 충돌 처리 로직 Debu..

[Unity] 유니티 C#) Decorator 패턴

데코레이터 패턴 객체에 동적으로 새로운 책임과 기능을 추가할 수 있게 해주는 구조적 디자인 패턴  기본구현방법1. 기본 무기 인터페이스public interface IWeapon{ float GetDamage(); string GetDescription();} 2.기본 무기 구현public class BasicSword : IWeapon{ public float GetDamage() { return 10f; } public string GetDescription() { return "기본 검"; }} 3. 무기 데코레이터 기본 클래스public abstract class WeaponDecorator : IWeapon{ protect..

[Unity] 유니티 C#) Strategy 패턴

전략 패턴 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있게 해주는 패턴  기본구현 방법1. 전략 인터페이스 정의public interface IMovementStrategy{ void Move(Transform transform);} 2. 구체적인 전략 클래스들public class WalkStrategy : IMovementStrategy{ private float speed = 5f; public void Move(Transform transform) { float horizontalInput = Input.GetAxis("Horizontal"); float verticalInput = Input.GetAxis("Vertical")..

[Unity] 유니티 C#) Visitor 패턴

방문자 패턴알고리즘을 객체 구조에서 분리시키는 디자인 패턴주로 복잡한 객체 구조에서 각 객체에 대해 서로 다른 작업을 수행해야 할 때 사용된다 기본 구현 방법1. Visitor 인터페이스public interface IVisitor{ void Visit(Enemy enemy); void Visit(Item item); void Visit(NPC npc);} 2. 방문 가능한 요소들의 인터페이스public interface IElement{ void Accept(IVisitor visitor);} 3. 구체적인 게임 요소들public class Enemy : MonoBehaviour, IElement{ public int health; public int damage; ..

반응형