728x90 전체 글103 [UE4 지뢰찾기] 타일의 머테리얼 세팅하기 타일은 스태틱 메시 전체를 변경하는 것이 아닌 머티리얼만 변경하는 것으로 설정하였음. 따라서 머티리얼을 어딘가에서 가지고 있어야하는데 GameManager 역할을 하는 ABoard가 들고 있도록 하였음. 이미지라고 주석을 달아놓았지만 사실 머티리얼임 주변에 지뢰가 없는 기본 타일 색상은 NumberTileMaterials의 0번째 인자로 넣음. 1부터는 숫자를 지정함 게임 리소스는 이렇게 직접 제작함. 그림판에서 규격 맞춰서 그냥 그린게 다임 사실 9는 필요 없는 이미지인데도 넣어보았음 ( 주변 지뢰 갯수는 8이 최대치 ) 콘텐츠 브라우저를 우클릭하여 에셋 임포트 기능을 사용함. png 파일을 임포트하면 하단에 빨간색으로 칠해져있는 Texture가 만들어짐. 이 텍스처를 우클릭하면 가장 상단에 머티리얼 .. [Unreal4]/간단지뢰찾기 게임 만들기 2022. 11. 30. 더보기 ›› [UE4 지뢰찾기] 지뢰 매설하기 간단하게 지뢰를 매설하고 근처 지뢰 갯수를 세팅하는 함수를 만든다. void ABoard::CreateBoard(int32 row, int32 column, int32 mineCount) { int32 nInitMineCount = 0; FVector OriginLocation = GetActorLocation(); float x, y; this->Row = row; this->Column = column; this->TotalMineCount = mineCount; for (int i = 0; i < row; i++) { TArray RowArray; y = OriginLocation.Z - i * 100; for (int j = 0; j < column; j++) { ATile* tile = (ATi.. [Unreal4]/간단지뢰찾기 게임 만들기 2022. 11. 30. 더보기 ›› [UE4 지뢰찾기] 타일을 관리하는 Board(판) 만들기 타일을 관리하는 Board 클래스를 생성한다. 게임이 시작되면 GameMode에 의해 Board는 타일맵을 생성한다. UCLASS() class FINDMINE_API ABoard : public AActor { GENERATED_BODY() public: ABoard(); protected: virtual void BeginPlay() override; float GamePlayTime = 0;// 이번 게임 플레이 시간 int32 Row = 0;// 행, x에 해당 int32 Column = 0;// 열, y에 해당 int32 UserSetFlagCount = 0;// 유저가 세운 깃발 수 int32 MineSetFlagCount = 0; // 실제 지뢰 위에 깃발 수 TArray TileMap; A.. [Unreal4]/간단지뢰찾기 게임 만들기 2022. 11. 16. 더보기 ›› [UE4 지뢰찾기] 맵으로 사용될 타일 만들기 맵에 사용될 타일을 생성한다. 유저가 행동할 수 있는 상황에 맞춰 7가지 상태가 존재할 수 있다. 타일은 항상 7가지 상태 중 하나를 취한다. TS_Mine 상태가 하나라도 열리게 된다면 게임은 종료된 상태이다. TS_NotOpenFlagNotMine은 직전 상태를 체크하기 위한 상태이다. 유저가 꽂은 깃발이 진짜 지뢰 위에 있는 것인지 아닌지를 판별하고 갯수를 체크해야하는데 깃발을 다시 일반 타일로 되돌릴 때 수량 체크를 위해 사용한다. Tile.h, Tile.c 에는 위 ETileState 정보를 하나 가지며 여러가지 현재 상태에 대한 정보를 갖고 있게 된다. Tile이 사용하는 스태틱 메쉬는 기본으로 제공되는 Box이며 머테리얼만 변경할 예정이다. 해당 타일이 지뢰를 가진 타일인지 Get, Set하.. [Unreal4]/간단지뢰찾기 게임 만들기 2022. 11. 9. 더보기 ›› [Unreal4] Nested containers are not supported. 오류 해결하기. 최신의 C++은 2차원 배열을 동적할당하여 사용하기 보다는 2개의 컨테이너를 사용해 2차원을 표한하기를 원한다. 예를들어 int ** Array 를 사용하는 것이 아닌 Vector Array를 사용하는 것이다. 그렇게 언리얼 코드를 짜다보면 Nested containers are not supported. 에러를 만나게 된다. 이는 C++은 중첩된 컨테이너를 지원하지만 블루프린트는 지원하지 않기 때문이다. 실제로 공식 블루프린트 문서에 2차원 배열을 사용하는 것을 눈을 씻고 찾아봐도 없다. 이는 블루프린트 뿐 아니라 C++ 코드를 리플렉트할 때에도 마찬가지 에러가 발생한다. UPROPERTY(VisibleAnywhere, Category = "Board") TArray TileMap;// 에러 발생 코드.. [Unreal4]/오류 수정 2022. 10. 27. 더보기 ›› [UE4 지뢰찾기] 간단한 지뢰찾기 게임 만들기 9x9 지뢰찾기 게임을 만든다. 총 81개의 타일 중 지뢰의 갯수는 30개 정도로 진행할 예정이며 이 숫자는 난이도에 따라 조정될 수 있다. 충분한 시간이 주어지는 일반 지뢰찾기와 달리 최대한 빨리 클리어하여 시간을 겨루는 것이 목적인 게임이다. 9x9 타일 배경 맵은 Unreal Match 3에서 가져왔다. 카메라는 Orthographic으로 설정하고 폭을 조절한다. 고정형 카메라이기 때문에 입력에 의한 이동처리를 받지 않는다. 게임모드에서 카메라를 찾아 플레이어 컨트롤러에 연결한다. 플레이어 컨트롤러 내부에서 찾는게 맞는 것 같기는한데 우선은 게임모드에서 세팅한다. 시작하면 이런 아무것도 없는 화면이 나온다. [Unreal4]/간단지뢰찾기 게임 만들기 2022. 10. 17. 더보기 ›› [Unreal4] 언리얼 C++ 클래스 제거, 필요 없는 Cpp, h 파일 제거하기 안녕하세요 Kwonriver입니다. 프로젝트를 만들다 보면 필요 없어진 파일이나 오타로 인해 다시 만드는 경우에 기존 파일을 제거할 일이 생깁니다. 블루프린트라면 단순히 오른쪽 클릭, 삭제 버튼을 누르면 삭제할 수 있습니다. 그런데 C++ 클래스는 삭제 버튼이 딤드되어 있어 선택할 수 없습니다. 콘텐츠 브라우저에서는 C++ 파일을 삭제할 수 없는데요. 이를 삭제하기 위해서는 아래 방법을 따릅니다. 1. 우선 해당 탐색기에서 표시를 눌러 해당 파일의 위치로 갑니다. 2. 삭제하고자 하는 Cpp, h 파일을 삭제합니다. 3. 프로젝트 폴더로 이동합니다. 4. Binaries, Intermediate, Saved 폴더와 .sln 프로젝트 파일을 삭제합니다. 이때 언리얼 프로젝트와 비주얼 스튜디오는 모두 종료되.. [Unreal4]/기능 2022. 10. 14. 더보기 ›› [Unreal4] 언리얼 엔진 4에 연결된 비주얼 스튜디오 버전 변경하기 안녕하세요 Kwonriver입니다. 언리얼 엔진이 변경되면서 최소 비주얼 스튜디오 버전도 점차 상향되고 있습니다. 따라서 여러 버전의 비주얼 스튜디오를 설치한 상태로 언리얼 엔진을 사용할 경우가 발생할 수 있는데요. 이 때 비주얼 스튜디오의 버전을 변경하는 방법을 알아보겠습니다. 비주얼 스튜디오의 버전은 프로젝트 에디터와 연결되어 있습니다. 따라서 '에디터 개인설정'에서 프로젝트 단위로 변경을 해주어야 합니다. 기본적으로는 Visual Studio 로 세팅되어 있으며 프로젝트 생성 시 PC에 설치된 비주얼 스튜디오를 탐색하여 연결합니다. '편집 - 에디터 개인설정'을 클릭하면 아래와 같은 창이 나타납니다. 기본으로 '외형' 탭이 오픈되지만 비주얼 스튜디오 버전 변경을 위해서는 '소스 코드' 탭을 선택합니.. [Unreal4]/기능 2022. 8. 13. 더보기 ›› 728x90 이전 1 2 3 4 5 6 7 8 ··· 13 다음