'Dev/Android'에 해당되는 글 4건
2011. 7. 27. 14:19
Eclipse 에서 Android Library 로 다른 프로젝트 추가해서 사용할 경우
Eclipse 에서 생성한 R.java 와 unity 에서 생성한 R.java 의 id 들이 틀려서 리소스들이 꼬인다..
이럴땐 http://limchaeng.tistory.com/24 에서 merge 한 resource 들을 가지고
Ant 에서 수동으로 R.java(패키지별로) 만들고 그걸 이용해서 Ant 에서 compile 한후 jar 로 묶고
unity 에서 사용하면 된다.
*R.java 만든는 Ant code
<property name="aapt" location="${sdk.dir}/platforms/${target}/tools/aapt.exe" />
<target name="build-aapt" depends="copy-resource">
Eclipse 에서 생성한 R.java 와 unity 에서 생성한 R.java 의 id 들이 틀려서 리소스들이 꼬인다..
이럴땐 http://limchaeng.tistory.com/24 에서 merge 한 resource 들을 가지고
Ant 에서 수동으로 R.java(패키지별로) 만들고 그걸 이용해서 Ant 에서 compile 한후 jar 로 묶고
unity 에서 사용하면 된다.
*R.java 만든는 Ant code
<property name="aapt" location="${sdk.dir}/platforms/${target}/tools/aapt.exe" />
<target name="build-aapt" depends="copy-resource">
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg value="-m" />
<arg value="-J" />
<arg value="${output.gen.absolute.dir}" />
<arg value="-M" />
<arg value="AndroidManifest.xml" />
<arg value="-S" />
<arg value="${unity3dresource.absolute.dir}" />
<arg value="-I" />
<arg value="${android-jar}" />
</exec>
</target>
*compile code
<target name="build-class" depends="build-aapt" >
<echo>Build Classes</echo>
<javac target="1.6" extdirs=""
destdir="${output.classes.absolute.dir}"
bootclasspathref="android.target.classpath"
includeantruntime="false">
<src path="${output.gen.absolute.dir}" />
<src path="${source.absolute.dir}" />
<!-- 링크된 라이브러리들의 소스도 컴파일해준다. -->
<src path="${android.library.reference.1}/src" />
<src path="${android.library.reference.2}/src" />
<src path="${android.library.reference.3}/src" />
<classpath>
<fileset dir="${external.libs.absolute.dir}" includes="*.jar" />
<fileset dir="${twitter.libs.absolute.dir}" includes="*.jar" />
<!-- ************************************************** -->
<!-- 여기에 외부 라이브러리들을 넣어준다. -->
<fileset dir="${unity3dlibrary.absolute.dir}" includes="*.jar" />
<!-- ************************************************** -->
</classpath>
</javac>
</target>
<arg value="package" />
<arg value="-m" />
<arg value="-J" />
<arg value="${output.gen.absolute.dir}" />
<arg value="-M" />
<arg value="AndroidManifest.xml" />
<arg value="-S" />
<arg value="${unity3dresource.absolute.dir}" />
<arg value="-I" />
<arg value="${android-jar}" />
</exec>
</target>
*compile code
<target name="build-class" depends="build-aapt" >
<echo>Build Classes</echo>
<javac target="1.6" extdirs=""
destdir="${output.classes.absolute.dir}"
bootclasspathref="android.target.classpath"
includeantruntime="false">
<src path="${output.gen.absolute.dir}" />
<src path="${source.absolute.dir}" />
<!-- 링크된 라이브러리들의 소스도 컴파일해준다. -->
<src path="${android.library.reference.1}/src" />
<src path="${android.library.reference.2}/src" />
<src path="${android.library.reference.3}/src" />
<classpath>
<fileset dir="${external.libs.absolute.dir}" includes="*.jar" />
<fileset dir="${twitter.libs.absolute.dir}" includes="*.jar" />
<!-- ************************************************** -->
<!-- 여기에 외부 라이브러리들을 넣어준다. -->
<fileset dir="${unity3dlibrary.absolute.dir}" includes="*.jar" />
<!-- ************************************************** -->
</classpath>
</javac>
</target>
'Dev > Android' 카테고리의 다른 글
Unity3d Android Plugin Guide - UnityPlayer 상속 받아 사용하기. (0) | 2011.07.19 |
---|---|
Unity3d Android Plugin Guide - Resource Merge (5) | 2011.07.19 |
Unity3d Android Plugin Guide - Main Activity 변경하기. (0) | 2011.07.19 |
2011. 7. 19. 16:19
메인 activity 를 변경해서 사용( http://limchaeng.tistory.com/23 ) 시 UnityPlayer 상속 받아서 사용 할 수 있다.
onPause() 시 OpenGL surface 변경 관련해서 notify 를 받기 위해 사용했다...
public class OverriderUnityPlayer extends UnityPlayer { public void onSurfaceCreated(GL10 arg0, EGLConfig arg1) { // TODO Auto-generated method stub super.onSurfaceCreated(arg0, arg1); } }
'Dev > Android' 카테고리의 다른 글
Unity3d Android Plugin Guide - R.java (1) | 2011.07.27 |
---|---|
Unity3d Android Plugin Guide - Resource Merge (5) | 2011.07.19 |
Unity3d Android Plugin Guide - Main Activity 변경하기. (0) | 2011.07.19 |
2011. 7. 19. 15:29
* jar 안의 resource 접근 안됨.
* jar 안에 res 폴더랑 /Assets/Plugins/Android/res/ 에 같은 resource 있으면 build 할때 에러남.
* /Assets/Plugins/Android/res/ 폴더의 하위폴더들이 android 표준에 맞지 않으면 build 할때 에러남.
1. 모든 resource 는 /Assets/Plugins/Android/res/ 아래에 있어야 함.
2. 외부 리소스 사용시 unity3d 설치폴더/Unity/Editor/Data/PlaybackEngines/androidplayer/res 에 있는 리소드들을 eclipse android project 상의 res 폴더에 포함시킨후 사용해야 함.(이건, eclipse 에서 build 된 resource id 들과 unity3d 에서 build 할때의 resource id 들을 맞춰주기 위함이다.. 이걸 하지 않으면 리소스 접근할때 리스소들이 꼬인다...--; )
3. 공통으로 쓰는 리소스들 (strings.xml, styles.xml, 등등) 은 수동으로 합쳐준다. (unity 설치폴더/Unity/Editor/Data/PlaybackEngines/androidplayer/res/values/ 에 있는 내용도 포함시켜야 한다.)
4. gen 에서 만들어진 파일들도 모두 /Assets/Plugins/Android/gen 폴더에 복사해야 함.(이건 꼭 필요한지 기억이 나지않는데...unity3d packaging 시 사용하는것 같았던 기억이.....필요하니까 추가 했을것이다.ㅋㅋ). <- 이건 없어도 된다는것을 확인했음..
5. res/ 폴더 규칙에 맞지 않는 리소스들은 /Assets/Plugins/Android/assets 폴더에 넣어 두면 사용 가능함.
6. build 시 package 에러 나면 중복된 resource 가 있는지..res 폴더 규칙이 맞는지..등등 검사해야함.
7. 만약 resouece들이 이상하게 나온다면 eclipse 상에서 만들어지 R.java 와 unit3d 에서 만들어지 R.java 를 비교해서 맞는지 검사후 틀리면 리소스들 잘 정리해야 함. --; (unity3d 에서 만들어진 R.java 는 /유니티프로젝트폴더/Temp/StagingArea/gen 폴더에서 확인 할 수 있음.
'Dev > Android' 카테고리의 다른 글
Unity3d Android Plugin Guide - R.java (1) | 2011.07.27 |
---|---|
Unity3d Android Plugin Guide - UnityPlayer 상속 받아 사용하기. (0) | 2011.07.19 |
Unity3d Android Plugin Guide - Main Activity 변경하기. (0) | 2011.07.19 |
2011. 7. 19. 14:44
자신이 만든 activity 를 main 으로 사용하기 위한 작업.
1. Unity\Editor\Data\PlaybackEngines\androidplayer\src\com\unity3d\player\UnityPlayerActivity.java 파일 의 내용을 자신이 사용할 메인 activity 에 복사한다. (unity 엔진 구동을 위한 내용이 들어있다.)
ex) CustomUnityPlayerActivity.java <- UnityPlayerActivity.java 내용 복사
: full name : com.simple.unity.CustomUnityPlayerActivity
2. 새로 만든 activity 를 jar 로 묶은 다음 /Assets/Plugins/Android/ 폴더에 복사하고
2. 새로 만든 activity 의 컴파일이 완료되면 컴파일된 *.class 파일을 jar 로 묶은 다음 /Assets/Plugins/Android/ 폴더에 복사하고.
ex) bin 폴더에 컴파일이 된다면 : bin/com/simple/unity/CustomUnityPlayerActivity.class
: /com/simple/unity/CustomUnityPlayerActivity.class 를 CustomUnityPlayerActivier.jar 로 묶는다.
3. AndroidManifest.xml 의 내용 변경.(이것은 PlayerSetting 에서 셋팅하고 나서 build 를 한번 하면 /프로젝트폴더/Temp/ 폴더 아래에 StagingArea 폴더가 생기는데 그 밑에 보면 PlayerSetting 에서 셋팅한 내용이 적용된 AndroidManifest.xml 을 가져올수 있다.
내용을 복사해서 /Assets/Plugins/Android/AndroidManifest.xml 을 새로 만든후 이 파일에서
<activity android:name="com.unity3d.player.UnityPlayerActivity"
<activity android:name="com.simple.unity.CustomUnityPlayerActivity"
android:label="@string/app_name"
android:configChanges="keyboardHidden|orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
위와 같이 수정하고 /Assets/Plugins/Android/ 폴더에 3번에서 새로 만든 AndroidManifest.xml 을 넣어 놓으면 자신이 만든 activity 를 메인으로 사용할 수 있다..
1. Unity\Editor\Data\PlaybackEngines\androidplayer\src\com\unity3d\player\UnityPlayerActivity.java 파일 의 내용을 자신이 사용할 메인 activity 에 복사한다. (unity 엔진 구동을 위한 내용이 들어있다.)
ex) CustomUnityPlayerActivity.java <- UnityPlayerActivity.java 내용 복사
: full name : com.simple.unity.CustomUnityPlayerActivity
2. 새로 만든 activity 를 jar 로 묶은 다음 /Assets/Plugins/Android/ 폴더에 복사하고
2. 새로 만든 activity 의 컴파일이 완료되면 컴파일된 *.class 파일을 jar 로 묶은 다음 /Assets/Plugins/Android/ 폴더에 복사하고.
ex) bin 폴더에 컴파일이 된다면 : bin/com/simple/unity/CustomUnityPlayerActivity.class
: /com/simple/unity/CustomUnityPlayerActivity.class 를 CustomUnityPlayerActivier.jar 로 묶는다.
3. AndroidManifest.xml 의 내용 변경.(이것은 PlayerSetting 에서 셋팅하고 나서 build 를 한번 하면 /프로젝트폴더/Temp/ 폴더 아래에 StagingArea 폴더가 생기는데 그 밑에 보면 PlayerSetting 에서 셋팅한 내용이 적용된 AndroidManifest.xml 을 가져올수 있다.
내용을 복사해서 /Assets/Plugins/Android/AndroidManifest.xml 을 새로 만든후 이 파일에서
<activity android:name="com.unity3d.player.UnityPlayerActivity"
<activity android:name="com.simple.unity.CustomUnityPlayerActivity"
android:label="@string/app_name"
android:configChanges="keyboardHidden|orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
위와 같이 수정하고 /Assets/Plugins/Android/ 폴더에 3번에서 새로 만든 AndroidManifest.xml 을 넣어 놓으면 자신이 만든 activity 를 메인으로 사용할 수 있다..
'Dev > Android' 카테고리의 다른 글
Unity3d Android Plugin Guide - R.java (1) | 2011.07.27 |
---|---|
Unity3d Android Plugin Guide - UnityPlayer 상속 받아 사용하기. (0) | 2011.07.19 |
Unity3d Android Plugin Guide - Resource Merge (5) | 2011.07.19 |