嘿伙计们,我需要一点帮助将Unity集成到Eclipse中
我的参考页面是这个=> here
我有Unity3D Pro版和Android插件专业版
到现在为止,如果我将这个小项目运行到我的设备中,我会得到类似这样的内容
您可以通过此链接查看图片。
下一步是:
我正在将资产文件夹和res文件夹从库项目移动到新项目。
之后我将从库移动AndroidMnifest.xml并替换项目
这是我的MainActivity.java代码
package com.Developer.PackMan;
import com.unity3d.player.UnityPlayerNativeActivity;
import android.os.Bundle;
public class MainActivity extends UnityPlayerNativeActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
这是Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.Developer.PackMan" android:theme="@android:style/Theme.NoTitleBar" android:versionName="1.0" android:versionCode="1" android:installLocation="preferExternal">
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
<application android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="false">
<activity android:name="com.unity3d.player.UnityPlayerNativeActivity" android:label="@string/app_name" android:screenOrientation="landscape" android:launchMode="singleTask" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" />
</activity>
</application>
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="19" />
<uses-feature android:glEsVersion="0x00020000" />
<uses-feature android:name="android.hardware.sensor.accelerometer" />
</manifest>
在构建之后,我收到了以下文本的错误
应用程序)进程com.Developer.Packman)意外停止,请再试一次。
问题是我在LogCat或Console中没有出现任何错误,一切都很清楚。
我真的需要你的帮助。谢谢。
答案 0 :(得分:5)
对于必须同时显示Unity3d和常规Android UI的应用程序,我编写了一份供将来使用的指南。 AFAIR它基于Unity3d 4.3版。我希望它足够详细:)
<强>预设置:强>
要开始集成Unity3d和Android,您需要在'... Unity \ Editor \ Data \ PlaybackEngines \ androidplayer \ bin'中找到classes.jar文件。您可以将它放在工作区目录中。
<强>设定:强>
<强>编码强>
本指南假设您的目标是开展Android活动,该活动将同时显示Unity模型和常规Android UI。
<强>故障排除:强>
下面是一些示例代码,用于说明保存Unity3d对象的Activity
:
private Button buttonChangeColour;
private UnityPlayer unityPlayer = null;
@Override
public void onResume() {
super.onResume();
if (unityPlayer == null) {
View rootView = findViewById(android.R.id.content);
unityPlayer = findUnityPlayerView(rootView);
if (unityPlayer != null) {
ViewGroup unityPlayerParentView = (ViewGroup)(unityPlayer.getParent());
View mainHomeView = getLayoutInflater().inflate(R.layout.activity_home, null);
LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
unityPlayerParentView.addView(mainHomeView, layoutParams);
buttonChangeColour = (Button) findViewById(R.id.buttonChangeColour);
buttonChangeColour.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// [...]
}
});
}
}
}
private UnityPlayer findUnityPlayerView(View view) {
if (view instanceof UnityPlayer) {
return (UnityPlayer) view;
}
if (view instanceof ViewGroup) {
ViewGroup childrenViews = (ViewGroup) view;
for (int i = 0; i < childrenViews.getChildCount(); i++) {
UnityPlayer foundView = findUnityPlayerView(childrenViews.getChildAt(i));
if (foundView != null) {
return foundView;
}
}
}
return null;
}
答案 1 :(得分:1)
你也可以查看我以前的教程,我解释了如何在不使用eclipse的情况下编写插件。