유니티와 이클립스 통합하기

이 가이드는 가능한 새로운 사용자들에게 친근하도록 만들어졌습니다. 그러나 사용자가 이클립스나 자바 프로그래밍 언어와 안드로이드 sdk에 익숙하다면 더욱 쉬울 것입니다.

이클립스에서 유니티 안드로이드를 사용하기 위해서는 이클립스를 안드로이드와 사용할 수 있도록 설정해야합니다. 이것을 어떻게 해야하는 지에 대한 좋은 가이드가 있습니다. android developer documentation.

라이브러리로서의 유니티

최신 이클립스가 설치 되었으면 사용자 유니트 프로젝트가 이클립스에서 라이브러리로 상용되게 하기 위해 몇가지 절차가 필요합니다.

  • 빈 유니티 프로젝트를 만들고 안드로이를 위해 빌드하세요. 지금은 유니티 프로젝트가 코드나 에셋을 포함하고 있는지는 중요하지 않습니다. 이 부분의 프로세스는 앞으로 바뀔 것입니다.
  • 그 새로운 프로젝트 폴더로 이동후 Temp폴더로 갑니다. 그곳에 staging area라는 폴더가 있습니다.
  • 그 staging area폴더를 복사후 홀딩 영역으로 사용할 수 있는 사용자 파일 시스템에 위치 시킵니다. 그 홀딩 영역은 이클립스 워크스페이스 안에 있으면 에러가 생기니 그곳에 놓지 마세요.
  • 이클립스를 열고 File –> New –> Project를 눌러 새로운 안드로이드 프로젝트를 만드세요.
  • 안드로이드 프로젝트를 선택하고 누르세요.
  • 이것은 사용자 프로젝트의 라이브러리가 될 것이므로 혼돈을 피하기위해 이름을 적절히 만드세요.
  • 또한 기존의 소스로부터 새로운 프로젝트를 만들 수도 있습니다. 이 소스는 사용자가 홀딩 영역으로 사용하는 위치시킨 파일입니다. 사용자가 Staging Area폴더를 선택하고 OK를 누르면 이클립스가 관련된 필드를 채워 놓은것을 볼수 있습니다.
  • 프로젝트 생성 위자드에서 finish를 누르세요.
  • 마지막으로 이클립스의 패키지 탐색기의 루트 폴더를 오른쪽 클릭하고 속성 옵션을 선택하고 안드로이드 탭을 누릅니다. “Is Library” 체크 박스를 체크하고 Apply를 누르고 OK를 누릅니다.

이것은 이클립스안에서 사용자 프로젝트가 라이브러리로 사용되도록 만드는 과정을 완성합니다.

자바 프로젝트

다음 스텝은 이클립스 프로젝트의 실행되는 부부분을 만드는 것입니다.

  • 새로운 안드로이드 프로젝트를 만듭니다.
  • 프로젝트 이름을 정하고 생성한 라이브러리 프로젝트와 같은 Build Target 과 Min SDK Version을 선택합니다.
  • 패키지 이름을 유니티 프로젝트안의 번들 식별자와 같게 만들어야 합니다. 그렇지 않으면 프로젝트에서 생성된 자바 파일에 충돌 문제가 생길수 있습니다.
  • 이제 생성한 라이브러리를 프로젝트에 추가합니다. 이것은 JavaProject를 클릭해서 속성을 선택하면 됩니다.
  • 안드로이드를 선택하고 add를 클릭합니다. 그럼 창이 뜨고 생성된 라이브러리 프로젝트를 선택하고 ok를 누릅니다. 메인 창으로 돌아오면 apply를 누릅니다.
  • 이제 왼쪽 리스트에서 Java Build Path를 선택하고 add external jar를 클릭합니다. 그럼 창이 뜨고 사용자 유니티 설치 디렉토리로 이동하고Unity\Editor\Data\PlaybackEngines\androidplayer\bin에 classes.jar라는 파일이 있습니다. 그 파일을 더블클릭하고 ok를 클릭합니다.

이것은 사용자의 유니티 프로젝트와 나중에 쓰이기될 관련 라이브러리가 링크된 기본 자바 프로젝트를 설정합니다.

프로젝트 에셋 이동하기

사용자 유니티 콘텐츠를 자바 프로젝트로 옮거서 나중에 자바 프로젝트를 빌드하고 실행할때 보여줄수 있게 하는 매우 중요한 부분입니다. 이제 라이브러리 프로젝트의 에셋 폴더에 있는 모든 파일을 새로운 프로젝트로 옮겨야 합니다. 왜냐하면 안드로이드에서는 에셋이 라이브러리에 있을 수 없기 때문입니다. 이것을 하기 위한 가장 좋은 방법은 이클립스 IDE안에서 하는 것입니다. 양쪽의 패키지 탐색기의 에셋 파일을 확장하고 단순히 bin과 libs폴더를 사용자 프로젝트에서 다른 프로젝트로 드래그하면 됩니다. 이 마지막 스텝은 사용자 유니티 프로젝트가 다시 빌드될 때마다 반복해야하는데 스크립트를 만들어 빌드할 때마다 자동으로 파일을 옮기게 할수도 있습니다. 이것은 또한 symlinks나 junctions을 이용해서도 할수 있습니다. 이 시점에서 이클립스 IDE에서 프로젝트를 실행시키면 어떤 종류의 프로젝트를 실행하고 싶은지 묻게 됩니다. 안드로이드를 선택하고 ok를 누릅니다. 이클립스가 프로젝트 빌드를 마치면 그것은 연결된 안드로이드 장치로 옮겨지고 헬로우 월드 스타일의 프로그램이 실행되는 것을 볼수 있습니다.

사용자 유니티 컨텐츠 실행하기

사용자 유니티 프로젝트를 얻기 위해서는 자바 소스 코드를에 몇가지 변화를 줄 필요가 있습니다. 사용자의 이클립스 프로젝트에 하나의 소스파일(.java)가 있는데 이것을 엽니다. 그 파일의 내용은 아래와 비슷할것 입니다.

package com.Unity3D.EclipseIntegration;
 
import android.app.Activity;
import android.os.Bundle;
 
public class EclipseIntegration extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

이것을 바꾸어야 합니다. 첫째로 객체의 베이스 클래스를 바꾸어야 합니다. 이제 그것은UnityPlayerActivity를 상속해야 합니다. 이것을 했을때 에러를 의미하는 빨간 밑줄이 생기는 것을 알수 있습니다. 이것은 파일에 관련된 import가 빠진걸 말해줍니다. 이것을 자동으로 해결해주는 이클립스 단축키는 ctrl+shift+o입니다. 그 파일은 이제 import문을 가져야 합니다.

import com.unity3d.player.UnityPlayerActivity;

이제는 전체화면의 헬로우 월드 프로그램을 보게될 것입니다. 이것은 사용자가 원하는 것이 아니고 사용자의 유니티 콘텐츠가 실행되는 것을 보기위해서는 한가지를 더 바꾸어야 합니다.

onCreate함수에 안드로이드 프로그램에서 유니티 뷰를 오버라이드하는 하나의 라인이 있습니다. 그 라인을 지우면.

setContentView(R.layout.main);

이제 완전한 파일은 아래와 같을 것입니다.

package com.Unity3D.EclipseIntegration;
 
import android.os.Bundle;
 
import com.unity3d.player.UnityPlayerActivity;
 
public class EclipseIntegration extends UnityPlayerActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
}

이제 이것을 실행하면 안드로이드 장치에서 사용자의 유니티 콘텐츠가 실행되는 것을 볼수 있습니다.