run - Mostrar escena de unidad como vista secundaria en android studio
unity para android (1)
Lo que está buscando es cómo mostrar Unity Scene como una subvista.
Algo como a continuación:
Esto se describe aquí en el foro de Unity. Y el código para cargar la escena de Unity:
package com.unity3d.viewexample;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.LinearLayout.LayoutParams;
import com.unity3d.player.UnityPlayer;
public class JavaCubeViewActivity extends Activity {
private UnityPlayer m_UnityPlayer;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Create the UnityPlayer
m_UnityPlayer = new UnityPlayer(this);
int glesMode = m_UnityPlayer.getSettings().getInt("gles_mode", 1);
boolean trueColor8888 = false;
m_UnityPlayer.init(glesMode, trueColor8888);
setContentView(R.layout.main);
// Add the Unity view
FrameLayout layout = (FrameLayout) findViewById(R.id.frameLayout2);
LayoutParams lp = new LayoutParams (LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
layout.addView(m_UnityPlayer.getView(), 0, lp);
}
}
Puede exportar el proyecto de Unity a un proyecto Android de Android y luego usar el código anterior o puede escribir ese código Java y luego compilarlo como un plugin jar y hacer que Unity lo cargue modificando el Manifiesto de Android en Unity. Ambos métodos deberían funcionar.
Finalmente, puede llamar a la función C # en el lado de Unity desde Java con UnityPlayer.SendMessage.
Archivo manifiesto
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="preferExternal" package="com.unity3d.unity" android:versionName="1.0" android:versionCode="1">
<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.UnityPlayerProxyActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:screenOrientation="portrait">
</activity>
<activity android:name="com.unity3d.player.UnityPlayerNativeActivity" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:screenOrientation="portrait">
<meta-data android:name="android.app.lib_name" android:value="unity" />
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" />
</activity>
<activity android:name="com.unity3d.player.VideoPlayer" android:label="@string/app_name" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen" android:screenOrientation="portrait">
</activity>
</application>
<uses-feature android:glEsVersion="0x00020000" />
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="15" />
</manifest>
EDITAR :
Si desea llamar a la función de Unity desde Java, use
UnityPlayer.UnitySendMessage("GameObjectName", "MethodName", "parameter to send");
Puede encontrar más información sobre esto y cómo importarlo en Android Studio aquí .
Estoy un poco confundido sobre la visualización de modelos 3D y gráficos en proyectos de estudio de Android.
He estado trabajando mucho con Rajawali , que es un motor Android OpenGL ES 2.0 / 3.0.
Gracias a Rajawali pude mostrar modelos en 3D, realizar animaciones simples y mover la cámara.
Ahora me gustaría realizar cada vez más movimientos y animaciones, y tal vez crear materiales y texturas personalizadas, pero la wiki de Rajawali está muy pasada de moda y esta biblioteca tiene algunos límites (en mi opinión).
Así que ahora me pregunto si hay una manera de crear una escena o algo así en Unity3D, por ejemplo, una vista de modelo 3D animado que puedo rotar con el dedo, y luego convertirla en una clase Java de Android o una vista personalizada.
Gracias.
EDITAR:
Esto es lo que tengo actualmente:
Esta es la pantalla de inicio de mi aplicación Android Studio . En Backgroud, tengo una vista de modelo 3D "cargada" con Rajawali.
¿Cómo puedo obtener el mismo resultado usando Unity?