[Godot Engine] 우분투 유니티 런처에서 앱 아이콘이 보이지 않을 때

이미지
운영체제가 리눅스 기반인 우분투에서는 고도 엔진이 유니티 런처에서 아래와 같이 고도 엔진 자체 앱 아이콘이 보이지 않고 ? 로만 보이는 이슈가 있었습니다. 물론 실행에는 문제가 없었구요. 그래도 뭔가 찝찝한 마음에 해결했던 과정을 정리해봅니다.


먼저 우분투에는 윈도우의 바로가기 단축 아이콘 같은 기능을 하는데 필요한 desktop 라는 파일이 있네요. 이 파일을 만들어서 유니티 런처에서 확인이 되도록 등록을 위해 applications 폴더에 옮겨주어야 합니다.

godot.desktop 파일을 아래와 같은 내용으로 만들어줍니다. 붉은색 Exec와 Icon 부분은 각자 환경에 따라 다를 것 입니다. 고도 엔진 아이콘의 경우 프로젝트를 새로 만들어서 나오는 것을 사용하셔도 되고 고도 엔진 깃헙에 있는 것을 사용하셔도 됩니다.

[Desktop Entry]
Name=Godot Engine
Comment=Free and Open Source 2D and 3D Game Engine
Terminal=false
Type=Application
Categories=Development;IDE;
Keywords=game;engine;ide;
Exec=/home/wwforever/Godot/Godot_v2.1.4-stable_x11.64
Icon=/home/wwforever/Godot/icon.png


그리고 해당 파일을 /usr/share/applications 또는 /usr/local/share/applications에 옮겨줘야 합니다. 로컬쪽에 옮길때는 최초로 작업하는 부분이라면 applications 폴더 자체가 없으므로 /usr/local/share디렉토리에 폴더를 생성해줍니다.

sudo mkdir applications


그리고 만든 파일이 있는 곳에서 applications로 desktop 파일을 복사 해줍니다.

sudo cp godot.desktop /usr/local/share/applications



이제 유니티 런처에서 키워드로 등록했던 godot나 ide를 입력…

Microsoft.Build.Utilities.v12.0 관련 자마린 스튜디오 에러

이미지
비주얼 스튜디오 2015를 지우고 2017을 깔았더니 자마린 스튜디오에서 아래와 같은 에러가 발생했습니다.


Error while trying to load the project 'D:\xxx.csproj': 파일이나 어셈블리 'Microsoft.Build.Utilities.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

위는 기존에 만들어놨던 프로젝트에서 발생한 에러이고 아래는 신규로 GTK# 프로젝트를 만들려고하면 발생하는 에러입니다.


The project could not be created

Could not load file or assembly 'Microsoft.Build.Utilities.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. 지정된 파일을 찾을 수 없습니다.

아무래도 자마린 스튜디오가 MS Build Tools 2015에 의존성이 있는 것 같습니다. MS 빌드 툴 2015를 설치해주면 잘 됩니다.
Microsoft Build Tools 2015 영문
Microsoft Build Tools 2015 한글

[Godot Engine] 안드로이드 기기 실행 시 스플래쉬 이미지만 깜빡이거나 검은 화면이 나올 때

이미지
고도 엔진을 2.1.2를 사용하다가 2.1.4로 마이그레이션 한 후 안드로이드 실 기기에서 실행시에 아래와 같은 스플래쉬 이미지만 깜빡이거나, 검은 화면이 나오는 이슈가 있었습니다. PC에서 에디터 테스트 환경에서는 이상 없었습니다.



마이그레이션의 경우는 단순히 빌드된 엔진 바이너리 압축본을 풀어서 실행하면 되는 것이기 때문에 딱히 이쪽 문제는 아니었고, 단순히 제가 한가지를 놓친 실수에서 이슈가 발생했네요.


고도의 경우 엔진 바이너리 따로 익스포트(내보내기) 템플릿이 따로 있습니다. 내보내기 템플릿을 설치해줘야 각 플랫폼으로 내보내기를 제대로 할 수 있는데, 2.1.2에서 잘 사용을 하다가 2.1.4에서 아무 생각없이 폰에 넣었더니 이슈가 발생했던거죠.



스샷과 같이 설정 - 내보내기 템플릿 설치에서 다운받은 템플릿, 저의 경우는 Godot_v2.1.4-stable_export_templates.tpz 를 선택해서 설치해주면 됩니다.

소스트리 비교 뷰에서 로그가 짤려 다 나오지 않을 때

이미지
비교적 긴 내용의 수정이 있을때 아래와 같이 diff 뷰에서 로그 확인 중에 ... 으로 나오면서 로그가 다 나오지 않고 짤려 보이는 이슈가 있더군요.



도구 - 옵션 - 비교 탭에서 최대 비교 줄 수가 아마 500이 기본값인데 이 값을 더 크게 설정해주면 됩니다.

Visual Studio 2008에서 2015로 마이그레이션 중 발생한 이슈들 정리

pdb 프로그램 데이터베이스를 쓰는 동안 오류가 발생했습니다. 디스크 공간이 부족한지, 경로가 잘못되었는지 또는 권한이 없는지 확인하십시오.

프로젝트를 빌드 중에 아래와 같은 에러가 발생했습니다.

fatal error LNK1201 'xxx.pdb' 프로그램 데이터베이스를 쓰는 동안 오류가 발생했습니다. 디스크 공간이 부족한지, 경로가 잘못되었는지 또는 권한이 없는지 확인하십시오.

비슷한 에러가 비주얼 스튜디오 2003을 윈도우7에서 사용하면서 발생했던 이슈에서도 있었지만, 이번에는 다른 문제가 원인이었습니다. 원인은 바로 출력 디렉토리와 출력 파일이 달라져서 발생했습니다. 기존에는 아래와 같이 되어 있었다면,

출력 디렉토리
../../../../BIN
출력 파일
$(OutDir)/$(SolutionName)$(ConfigurationName).exe


커밋된 내용을 업데이트 받으면서 아래와 같이 임의로 변경이 되면서 기존과 달라져서 pdb 파일을 찾지 못해 에러가 발생했습니다.

출력 디렉토리
D:\myproject\
출력 파일
D:\myproject\myproject_debug.exe

해결은 기존과 같이 내용을 수정해주면 됩니다.

Error CS0400: The type or namespace name 'Mono' could not be found in the global namespace (are you missing an assembly reference?)

이미지
개발 툴을 만들어 보려고 자마린 스튜디오로 GTK# 2.0 프로젝트를 만들어 빌드하니 아래와 같은 에러가 발생했습니다.

TestGTK\gtk-gui\MainWindow.cs(24,24): Error CS0400: The type or namespace name 'Mono' could not be found in the global namespace (are you missing an assembly reference?) (CS0400) (TestGTK)


어떠한 추가 작업을 하지 않은 프로젝트 생성하자마자 빌드 후 에러가 발생한 것이라 당황스럽더군요.

구글링을 해보니 mono.posix를 레퍼런스에 추가해야 한다고하네요. Project - Edit References에서 mono를 검색해봤지만 추가할 수 있는 mono.posix는 검색되지 않았습니다.



혹시나 싶어 Project - Add Nuget Packages 에서 posix를 검색해보니 mono.posix가 나오네요. 2가지 버전이 나오는데 mono.posix 4.5는 다운로드수가 0 이라 안정적인? mono.posix를 설치했습니다.



아래와 같이 프로젝트에 mono.posix가 포함되어집니다.



재 빌드 후 실행하면 아래와 같은 결과를 볼 수 있습니다.


https://forums.xamarin.com/discussion/47461/how-to-even-get-started
https://stackoverflow.com/questions/34006456/the-type-or-namespace-mono-could-not-be-found-in-the-global-namespace