본문 바로가기
728x90

전체 글102

[유니티] 게임 오브젝트의 생명 주기 유니티에서 가장 기본이 되는 단위는 게임 오브젝트이다. 이 오브젝트는 일정한 생명주기를 가지는데 게임 오브젝트가 생성되고 파괴될 때까지의 주기와 그에 맞춰 실행되는 함수를 알아본다. 게임 오브젝트의 생명주기는 기본적으로 "탄생 -> 활성화 -> 시작 -> 고정 업데이트 -> 업데이트 -> 늦은 업데이트 -> 비활성화 -> 파괴" 순으로 순환한다. 또한 각 오브젝트는 자신의 현재 상태에 맞춰 특정 함수가 동작된다. [ 생성 (Awake) ] 게임오브젝트가 생성될 때 최초 1회 Awake 함수가 호출된다. 이 함수는 객체의 삶의 시작을 알리는 함수로 오브젝트 내에서는 어떤 함수도 이보다 빨리 실행될 수는 없다. 오브젝트의 생명주기 동안 1회만 호출된다. [ 활성화 (OnEnable) ] 메모리 풀링을 사용하.. [Unity]/기능 2023. 1. 4.
[언리얼5] 블루프린트를 이용하여 간단한 슈팅방 만들기 - 3 [개요] 언리얼 5.1과 블루프린트를 이용하여 간단하게 물리 슈팅 게임을 만들어본다. 3장에서는 투사체 발사에 제한을 설정하고 모든 투사체를 발사하였으면 일정 시간 이후 레벨을 재실행한다. [언리얼5] 블루프린트를 이용하여 간단한 슈팅방 만들기 - 1 [언리얼5] 블루프린트를 이용하여 간단한 슈팅방 만들기 - 2 [투사체 수량 설정하기] 레벨 블루프린트를 열고 멤버 변수를 추가한다. 레벨 블루프린트 편집창 왼쪽에 변수 목록이 있고 [+] 버튼을 클릭하면 새로운 변수를 생성할 수 있다. 이름을 변경하기 위해서는 해당 변수를 클릭한 뒤 F2 를 누르거나 오른쪽에 있는 디테일 패널에서 [변수] - [변수 이름]을 변경한다. 이 변수는 탄창 수량을 의미하기 때문에 Ammo라고 이름을 지었으며 0과 양의 정수를 .. [Unreal5]/블루프린트를 이용한 슈팅 2023. 1. 3.
[언리얼5] 블루프린트를 이용하여 간단한 슈팅방 만들기 - 2 [개요] 언리얼 5.1과 블루프린트를 이용하여 간단하게 물리 슈팅 게임을 만들어본다. 2장에서는 간단한 투사체를 만들고 키보드를 눌러 투사체를 발사한다. 블루프린트를 이용하여 간단한 슈팅방 만들기 - 1 블루프린트를 이용하여 간단한 슈팅방 만들기 - 3 [투사체 만들기] 언리얼 좌측에 있는 [액터 배치] - [셰이프]를 선택하면 큐브, 스피어, 실린더 등의 도형을 배치할 수 있는 창이 나타난다. 해당 창에서 스피어를 선택하여 드래그 앤 드랍으로 뷰포트에 배치한다. 이 스피어의 크기를 조절하여 약간 긴 투사체로 만들어준다. 액터를 선택한 채로 R 키를 눌러 스케일을 조절할 수 있는 상태로 변경하고 적절하게 크기를 조절한다. 디테일 패널의 트랜스폼에서 스케일을 조절해도 무방하다. (1.25, 0.25, 0... [Unreal5]/블루프린트를 이용한 슈팅 2023. 1. 3.
[언리얼5] 블루프린트를 이용하여 간단한 슈팅방 만들기 - 1 [개요] 언리얼 5.1과 블루프린트를 이용하여 간단하게 물리 슈팅 게임을 만들어본다. 1장에서는 새로운 프로젝트를 생성하고 레벨에 각종 액터를 배치한다. 블루프린트를 이용하여 간단한 슈팅방 만들기 - 2 블루프린트를 이용하여 간단한 슈팅방 만들기 - 3 [프로젝트 생성] 언리얼 5.1을 실행하면 아래 사진처럼 언리얼4 보다 훨씬 깔끔해진 UI가 맞이해준다. 게임 이외의 기능들도 굉장히 강화되어 추가되었지만 게임을 목표로 하는 나에겐 큰 의미가 없으므로 [게임] - [기본] 을 선택하고 프로젝트 이름을 작성한다. 레벨 블루프린트를 이용하여 간단하게 만들 것이기 때문에 프로젝트 설정은 기본으로 한다. (블루프린트, 타겟 플랫폼 데스크탑, 퀄리티 프리셋 맥시멈, 시작용 콘텐츠 포함, 레이트레이싱 안함) 더보기.. [Unreal5]/블루프린트를 이용한 슈팅 2023. 1. 2.
[STL] 컨테이너의 분류와 종류(순차 컨테이너, 연관 컨테이너, 비정렬 컨테이너) 컨테이너의 종류는 크게 3가지로 나눌 수 있다. 순차 컨테이너, 연관 컨테이너, 비정렬 컨테이너로 볼 수 있는데 이 안에 포함되는 STL 컨테이너들도 간단히 소개한다. 순차 컨테이너 ( Sequence Container ) 모든 요소를 저장한 순서대로 저장하는 컨테이너이다. 원소를 선형적 순차열(Linear Sequence)에 저장하게 되는데 이로 인해 정렬되지 않는다. 이 위치는 삽입한 시점과 위치에 따라 달라지며 요소의 값과는 독립적이다. 자동적으로 정렬되지 않기 때문에 정렬 알고리즘을 사용하여 수동으로 정렬해야 한다. STL에 선정의된 순서 컨테이너는 배열(array), 벡터(vector), 데크(deque), 양방향 리스트(list), 단방향 리스트(forward_list) 가 있다. Array .. [프로그래밍 공부]/Data Structure 2023. 1. 2.
[STL] 벡터(Vector)와 리스트(List)의 장단점과 차이점 벡터(vector) 벡터는 동적배열을 만드는 연산을 수행한다. 따라서 연속적인 메모리를 확보한다. 자신의 요소를 내부의 동적 배열 ( dynamic array )로 복사한다. 임의 접근 연산자를 제공([])하기 때문에 어떠한 값에 접근하든 상수시간이 소요된다 동적 배열이기 때문에 배열의 중간에 새로 추가하거나 삭제하면 많은 값이 이동해야하기 때문에 오랜 시간이 걸린다 중간에 추가하는 것이 오버헤드가 크기 때문에 보통 뒷부분에 추가한다 ( push_back ) 동적 배열이기 때문에 크기의 확장과 축소가 자유롭지만 재할당 비용은 크다. 장점 임의접근을 상수시간에 가능하다. 따라서 읽기에 매우 강하다. 단점 중간에 값을 추가/제거하는 비용이 크다 재할당 비용이 크다 리스트(list) 리스트는 요소들을 양방향 .. [프로그래밍 공부]/Data Structure 2022. 12. 31.
전략전투액션게임 기획 컨셉 보호되어 있는 글 입니다. 2022. 12. 28.
[언리얼5] 언리얼 5.1 라이브 코딩 사용 후 데이터 사라지는 현상 정리 언리얼 5에는 라이브 코딩(Live Coding)이라는 시스템이 도입되었습니다. 이는 엔진이 실행 되고 있는 동안 C++ 코드릴 리빌드하고 바이너리를 패치하는 시스템을 말하며 언리얼 4에 있던 컴파일 및 핫 리로드와는 다른 시스템입니다.. 엔진 화면의 오른쪽 아래에 디스크 조각 모음 같이 생긴 버튼이 라이브 코딩 실행 버튼입니다. 해당 버튼을 누르면 라이브 코딩이 실행되고 즉각적으로 언리얼 에디터에 변경점이 반영되는 것을 볼 수 있습니다. 다만 이 기능 때문인지 라이브 코딩과 IDE 빌드를 번갈아 사용하다보면 비정상적으로 에러가 발생하기도 합니다. 문제 1 비쥬얼 스튜디오 내에서 빌드 실패 라이브 코딩을 활성화한 상태에서 비쥬얼 스튜디오 빌드를 하려고 하면 에러가 발생합니다. 완전히 정상적인 코드를 라이.. [Unreal5]/오류 수정 2022. 12. 28.
728x90