전체 글132 Enemy가 웨이포인트 주변에서 부르르 떨리는 이슈 문제 상황 원래 코드using UnityEngine;public class EnemyMoveState : EnemyBaseState{ private readonly float range = 0.01f; public EnemyMoveState(EntityStateMachine stateMachine) : base(stateMachine) { } public override void Enter() { base.Enter(); StartAnimation(entityStateMachine.Entity.AnimationData.MoveParameterHash); } public override void Exit() { base.. 2024. 7. 19. [Study] Graph와 길찾기 길찾기 알고리즘 종류- DFS / BFS- 다익스트라 알고리즘- 플로이드 워셜 알고리즘- A* 알고리즘 각 길찾기 알고리즘의 차이점? DFS / BFS CT-Study/PART 2/Chapter 5, DFS&BFS.md at master · JeongEunJi1127/CT-Study🔎 코딩테스트 공부 결과물 정리를 위한 저장소 . Contribute to JeongEunJi1127/CT-Study development by creating an account on GitHub.github.com 다익스트라 알고리즘- 특정 노드에서 갈 수 있는 모든 경로에 대한 최단 거리를 찾고 그 중 가장 비용이 적은 노드를 선택- 위의 정의에서 알 수 있듯이 그리디 알고리즘으로 분류된다- 시간복잡도 : O(N.. 2024. 7. 19. [Study] Tree Tree란?Tree란 비선형 자료구조로 노드(node)와 노드를 연결하는 간선(edge)들로 이루어져있다. - 트리는 하나의 루트 노드를 갖는다.- 루트 노드는 0개 이상의 자식 노드를 갖고 있다.- 그 자식 노드 또한 0개 이상의 자식 노드를 갖고 있고, 이는 반복적으로 정의된다.- 트리에는 사이클(cycle)이 존재할 수 없다. Tree의 순회 방법전위 순회자신 -> 왼쪽 트리 -> 오른쪽 트리 중위 순회왼쪽 트리 -> 자신 -> 오른쪽 트리 후위 순회왼쪽 트리 -> 오른쪽 트리 -> 자신 DFS와 BFSDFS 깊이 우선 탐색 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘 스택 사용, 재귀 함수 사용 def dfs(graph,v,visited): visited[v] = True fo.. 2024. 7. 18. [Study] 최적화 유니티 최적화 기법유니티 최적화 기법에는 오브젝트 풀링, 비용이 큰 수학 연산 줄이기, Class와 Struct를 적절하게 사용하는 방법 등 많은 최적화 기법이 있다. 최적화를 할 때 가장 중요한 부분은 병목을 줄이는 것이다. 즉 전체 시스템이 하나의 요소로 인해 성능 저하되는 것을 막는 것이 가장 중요하다.이러한 요소들을 찾아 최적화를 진행해야 한다. 드로우콜 CPU가 GPU에게 렌더링(화면에 출력)할 정보를 전송하는 것이다드로우콜은 CPU 성능 저하를 일으키므로 최적화를 통해 줄여야 한다.Unity 내에서 Stats 버튼을 눌러 Batches 의 개수를 통해 드로우콜의 개수를 확인할 수 있다. 이 Batches의 개수는 드로우콜 + Set Pass Call 이다. 만약 같은 메테리얼을 가진 오브젝트.. 2024. 7. 17. [Study] 코루틴 코루틴이란?동작 원리- 코드 내에서 구문 실행 도중 처리를 대기시키거나, 함수를 병렬로 동시에 처리할 수 있도록 한다.- yield return을 호출하여 특정 시점까지 대기가 가능하다.더보기yield return null : 다음 프레임에 실행을 재개한다.yield return new WaitForSeconds : 지정된 시간 후에 재개한다.yield return new WaitForSecondsRealtime : Time.timescale 값에 영향을 받지 않고 지정된 시간 후에 재개한다. yield return new WaitForFixedUpdate : 모든 스크립트에서 모든 FixedUpdate가 호출된 후에 재개한다.yield return new WaitForEndOfFrame : 모든 카메.. 2024. 7. 16. [Study] MonoBehaviour와 Unity 생명주기 Unity 생명주기란?- 게임이 진행되는 흐름, 그리고 그 흐름에 따라 오브젝트들이 할 역할들을 정해주는 것- 사용자가 호출하지 않아도 호출되는 함수의 호출 주기 MonoBehaviour 클래스의 주요 메서드와 그 기능- 게임 오브젝트의 동작을 정의하는 기본 클래스- 이 클래스의 여러 메서드들은 Unity의 생명주기를 통해 자동으로 호출더보기 Start와 Awake의 차이점 - Awake는 비활성화 상태에서도 호출되고 Start 는 활성화 상태일 때만 호출된다 Reset : 오브젝트를 생성 후 인스펙터 뷰에서 리셋을 눌러줄 때 실행. 객체의 속성을 초기 값으로 설정해 줄 때 사용. Awake : 스크립트가 실행될 때 한 번 호출. 모든 오브젝트가 초기화 된 후 호출되기 때문에 GameObject.F.. 2024. 7. 15. [Study] Queue Queue란?- FIFO 구조의 자료구조- 먼저 들어온 데이터가 먼저 나가는 구조 - 아래 사진과 같은 구조를 가짐 - 선형 큐, 원형 큐, 우선순위 큐가 존재 더보기더보기Queue은 First In First Out 구조를 가지는 자료구조이다. Enqueue, Dequeue를 통해 큐의 앞부분 뒷부분에 데이터를 넣고 뺄 수 있다. Queue는 언제 사용하면 좋을까? - 데이터가 입력된 시간 순서대로 처리해야 할 필요가 있는 상황에 유리하다. - 데이터 접근 삽입 삭제가 빠르다. 반대로 언제 사용하기 불리할까? - 크기가 제한적이다.- 중간에 위치한 데이터에 대한 접근이 불가능 하다. 2024. 7. 12. [Study] Stack Stack이란?- LIFO 구조의 자료구조- 가장 최근에 들어온 데이터가 가장 나중에 나가는 자료구조이다.- 아래 사진과 같은 구조를 가짐 더보기Stack은 Last In First Out 구조를 가지는 자료구조이다. Stack에 데이터를 Push하면 데이터는 스택 상단에 쌓인다. 데이터를 Pop하면 스택 상단에 있는 데이터가 삭제된다. 즉 가장 최근에 들어온 데이터가 가장 나중에 나가는 자료구조이다. Stack은 언제 사용하면 좋을까? - 문서 편집기의 Undo 기능과 같이 바로 직전에 실행했던 작업을 취소시킬 때 사용된다.- 데이터를 추가할 때 배열처럼 원소를 하나씩 옆으로 밀어줄 필요가 없다.- 재귀 알고리즘을 사용하는 경우 유용하다.- C/C++의 main() 함수안에서 사용되는 지역변수와 .. 2024. 7. 11. [Study] LinkedList LinkedList란?- 선형 자료구조- 데이터와 포인터를 가진 노드가 연결되어 있는 리스트- 각 노드가 다음 노드를 가리키는 형태- 노드는 동적으로 할당되므로 노드들 사이의 주소 값은 연속적이지 않다.- 중간 인덱스에 바로 접근이 불가능하다. 즉 Head 부터 다음 노드로 이동하며 탐색해야 한다. - Head -> Node들 -> Tail 로 구성. - Singly linked list, Doubly linked list, 원형 linked list 존재 LinkedList의 장단점 장점- 데이터의 삽입과 삭제가 편하다- 동적 메모리 할당 : 실행 중 데이터 크기를 유연하게 조정할 수 있다.- 메모리 효율 : 불필요한 메모리를 미리 할당하지 않아 메모리 사용 효율성이 높다- 다양한 타입의 .. 2024. 7. 10. 이전 1 ··· 3 4 5 6 7 8 9 ··· 15 다음