목록분류 전체보기 (147)
오보에블로그

문제 상황 파일 시스템에서 파일을 삭제한다거나 특정 상황으로 인해 Visual Studio를 재빌드 하고 싶은 상황 빌드 방법 먼저 아래와 같이 폴더들이 있을 것이다. 재빌드 시 재 생성되는 폴더 및 파일들을 삭제해준다. # 삭제 항목 .vs/ Saved/ DerivedDataCache/ Intermediate/ Binaries/ *.sln 이후에 *.uproject 에 우클릭을 한 뒤 Generate Visual Studio project files 를 클릭하면 재빌드가 진행된다.

문제 상황 아래의 사진과 같이 플러그인 관련 헤더 파일 로드 시 해당 파일을 찾을 수 없다는 오류가 발생할 때가 있다. 작성자는 Niagara 플러그인 관련으로 문제가 발생했기 때문에 해당 라이브러리로 해결방법을 작성한다. 1-4 번 방법을 다 해보았지만, 작성자는 4번 경우에서 성공했다. 해결한게 어디야.. 해결 방법 먼저 Edit > Plugins > FX 에 가서 Niagara 관련 플러그인들을 Enabled로 지정했는지 확인한다. 두번째로, 빌드 파일(*.Build.cs) PublicDependencyModuleNames.AddRange 에 "Niagara" 를 추가한다. PublicDependencyModuleNames.AddRange(new string[] { ..., "Niagara" });..

유니티 스크립트 생명주기 플로우 차트 자세한 사항은 유니티 매뉴얼을 참고한다. 스크립트 컴포넌트를 추가하면, MonoBehaviour 를 상속 받는 클래스가 생성이되고, Start() 와 Update() 부분이 있을 것이다. 이는 사실 유니티 스크립트 생명주기에 따라서 순차적으로 호출되는 함수들 중 하나이다. 생명주기 플로우 차트는 아래와 같다. 처음부터 구현되어 있는 Start() 함수는 주어진 스크립트에대해서 한번만 호출되는 함수이다. 만약에 Start() 보다 더 빨리 초기화를 하고 싶다면 AWake() 를 사용해도 될 것이다. Physics 단계에서부터 Pausing 단계 까지는 프레임마다 반복적으로 호출된다. Update 순서 FixtedUpdate() 한 프레임에서 여러번 호출될 수 있으며, ..

멀티 스레드란? 멀티 스레드란, 하나의 프로세스 안의 여러개의 스레드를 병렬적으로 실행시키는 것을 의미한다. 멀티 프로세스와 다르게 프로세스 안의 자원을 공유할 수 있어서, 컨텍스트 스위치 비용이 적다는 장점이 있다. 하지만, 여러 스레드에서 동시 자원을 사용할 때 문제가 발생할 수 있다. 아래의 코드 예시를 확인해보자. #include #include #include #include using namespace std; int counter = 0; void func() { for (int i = 0; i < 100000; i++) counter += 1; } int main() { vector ts; // counter에 1씩 100000번 더하는 스레드 5개 생성 for (int i = 0; i <..
C++ this_thread 현재 스레드에 접근할 수 있는 함수 라이브러리 get_id 현재 스레드의 아이디 반환 /* output : main thread ID : 37832 t1 thread ID : 18204 func called! thread ID : 18204 */ #include #include using namespace std; void func() { cout
스레드 란? 프로세스를 실행시키는 단위, 하나의 프로세스는 여러개의 스레드(멀티 스레드)로 이루어 질 수 있으며, 동일 프로세스 내에서는 메모리 자원을 공유할 수 있다. C++ thread 참고 : C++레퍼런스 C++11 에서 부터 thread 헤더를 통해 스레드 관련 라이브러리를 사용할 수 있다. std::thread 는 싱글 스레드를 실행하는 클래스이다. 해당 클래스를 사용하면, 별도의 싱글 스레드에서 지정한 함수가 호출된다. /* output : 28580 thread execute! */ #include #include using namespace std; void func() { cout

1. World 안에서 변경 두가지 방법이 존재한다! 원하는 메쉬를 World 로 가져온다음에 가져온 메쉬를 클릭하고 위치 이동 모드로 변경(W키) 시킨 다음, alt키를 누른 상태에서 마우스 휠 버튼으로 드래그 한다. 그 후에 이 상태를 고정시키고 싶다면, 우클릭 > Pivot > Set as Pivot Offset 을 클릭한다. 2. 메쉬 파일 자체적으로 변경 1 번 방법은 World 내의 액터 상에서만 변경이 되고, 실제 메쉬 파일에서는 적용이 안되므로, 본인은 2번 방법을 사용했다. 메쉬 에딧 모드에 들어가서( 메쉬 더블 클릭) Import Setting > Transform> Import Translation 을 변경한다. 제대로 변경되었는지 확인하려면, Reimport Base Mesh를 클릭..
상황 마인크래프트에서 땅과같은 지형물을 획득했을 때 이를 손에 들고 있게 만들고 싶다. 큐브를 손에 장착할려면 skeletal mesh 여야하는데, 언리얼에서 기본으로 제공하는 1M_Cube 메쉬는 static mesh여서 변환이 필요하다. 해결 방법 참고 사이트 에서 첫부분만 읽으면 언리얼 상으로는 안된다는 것 같지만,,! 계속 쭉 읽다보면 가능하다고 써져있다. Try this: Right click your static mesh → Asset Actions → Export → save .fbx. Then, click import → select .fbx. On fbx import options, toggle “skeletal mesh”, and set “skeleton” to None. Please ..

상황 언리얼은 맨처음에 프로젝트를 생성할 때, 블루프린트 전용으로 사용할지, C++ 클래스 로 사용할지 선택하고 진행한다. C++ 용으로 프로젝트를 생성하면 아래와 같이 C++ Classes 라는 폴더가 생성되고, 여기에 C++ 클래스를 추가할 수가 있는데, 블루 프린트 전용으로 선택하고 진행하면 해당 폴더가 없고, 컨텐츠 폴더 아래에 C+ 클래스를 만들려고 하면 오류가 발생한다. 마켓 플레이스에서 가져온 라이브러리 중에 "Create Project" 로만 라이브러리를 프로젝트에 넣을 수 있는 유형이 있는데, 이때 해당 라이브러리가 블루프린트 전용이라면, C++ 프로젝트로 변환해줘야하는 상황이 발생한다. 해결 방법 참고 사이트 : https://allarsblog.com/2015/11/05/convert..

유니티 허브에 접속해서, WebGL을 사용할 유니티 버전에대해 톱니바퀴 버튼을 클릭한 뒤 [모듈 추가] 버튼을 누른다. [WebGL Build Support] 모듈을 클릭 후 설치한다. 유니티 프로젝트에 접속해서 [Package Manager] > Packages 를 Unity Registry 로 변경한다. WebGL Publisher 를 검색후 설치한다. 설치가 완료되면 아래와 같이 Publish 버튼이 생성된다. Publish 버튼을 클릭하면 아래와 같은 UI 가 표시되며, Build and Publish 를 진행한다. 이제 창이 하나 생성되고, 해당 링크로 게임을 실행할 수 있다. (https://play.unity.com/mg/other/webgl-builds-149838)