반응형

Unity 25

Unity) Zombie Runner Prototype

1. 게임 디자인 - 정해진 목표를 달성하면 게임을 클리어할 수 있도록 하는 서바이벌 생존형식의 디자인을 채택했다. - 플레이어가 느낄 수 있는 경험(긴장감, 공포)과 게임의 목표(지정된 위치까지 이동하기), 핵심리텐션 요소(게임 디자인)들을 정했다. 2. 사용한 기술 > 전략 패턴 (디자인 패턴) 주요 시스템인 무기관련 시스템을 스크립트 하나로 작성할 경우, 시스템이 커져서 확장이 될수록 같은 메서드를 반복해서 작성해야하는 문제가 발생한다. 따라서 전략 패턴을 사용하기 적합하다고 생각했다. 전략 클래스들을 캡슐화 하기 위한 GunWeapon 클래스 using System; using System.Collections; using System.Collections.Generic; using UnityEn..

Unity 2023.11.28

Unity) Cinemachine Part 1

Cinemachine 이란? 시네머신은 카메라 로직을 개발할 필요가 없이 손 쉽게 카메라를 조작가능한 유니티 내장 패키지이다. https://unity.com/kr/unity/features/editor/art-and-design/cinemachine 시네머신 Unity의 시네머신으로 복잡한 카메라의 움직임을 만드는 방법을 알아보세요. 타겟 트래킹, 구성, 블렌딩 및 자르기까지 쉽고 직관적으로 작업할 수 있습니다. unity.com https://docs.unity3d.com/Packages/com.unity.cinemachine@2.2/manual/index.html Cinemachine Documentation | Package Manager UI website Cinemachine Documenta..

Unity 2023.11.23

Unity) Progrids, Polybrush

ProBuilder를 제대로 사용하기 위해서는 Progrids와 Polybrush를 함께 사용해야 한다고 한다. 아래 참고영상을 시청하시면 더 쉽게 활용이 가능하다. https://www.youtube.com/watch?v=YtzIXCKr8Wo - Progrids Progrids는 말 그대로 일정한 간격을 유지하면서 오브젝트들을 배치하는데 편의를 제공하는 툴이다. 상당히 유용하다. 위에서 세번째에 위치한 On/Off 토글을 On으로 바꿔주면 조절이 가능해진다. 위와 같은 특정 객체모양을 만드는데 많은 도움이 된다. - Polybrush Polybrush는 특정 오브젝트의 mesh나 texture를 커스텀할 수 있도록 편의를 제공하는 툴이다. #참조 https://blog.unity.com/technolo..

Unity 2023.10.31

Unity) ProBuilder

ProBuilder 란? 쉽게 말해서 블렌더와 같은 3D 모델링을 유니티 내부에서 할 수 있도록 제작된 프로그램이다. 기존의 단순 3D 오브젝트 뿐만 아니라 구조물, 복잡한 요철이 있는 터레인, 차량 및 무기를 단시간 내에 프로토타이핑하거나 커스텀 충돌 지오메트리, 트리거 구역 또는 내브 메시를 만들 수 있다. https://youtu.be/HUeQeSB45PI?si=t27Hk-rVcp8A09wQ - 주요 기능 > 돌출 및 삽입 원하는 어떤 형태로든 오브젝트를 제작할 수 있다. 한 번에 여러 면/에지를 돌출시킬 수도 있다. 선택된 오브젝트에서 모든 면의 노멀을 플립할 수 있어 특히 외부에서 모델링된 셰이프를 내부 공간으로 전환하는 데 유용하다. 미러 액션을 사용하여 오브젝트를 복사한 다음 대칭 형태를 만..

Unity 2023.10.30

Unity) ML Agent

ML Agent란? Unity에서 제공하는 인공지능 기반 지능형 에이전트다. 몇년전까지만해도 지능적으로 반응하는 가상 플레이어나 논플레이어블 게임 캐릭터를 만드는 것은 쉽지 않았고, 게임이 복잡할수록 더 까다로웠다. 개발자는 지능적인 동작을 만들려면 엄청난 양의 코드를 작성하거나 고도로 전문화된 툴을 사용해야 했다. 하지만 ML Agent를 이용하면 별도의 설계 없이 원하는 방향으로 학습시켜서 반응하도록 만들 수 있다. ML Agent이 머신러닝 기반이기때문에 유용하게 활용하기 위해서는 머신러닝과 관련된 기본개념을 알아야 한다. - 학습과 훈련 학습이라는 것은 인공지능이 스스로 데이터의 규칙을 찾아내도록 하는 기술이다. 여기서 특정 환경에서 특정 행동을 했을 때 계속해서 보상을 준다면, 인공지능은 특정 ..

Unity 2023.10.27

Unity) Design Pattern

Design Pattern 이란? 반복적으로 일어나는 문제에 대해 재사용이 가능한 코드형태를 의미한다. 보통 소프트웨어 구조의 설계와 관련이 많다. 좋은 소프트웨어 설계는 코드를 거의 건드리지 않고도, 적당한 함수 몇 개만 호출하면 원하는 작업을 할 수 있도록 '범용성' 있게 설계한 구조를 말한다. 해당 코드를 얼마나 쉽게 변경할 수 있는지, 얼마나 다양한 방식으로 활용할 수 있는지 여부가 '좋은' 코드 설계를 평가하는 척도가 된다. 하지만 너무 범용성만을 고려하다보면 성능을 저하시킬 수도 있다. 그래서 상황과 목적에 맞는 방식을 적절히 사용하는 것이 중요하다. - 명령 패턴 (Command Patterns) 게임 프로그래밍에서 자주 사용하는 디자인 패턴으로는 명령 패턴(Command Patterns)이..

Unity 2023.10.25

Unity) Prefab

Prefab 이란? 프리팹(Prefab)은 미리 만들어 놓은 게임 오브젝트, 템플릿이다. 프리팹은 Asset에 저장되어 있으며, 프리팹 인스턴스(Prefab Instance)를 생성하여, 월드 상에서 동작한다. 프리팹으로부터 원하는 만큼의 프리팹 인스턴스를 생성할 수 있다. 생성된 프리팹 인스턴스는 서로 독립적으로 동작하며, 프리팹 인스턴스의 프로퍼티를 수정해도, 다른 프리팹 인스턴스에는 영향을 주지 않는다. 쉽게 말해서 프리팹은 특정 공산품을 대량으로 생산할 수 있는 설비를 갖춘 공장인셈이다. - 환경 에셋 한 레벨에서 여러 번 사용되는 특정 유형의 나무를 예로 들 수 있다. - 논플레이어 캐릭터(NPC) 게임의 여러 레벨에서 특정 유형의 로봇이 여러 번 나타나는 경우를 예로 들 수 있다. 이때 움직이..

Unity 2023.10.24

Unity) Serializable, SerializeField

Unity에서 Serialize 란? 직렬화는 데이터 구조 또는 게임 오브젝트 상태를 Unity가 보관하고 나중에 다시 복구할 수 있는 포맷으로 변환하는 자동 프로세스다. 직렬화의 구조에 따라서 성능이 좌지우지된다고봐도 과언이 아니다. 우리는 C# 스크립트의 클래스 멤버 변수를 "public" 으로 지정함으로써 유니티 에디터의 Inspector에서 해당 변수의 값을 쉽게 변경하거나 다른 클래스에서 참조할 수 있도록 하는 경우가 있다. 하지만 남발하게 된다면 다수의 인원이 협업을 통해 프로젝트를 진행하는 과정에서는 문제가 될 수 있다. 변경되지 말아야 하는 어떤 자료가 외부 객체로부터 변경될 가능성이 있기 때문이다. 보통은 정보의 공개수준을 허가한 자료에 대해서만 외부의 접근과 조작을 허용하고, 실제로 자..

Unity 2023.10.23

Unity) Event

Event 란? Events는 이벤트를 '발생 시키는 쪽'과 이벤트에 대해 '반응하는 쪽'으로 되어 있다. 예를 들어서 한개의 채널이 있을 경우 이 채널에 존재하는 구독자들이 있다고 생각했을 때, 채널 주인이 글을 올렸을 때 구독자들에게는 채널장(이벤트 게재자)이 글을 올렸다고 알림이 가는 것 처럼 알려주는 것을 이벤트라고 생각하면 된다. 확실히 이벤트를 알고 잘 사용해야지 스파게티 코드가 되는 것을 최대한 막아준다는 것을 느꼈다. - UnityEvent 처리하는 방법 using UnityEngine.Events; // 요즘은 VSCode에서 자동으로 참조해준다. ... public UnityEvent inspectors; static internal UnityEvent scripts = new Unit..

Unity 2023.10.20

Unity) Animator

Animator 란? 우리가 익히 알고 있는 '애니메이션'이라는 단어 자체를 유니티에서 사용하는 용어로 표현하면 '애니메이션 클립'이 될 것이다. 특정 행동을 동작으로 표현하는 일련의 변화 과정을 하나의 애니메이션 클립으로 관리한다. 구성요소를 하나하나 뜯어보자. - Animation view 위와 같이 Unity editor 상단 Window 탭을 통하거나 Project view 상의 애니메이션 에셋을 더블클릭하는 것으로 아래와 같은 Animation view를 이용할 수 있다. Animation view에서 프레임 단위로 애니메이션 클립을 만들고 편집할 수 있는데, 기본적인 게임 오브젝트의 동작 표현과 더불어 게임 오브젝트의 위치, 머티리얼 색상, 빛의 밝기, 사운드 볼륨 등 Inspector에서 편..

Unity 2023.10.20
반응형