레이블이 Unity3D인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Unity3D인 게시물을 표시합니다. 모든 게시물 표시

Unity3D Visual Studio 연동하기

유니티(Unity3D)의 Monodevelop 는 VisualStudio(VS) 에 비하면 꽤 불편한다.
익숙한 VS 로 유니티 개발을 하기위해선 Visual Studio Tools for Unity 을 사용하면 된다.

VS 버전에 맞게 다운로드 받아 설치하자.
(MS 가 SyntaxTree 를 인수하면서 무료로 제공된다.)
http://unityvs.com/

이제 유니티를 실행(또는 재실행)하여
Assets메뉴 -> Import Package -> Visual Studio 2012 Tools 로 임포트한다.

이제 유니티에서 Visual Studio Tools 메뉴가 생겼다.
Visual Studio Tools -> Open in Visual Studio 로 사용할 수 있다.
(콘솔 메시지를 더블클릭해도 VS 로 처리된다.)

Unity3D External Script Editor 로 VS2012 사용하기 안될때

Unity3D 에서 외부 스크립트 에디터로 VS2012 를 설정하였는데
monodevelop 이 실행되는 경우 다음과 같은 .bat 파일을 만들어 해결한다.


@rem .cpp .cs 등 파일들은 vs2012 로 열리도록 파일 연결이 되어 있어야 한다.
@rem Unity3D 에서 .cs 등 클릭하면 첫번째 인자(%1) .cs 파일을 vs2012 로 실행하게 된다.
start "title" %1

만든 .bat 파일을
Unity3D -> Edit -> Preference -> External Tools -> External Script Editor -> Browse...
에서 설정한다.


Unity3D 자동 스크롤하기

Vector2 m_ScrollPosition;

// 한줄씩 새로운 메시자를 추가하기
public void AddLogMessage(string msg)
{
 m_LogMsg += msg + "\n";
 // 자동으로 맨 밑으로 스크롤
 m_ScrollPosition.y = Mathf.Infinity;
}

// 화면 갱신 이벤트가 발생될때마다 호출
void OnGUI()
{
 // 버튼(m_Rt) 위치 아래 화면에 스크롤 영역을 생성
 Rect rtArea = new Rect(0, (int)(m_Rt.yMax) + 5, Screen.width, Screen.height - (int)(m_Rt.yMax) - 5);
 GUILayout.BeginArea(rtArea);
 m_ScrollPosition = GUILayout.BeginScrollView(m_ScrollPosition, GUILayout.Width(Screen.width), GUILayout.Height(Screen.height - (int)(m_Rt.yMax) - 5));

 // 메시지가 추가
 GUILayout.Label(m_LogMsg);

 // OnGUI 에서 사용하면 스크롤바를 움직일 수 없다
 // m_ScrollPosition.y = Mathf.Infinity;
 GUILayout.EndScrollView();
 GUILayout.EndArea();

  ... 중략 ...
}

Unity3D Standalone 환경에서의 ArgumentException: Encoding name 'euc-kr' not supported 오류 해결방법

[문제]
Unity 에서 C# System.Text.Encoding.GetEncoding("euc-kr") 으로 한글 인코딩을 사용하였을 경우
Unity Editor 상에서 플레이하면 잘 작동하지만 Emulator 나 Device 의 standalone 환경에서는
다음과 같은 오류가 발생한다.(Eclipse Logcat 으로 확인)
INFO/Unity(499): ArgumentException: Encoding name 'euc-kr' not supported

[해결방법]
C:\Program Files (x86)\Unity\Editor\Data\Mono\lib\mono\2.0\I18N.CJK.dll
을 프로젝트에 복사해 포함시키면 standalone 환경에서도 정상 작동한다.
한글이외의 문자셋을 사용한다면 I81N.west.dll I18N.rare.dll 등을 사용하면 된다.