[코딩테스트] Split 문자열 자르기
·
코딩테스트/알고리듬
#include string input = "김머영 25살";istringstream stream(input);string buffer;while(getline(stream, buffer, ' ')){ cout
[언리얼엔진] Mobility 속성
·
언리얼 엔진/컴포넌트
Mobility: 해당 액터가 플레이 중에 위치, 회전, 크기의 변동이 있는지 체크하는 항목Static게임플레이 동안 어떤 방식으로도 이동 또는 업데이트되지 않는 액터를 위한 설정이다. 머티리얼은 여전히 애니메이팅될 수 있다. "Static"으로 설정된 스태틱 메시의 그림자는 라이트매스에 의해 생성되며 라이트 맵에 반영이 된다. "Static Light"는 라이트매스를 사용하여 라이트 맵에 기여한다. "Movable" 액터의 경우에는 Volumetric Lightmap 혹은 간접광 캐시와 같은 간접광 메서드를 사용하여 빛을 비춘다. 게임 도중 빛의 밝기나 색상을 변경할 수 없다.Stationary게임플레이 동안 변경은 되지만 이동되지는 않는 액터를 위한 설정이다. "Stationary"로 설정된 스태틱 ..
[언리얼엔진] 4-2. 메인 메뉴 구현
·
언리얼 엔진/스파르타코딩클럽
UI 추가, 삭제게임 스코어를 표시하는 UI가 아니라, 게임 재시작을 표시하는 UI를 띄우고자 할 때에는 게임 스코어 UI를 화면에서 안 보이게 한 후, 게임 재시작 UI를 화면에 표시해야 한다.void ASpartaPlayerController::ShowMainMenu(bool bIsRestart){ if (HUDWidgetInstance) { HUDWidgetInstance->RemoveFromParent(); HUDWidgetInstance = nullptr; } if (MainMenuWidgetInstance) { MainMenuWidgetInstance->RemoveFromParent(); MainMenuWidgetInstance = nullptr; } if (MainMenuWidgetC..
[언리얼엔진] 4-1. UI 위젯 설계와 실시간 데이터 연동
·
언리얼 엔진/스파르타코딩클럽
HUD (Heads-Up Display)게임 상황을 이해하는데 도움이 되는 정보를 화면 상에 띄우는 기능을 제공 언리얼에서는 대표적으로 Canvas 기반 HUD와 UMG 방법이 존재한다.Canvas 기반 HUD는 HUD Class를 상속해서 구현하는 방법으로 구방식에 해당하고, 요즘에는 UMG 방법을 채택한다고 한다. UMG (Unreal Motion Graphics)생성하는 방법플랫폼별 호환 확인 해당 Screen Size 메뉴를 통해 각 화면별로 UI의 짤림 현상이 있는지 확인할 수 있다.UI 바인딩 바인딩하고자 하는 UI를 클릭한 후 Content를 살펴보면 버튼이 하나 존재한다. 해당 버튼을 클릭하여 노드 기반 방식으로 바인딩을 할 수 있다.하지만 노드 기반 바인딩에는 단점이 있는데, Tick 함..
[절대강좌 유니티] 02. 애니메이션, LOD, 그림자, 보간
·
유니티/[서적] 절대강좌 유니티
유니티 이벤트 함수함수명설명Awake- 스크립트가 실행될 때 한 번만 호출- 스크립트가 비활성화되어 있어도 실행- 코루틴으로 실행 불가- 게임의 상태, 변수의 초기화에 사용Start- 모든 Awake가 실행된 이후 호출- 코루틴으로 실행 가능Update- 프레임마다 호출되는 함수LateUpdate- 모든 Update가 실행된 이후 호출- Update 함수에서 전처리가 끝난 후 실행하는 로직을 담당FixedUpdate- 물리 엔진의 시뮬레이션 계산 주기(0.02초)로 실행OnEnable- 게임 오브젝트, 스크립트가 활성화됐을 때 실행- 코루틴 사용 불가OnDisable- 게임 오브젝트, 스크립트가 비활성화됐을 때 실행- 코루틴 사용 불가OnGUI- 레거시 GUI 관련 함수를 사용할 때 활용 GetAxis와..
[절대강좌 유니티] 01. 텍스처 및 머티리얼, 조명
·
유니티/[서적] 절대강좌 유니티
텍스처텍스처3D 모델의 표면에 매핑시킬 이미지 파일을 지칭한다. 텍스처의 가로세로의 크기가 2^n 형태일 때 압축을 지원하며, 속도가 가장 빠르다. 머티리얼머티리얼3D 모델에 적용할 텍스처의 다양한 속성을 설정하는 역할을 한다. 특정 텍스처가 어떤 간격으로 반복하고, 표면의 재질은 어떻게 표현할지 등이 해당한다.Mesh Filter해당 모델의 3차원 형상 정보인 메시 데이터를 가지고 있다. Mesh Renderer메시 데이터를 토대로 화면에 렌더링 처리를 한다.셰이더렌더링할 때 픽셀의 농담, 색조, 명암을 결정하는 프로그래밍 방식이다. 쉽게 말해, 화면에 텍스처를 표현할 때 재질감 또는 효과를 표현하는 기능이다.Albedo빛을 반사하는 정도를 뜻한다. 기본이 되는 텍스처를 연결하는 속성이다. Metall..
[언리얼엔진] 3-5. 게임 루프 설계
·
언리얼 엔진/스파르타코딩클럽
GameInstanceGameInstance새로운 레벨이 로드가 되면 GameState에 구현한 생성자, BeginPlay가 다시 호출되며 게임의 정보가 초기화 된다. GameInstance 클래스는 레벨이 로드가 되어도 저장한 정보가 초기화 되지 않는다. 따라서, 게임 점수, 게임 시간 등의 게임이 진행되는 동안 유지가 되어야하는 정보는 GameInstance 클래스에 구현해야 한다.작성한 코드더보기#pragma once#include "CoreMinimal.h"#include "Engine/GameInstance.h"#include "SpartaGameInstance.generated.h"UCLASS()class SPARTAPROJECT_API USpartaGameInstance : public UG..
[언리얼엔진] 3-4. 캐릭터 체력 및 점수 시스템 구현
·
언리얼 엔진/스파르타코딩클럽
PlayerStatePlayerState플레이어마다의 고유한 정보를 관리하는 기능을 제공 멀티플레이 모드에서 핵심적인 기능이라고 한다. 싱글플레이에서는 사용할 필요가 없다고 하니, 추후에 멀티플레이를 구현할 때 자세히 알아볼 예정이다. GameStateGameState게임내의 전역 정보를 저장하는 기능을 제공 게임 점수, 웨이브 지속 시간 등 게임 내의 핵심이 되는 요인들을 관리하기에 유용한 클래스이다.GameState, GameStateBase 2가지 종류가 있는데, 싱글플레이 모드에서는 단순한 GameStateBase를 선호한다고 한다.//.hpublic: ASpartaGameStateBase(); UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category ..