2024/10/23 4

2024 10 23 TIL

새로운 조와 통성명을 하고 유니티의 심화 단계를 다루게 되었다.이번 프로젝트는 3D 영역이라 새로운 영역에 대한 호기심과 또 걱정이 공존한다. 하나하나 차근히 배우고 싶어서 강의진도를 아직 거의 못뺀 상태다.지금 하고 있는 부분은 InputSystem을 이용하여 3D에서의 움직임을 구현하는 단계 강의를 보되 스스로 만들어보려고 노력하고 또 Vector3 와 Vector2를 다루는 것을 연습중이다. 이번 팀의 인원들이 대부분 스탠다드 이하이기에 현재 목표는 과제의 퀄리티도 중요하겠지만  배움을 중점으로 깨우치는 쪽으로 해보고 싶다.   간단하게 TIL 작성을 마치고 다시 강의 내용을 구현해보러

TIL 2024.10.23

시간 복잡도

오늘 특강에서 자료구조에 대한 설명을 시간복잡도라는 개념을 통해 설명을 해주셨는데 시간복잡도라는 개념에 대해 알지 못해 많이 당황하였던 것 같다. 대략적인 맥락으로 보았을 때 시간복잡도에 따라 효율이 달라지므로 리스트를 너무 과신하지 말자는 내용이었던 것 같은데 전체적인 내용을 이해하지 못하여 저녁을 먹고나서 튜터님께서 따로 시간을 내주셔서 추가 강의를 해주셨다.    다시 듣고보니 시간복잡도라는 것은 자료구조를 통해 어떠한 값을 찾을 때에 복잡성에 관한 추정값으로  정확한 값이 아닌 평균적인 근사값인 것 같다. 지난 C# 강의 때 과제를 최우선으로 하여 강의 진도를 다 못 뺀 것이 이번 특강에 대해 이해가 부족했던 원인이었다. 그래서 지금이라도 조금이나마 강의를 보면서 알고리즘의 개념과 시간 복잡도에 ..

자료 관리 2024.10.23

오브젝트 풀링

Object Pooling 방식은 오브젝트를 미리 생성해두어 비활성화 시켜두었다가 적절한 때에 활성화시켜 동작시키는 형태입니다. 왜 Object Pooling 을 쓰는가Object Pooling 을 쓰는 이유는 오브젝트를 생성하고 파괴하는데 드는 동작비용이 있기 때문입니다. public class ObjectPool : MonoBehaviour{ // 오브젝트 풀링을 할 게임오브젝트 프리팹 public GameObject prefab; private List pool = new List(); private int poolSize = 300; // 최소 300의 반복의 조건을 받음 void Start() { for (int i = 0; i 처음 만들 때오브..

자료 관리 2024.10.23

RayCast

이번에 끝난 프로젝트를 진행하면서 충돌처리를 위해 Collision 과 Collider를 활용하였다.OnCollisionEnter , Stay 등을 통해 충돌한 오브젝트와 상호작용을 하는 방식이라면RayCast 는 오브젝트에서 레이저를 발사하여 레이저에 닿은 오브젝트를 판별하는 형태다. Ray 에 대해 먼저 알아보자면 Ray는 뻗어나가는 직선을 뜻합니다. 오브젝트에서 이용하는 방식은  광선이 나갈 오브젝트의 시작점(origin) 광선의 방향(direction)을 정해주어 사용합니다.Ray를 카메라에서 사용하는 방식도 있는데ViewportPointToRay 는 0에 1범위의 정규화된 벡터값을 이용하고ScreenPointToRay 픽셀 좌표를 사용한다는 차이입니다.Ray ray = new Ray(transf..

자료 관리 2024.10.23