Game 21

[유니티] 유니티 엔진 원리

상속 게임 엔진은 이미 완성된 기반 코드를 제공한다. 지금까지 포스팅해온 게시글을 움직이는 것(translate)과 충돌하는 것(OnTrigger)과 같이 이미 작성된 코드를 재사용하여 게임을 만들었다. 이러한 '재사용'과 관련이 깊은 키워드는 바로 상속이다. 하지만 유니티 엔진에서는 이러한 상속을 유니티를 동작시키는 데 있어 핵심이라고 부르진 않는다. 왜 그럴까? 바로 상속의 한계 때문이다. 게임을 만들 때 상속의 한계는 명확하다. 상속에 의존하다보면 오히려 코드의 재사용이 힘들어지고, 추후에 자식 클래스와 부모 클래스의 기능이 충돌하는 등 더욱 번거로워지기 때문이다. 예를 들어보자. RPG 게임에서 플레이어와 NPC, Monster를 상속을 이용해 만든다고 가정해보면, 이들의 기반인 Human 클래스..

Game/Unity 2023.02.09

[유니티] 프리팹(Prefabs)과 감지(Detection), 충돌(Collision) (2)

목표 - 프리팹의 개념을 이해하고 프리팹 인스턴스를 생성하기. - 프리팹화된 몹들을 감지하기. 충돌(Collision)과 감지(Detection) 게임을 하다 보면 몹의 특정 범위 내에 들어와서 공격을 받는 상황을 겪어보았을 것이다. 예를 들어보자. 타워 디펜스류 게임을 할 때 타워가 설치되고 몹을 인식하기 전까진 아무런 행동을 하지 않다가, 몹이 범위 안에 들어오면 공격을 하기 시작하는 것을 예로 들 수 있겠다. 이렇게 몹을 감지하고 공격하는 행동은 어떻게 해야 구현이 될까? 공격을 하기 위해선 몹을 감지하는 것이 우선이겠다. 여기서 감지(Detection)란 말 그대로 범위 내에 특정 오브젝트를 인식하는 것을 의미한다. 유니티에서는 감지를 하기 위해 자주 사용하는 것이 있는데, 바로 충돌(Collis..

Game/Unity 2023.02.01

[유니티] 프리팹(Prefabs)과 감지(Detection), 충돌(Collider) (1)

목표 - 프리팹의 개념을 이해하고 프리팹 인스턴스를 생성하기. - 프리팹화된 몹들을 감지하기. 프리팹(Prefabs) 게임을 하다 보면 동일한 목표를 가진 오브젝트가 여러 마리 생성되는 것을 쉽게 볼 수 있다. 예를 들어 보자. 우리가 한 번 씩 해본 메이플 스토리를 생각해보면, 사냥을 할 때 맵에 있는 몬스터들을 봤을 때 동일한 몬스터가 같은 패턴으로 행동한다. 일정 범위 내의 플레이어를 인식하고, 몬스터의 고유의 행동(공격)을 한다. 만약 이러한 몹들이 생성될 때마다 생성된 수만큼 오브젝트를 생성하고 컴포넌트를 부착한다면 굉장히 비효율적일 것이다. 이러한 상황을 해결하기 위해 사용하는 것이 바로 프리팹이다. Unity 공식 문서에 따르면 Unity의 프리팹 시스템은 게임 오브젝트를 생성, 설정 및 저..

Game/Unity 2023.01.26

[로스트아크] 기초 가이드 - 악세서리와 어빌리티 스톤

성장 시스템 (2) 지난 편에는 장비와 재련을 통해 성장하는 방법을 알아보았습니다. 이번에는 장신구(악세서리, 팔찌)와 어빌리티스톤이 무엇인지 알아봅시다. - 악세서리 빨간색으로 칠한 오른쪽을 보면 목걸이, 귀걸이 2개, 반지 2개, 팔찌가 보입니다. 이를 악세서리로 분류합니다. 악세서리는 전설, 유물, 고대 단계로 나뉘는데 하나씩 알아봅시다. 위에 나와 있는 '추락한 혼돈의 반지'는 어비스 레이드 아르고스에서 드랍할 수 있는 전설 악세서리 중 하나입니다. 장비와 마찬가지로 아이템 레벨 1370부터 낄 수 있습니다. 최근엔 성장 구간 개편으로 인해 유물 악세서리를 착용하는 구간까지 빠르게 올라갈 수 있으므로, 카오스 던전 등에서 얻은 자신의 특성(특화, 치명, 신속)에 맞는 악세를 임시로 착용하고 계시면..

Game/LostArk 2023.01.24

[유니티] 오브젝트 이동 (2)

목표 - 오브젝트가 특정 경로를 따라 이동하게 구현 - 좌표와 애니메이션을 이용해 오브젝트가 움직이며 이동하게 구현 특정 경로를 따라 이동 이전 [유니티] 오브젝트 이동(1)에서는 기본적인 이동방법 2가지인 transform.Translate와 transform.position에 대해 간략하게 알아보았다. 이번 파트에서는 이 두 가지 방법 중 하나를 이용해서 경로를 따라 이동하는 것을 구현해보자. 다음과 같은 타일을 맵으로 해서 노란색 경로를 따라 지나가다 End를 만나면 멈추는 것을 구현해보자. Start부터 시작해서 꺾이는 분기점을 지나게 하려면 어떻게 해야할까? - Vector3.moveTowards 유니티 공식 문서에 따르면 Vector3의 프로퍼티중 MoveTowards는 다음과 같다. curr..

Game/Unity 2023.01.23

[로스트아크] 기초 가이드 - 장비와 재련

성장 시스템 로스트아크에는 성장하는 방법이 다양하게 존재합니다. 특수한 능력을 가진 장비를 제작하는 것부터 시작하여 기초적인 아이템 강화, 보석 레벨 성장, 스킬 트라이포드 활성화 등 많은 방법들이 있습니다. 어떤 것이 효율적일지는 뉴비들에게 어려울 수 있으니, 어떻게 하면 내 캐릭터를 강화할 수 있는지 성장 시스템에 대해 살펴봅시다. - 장비 작성자의 캐릭터를 기준으로 왼쪽을 머리부터 무기까지 총 6종류의 장비가 착용되어 있는 것을 알 수 있습니다. 이때 장비는 크게 전설 장비 / 유물 장비 / 고대 장비로 분류됩니다. 물론 카오스 던전에서 얻을 수 있는 장비, 어비스 던전에서 얻을 수 있는 장비 등도 있지만, 성장 구간 개편을 통해 빠르게 스킵하는 것이 가능하므로 크게 다루지는 않겠습니다. 전설 장비..

Game/LostArk 2023.01.21

[유니티] 오브젝트 이동 (1)

목표 - 오브젝트가 특정 경로를 따라 이동하게 구현 - 좌표와 애니메이션을 이용해 오브젝트가 움직이며 이동하게 구현 오브젝트 이동 오브젝트가 특정 경로를 따라 이동하는 것을 구현하기 전에, 유니티에 존재하는 이동 방법들에 대해 먼저 알아보자. 우리가 어떤 오브젝트를 생성했을 때 그 오브젝트의 인스펙터창을 보게 되면 다음과 같은 Transform 컴포넌트가 항상 존재한다. 이 Transform 컴포넌트는, 유니티 공식 사이트에 따르면 Scene 속 각 Object의 Position(위치), Rotation(회전), Scale(크기)를 결정한다고 쓰여 있다. 쉽게 말해 좌표에 관한 정보를 담고 있다고 생각하면 되겠다. 따라서 이러한 위치를 프레임마다 변경한다면 우리는 마치 이 오브젝트가 이동하는 것처럼 보일..

Game/Unity 2023.01.19

[유니티] 카메라 조작 및 단축키

화면 회전 Scene에 우클릭을 유지하고 이동하면 화면이 마우스 방향을 따라 회전한다. 화면 상하좌우 이동 Scene에 우클릭을 유지하고 w(앞), s(뒤), a(좌), d(우), e(상), q(하). 이때 속도를 높이고 싶으면 Shift키도 같이 눌러준다. 카메라 2D/3D 전환 키보드 2번 카메라를 현재 Scene이 보이는 화면으로 전환 Hieararchy 창에서 Main Camera를 클릭하고, Ctrl + Shift + f (만약 물체를 현재 카메라 위치로 옮기고 싶으면, 오브젝트를 선택하고 Ctrl + Shift + f)

Game/Unity 2023.01.18

[유니티] 기초 UI

좌측에 Q,W,E,R,T,Y의 단축키를 통해 오브젝트를 이동시키거나 회전시키는 등의 기능을 사용할 수 있다. ① Scene 게임 오브젝트가 포함되는 공간. 캐릭터, 장애물, 배경 등을 배치할 수 있다. ② Console 유니티가 실행되며 생성되는 메시지를 출력하는 창. 유니티 스크립트에서 Debug 명령어를 통해 콘솔에 원하는 메시지를 표시할 수도 있다. 단축키는 Ctrl + Shift + C. ③ Game View 유니티가 실행됐을 때, 유저의 입장에서 보게되는 디스플레이. ④ Hieararchy Scene에 표시되는 게임 오브젝트를 표시하고 있는 계층 창. 여기서 Scene에 사용할 게임 오브젝트를 정렬하거나 그룹화할 수 있으며, 부모-자식 계층 구조를 사용할 수도 있다. ⑤ Project 해당 프로..

Game/Unity 2023.01.17