전체 글
-
[TIL] 유니티 숙련주차 3TIL 2024. 5. 28. 21:20
Ai 네비게이션 (ai Navigation)인공지능이 게임이나 시뮬레이션 등 가상 환경에서 이동하는 방법을 결정하는 기술주로 3D 게임에서 캐릭터나 NPC가 지능적으로 이동하도록 만들어 진다.이를 위해 AI 네비게이션 시스템은 지형, 장애물, 목표 지점 등을 고려하여 적절한 경로를 생성하고 이동하는 데 사용된다. 주요 기술과 개념1. Navigation Mesh (네비게이션 매쉬)3D 공간을 그리드로 나누어 이동 가능한 지경꽈 장애물이 있는 지역을 구분하는 매쉬캐릭터가 이동할 수 있는 영역과 이동할 수 없는 영역을 정의하고 이를 기반으로 경로를 계산2. Pathfinding (경로 탐색)캐릭터의 현재 위치에서 목표 지점까지 가장 적절한 경로를 찾는 알고리즘주로 A*알고리즘 등이 사용되며 지정된 목표까지 ..
-
[TIL] 유니티 숙련주차 2TIL 2024. 5. 27. 21:25
TryGetComponentunity에서 사용하는 메서드로, 게임 오브젝트의 컴퍼넌트를 가져오는 기능이 메서드를 사용하면 특정 컴포넌트가 게임 오브젝트에 연결되어 있는지 확인하고 연결되어 있다면 해당 컴포넌트를 가져올 수 있다.Public bool TryGetComponenet(out T component) where T : componenet; T: 가져오려는 컴포넌트 타입. Monobehaviour를 상속한 컴포넌트는 모두 사용 가능componenet: 컴포넌트를 가져올 떄 사용되는 out 매개 변수 예시 코드using UnityEngine;public class ExampleScript : MonoBehaviour{ private void Start() { Rigidbody ..
-
[TIL] 유니티 숙련주차 1TIL 2024. 5. 24. 21:03
스카이박스(Skybox)게임 세계를 둘러싸는 환경 매핑 기술. 큐브 맵과 구체형 스카이박스 등이 있으며 다음과 같은 특징을 가진다.스카이 박스는 6개의 텍스처로 구성된 큐브 맵 또는 하나의 구체로 텍스처가 매핑된 구체형 스카이 박스로 구성된다. Unity에서는 씬의 배경으로 사용되며 게임 환경을 확장시키는데 활용주로 자연적인 배경을 표현하는데 사용게임 중에 스카이 박스를ㄹ 동적으로 변경하여 낮과 밤 등의 시간대나 특정 이벤트에 맞게 배경을 변화시킬 수 있다.성능에 영향을 미치므로 최적화에 주의 Material 생성 후 Shader에 Skybox / Provedural 로 변경Window- Rendering- Lighting - Environment 에서 Skybox Material을 변경Sky Tint ..
-
[TIL] 객체지향 코드 설계 2TIL 2024. 5. 23. 21:34
SOLID 원칙이전 강의에서 잘 설계된 객체지향 코드는 응집도를 높이고 결합도를 낮춰야 한다고 했다.그리고 지금 아래에서 설명할 SOLID 원칙은 그렇게 코드를 짜는데 도움을 주는 원칙들이다. Single Responsibility Principle단일책임원칙 하나의 클래스는 하나의 책임(기능)만 가진다.다만 함수를 하나만 가지라는 뜻이 아닌 그 클래스에 관련된 함수들로 구성되어야 한다는 뜻이다.ex) 움직임에 관한 클래스는 움직임에 관련된 책임만 가지고 있는다. Open Closed Princple개방폐쇄원칙 확장에는 열려있고, 수정에는 닫혀있어야 한다.자식클래스 입장에서 확장이 열려있고 부모클래스 입장에서는 닫혀있여야 한다.상속에 연관지어서 말하자면,어떤 기능이나 함수가 추가된다고 가정할 때 부모클..
-
[TIL] 유니티 문법활용TIL 2024. 5. 22. 21:07
유니티 문법활용 목차 1. 코루틴 (Corutine)2. 충돌 (Collider, Rigidbody2D)3. RayCast 코루틴 (Corutine)코루틴을 사용하면 작업을 다수의 프레임에 분산할 수 있다.Unity에서 코루틴은 실행을 일시 정지하고 제어를 Unity에 반환하지만 중단한 부분부터 다음 프레임을 계속할 수 있는 메서드이다. 코루틴의 특징처리와 처리 사이에 대기 시간을 넣을 수 있다.여러 작업을 동시에 병렬처럼 보이도록 처리해 준다. (그러나 실제로는 병렬은 아니다.) 코루틴을 실행 시키는 방법StartCorutine(코루틴 함수); yield Return으로 반환 1. 코루틴 함수 자체를 넣는다. ex) StartCorutine(코루틴 함수);2. string 으로 넣는다.ex) Sta..
-
[TIL] VS Code / VisualStudioTIL 2024. 5. 21. 21:28
VisualStudio는 내가 본격적으로 프로그래밍에 대해 배우기 시작할 때가장 처음 깔았던 툴이다. (당시에는 2019를 사용했다) 어릴때 자바를 잠시 찍먹 했을때는 잠깐 Epclipse를 썼고 그뒤로는 쭉 VisualStudio만 썼었다.부트 캠프에 참여하면서 2019 -> 2022 으로 버전을 바꾸긴 했지만 학교 다닐때도 캠프에 와서도 VisualStudio를 사용하길래 당연히 개발자의,,,국룰 프로그램인줄 알았다. 그런데 오늘 팀프로젝트를 위해 다른 팀원분이 화면을 키고 이야기를 하던중 엄청난 것을 목격했다. 재미도 없고 지겹고 칙칙한 비주얼스튜디오에서 코드를 짜던 나와 달리 팀원분은 한 켠에 작고 귀여운 생물들과 함께 작업을 하고 계셨다.VisualStudio 도 있나 검색해봤지만.........
-
[TIL] DOTween 사용TIL 2024. 5. 20. 23:04
DOTween 두트윈, 닷트윈 간단한 동작을 따로 애니메이션 설정이나 복잡한 코드 없이 움직임을 구현해주는 API로 유니티의 에셋스토어에서 다운로드 할 수 있으며 무료판과 유료판이 있다. 원래 만들던 블록깨기 기능은 블록을 깨면 아이템이 자동으로 생성되고 그걸 공이 먹으면 효과가 적용되는 거였지만공이 아이템을 먹지 않고 패들이 먹는걸로 바뀌게 되면서 아이템이 내려오는 모션이 필요하게 되었다. 옛날에 살짝 만져보고 안써본 기능이지만, 이번에 아이템이 떨어지는걸 구현하면서 물리자체는 무거운 기능이니 Rigidbody의 gravity 대신에 DoTween을 사용해 구현해보는게 어떠냐 하셔서 다시 한번 만져보게 되었다. 설치방법더보기유니티 에셋스토어에서 먼저 설치해 준 다음에 프로젝트에 불러와준다.Import..
-
[TIL] Interface 상속과 Json에 관하여TIL 2024. 5. 17. 22:02
Interface인터페이스란?클래스와 비슷하게 메서드, 속성, 이벤트 등을 갖지만 인터페이스는 이를 직접 구현하지 않고 단지 정의만 갖는다.클래스와 다르게 다중 상속이 가능하며, 인터페이스를 상속받은 클래스는 해당 인터페이스의 모든 멤버에 대한 구현을 설정해야 한다. 예전 글에도 몇 번 언급했던 기능이다.이론만 알고 직접 써보지 못했었는데 이번에 팀 프로젝트를 하면서 충돌 처리를 인터페이스로 구현해보자는 말이 나왔고 그에 따라서 Interface를 복습해보고 적용해봤다. using UnityEngine;public class Item : MonoBehaviour{ protected virtual void ItemEffect(GameObject ball) { Debug.Log("아..