using Unity Android In a sub view and add actionbar and style

Posted by aeroxr1 on Game Development See other posts from Game Development or by aeroxr1
Published on 2014-06-09T15:22:07Z Indexed on 2014/06/09 15:43 UTC
Read the original article Hit count: 478

Filed under:
|

I exported a simple animation from Unity3D (version 4.5) in android project. With eclipse I modified the manifest and added another activity.

In this activity I put a button that it makes start the animation,and this is the result.

The action bar appear in the main activity but it doesn't in the unity's activity :(

How can I add the action bar and the style of the first activity to unity's animation activity ?

This is the unity's activity's code :

package com.rabidgremlin.tut.redcube;

import android.app.NativeActivity;
import android.content.res.Configuration;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;

import com.unity3d.player.UnityPlayer;

public class UnityPlayerNativeActivity extends NativeActivity
{
protected UnityPlayer mUnityPlayer;     // don't change the name of this     variable; referenced from native code

// Setup activity layout
@Override protected void onCreate (Bundle savedInstanceState)
{
    //requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    getWindow().takeSurface(null);
    //setTheme(android.R.style.Theme_NoTitleBar_Fullscreen);
    getWindow().setFormat(PixelFormat.RGB_565);

    mUnityPlayer = new UnityPlayer(this);
    /*if (mUnityPlayer.getSettings ().getBoolean ("hide_status_bar", true))
        getWindow ().setFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN,
                               WindowManager.LayoutParams.FLAG_FULLSCREEN);
    */
    setContentView(mUnityPlayer);
    mUnityPlayer.requestFocus();
}

// Quit Unity
@Override protected void onDestroy ()
{
    mUnityPlayer.quit();
    super.onDestroy();
}

// Pause Unity
@Override protected void onPause()
{
    super.onPause();
    mUnityPlayer.pause();
}

// eliminiamo questa onResume() e proviamo a modificare la onResume()
// Resume Unity
@Override protected void onResume()
{
    super.onResume();
    mUnityPlayer.resume();
}
// inseriamo qualche modifica qui 



// This ensures the layout will be correct.
@Override public void onConfigurationChanged(Configuration newConfig)
{
    super.onConfigurationChanged(newConfig);
    mUnityPlayer.configurationChanged(newConfig);
}

// Notify Unity of the focus change.
@Override public void onWindowFocusChanged(boolean hasFocus)
{
    super.onWindowFocusChanged(hasFocus);
    mUnityPlayer.windowFocusChanged(hasFocus);
}

// For some reason the multiple keyevent type is not supported by the ndk.
// Force event injection by overriding dispatchKeyEvent().
@Override public boolean dispatchKeyEvent(KeyEvent event)
{
    if (event.getAction() == KeyEvent.ACTION_MULTIPLE)
        return mUnityPlayer.injectEvent(event);
    return super.dispatchKeyEvent(event);
}

// Pass any events not handled by (unfocused) views straight to UnityPlayer
@Override public boolean onKeyUp(int keyCode, KeyEvent event)     { return mUnityPlayer.injectEvent(event); }
@Override public boolean onKeyDown(int keyCode, KeyEvent event)   { return mUnityPlayer.injectEvent(event); }
@Override public boolean onTouchEvent(MotionEvent event)          { return mUnityPlayer.injectEvent(event); }
/*API12*/ public boolean onGenericMotionEvent(MotionEvent event)  { return mUnityPlayer.injectEvent(event); }
}

And this is the AndroidManifest.xml

android:versionCode="1"
android:versionName="1.0" >
<!--  android:theme="@android:style/Theme.NoTitleBar"-->
<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:xlargeScreens="true" />

  <application
     android:icon="@drawable/app_icon"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Holo.Light"  >

    <activity
        android:name="com.rabidgremlin.tut.redcube.UnityPlayerNativeActivity"
           android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale"
        android:label="@string/app_name"

        android:screenOrientation="portrait" >
 <!--android:launchMode="singleTask"-->
        <meta-data
            android:name="unityplayer.UnityActivity"
            android:value="true" />
        <meta-data
            android:name="unityplayer.ForwardNativeEventsToDalvik"
            android:value="false" />
    </activity>
    <activity
        android:name="com.rabidgremlin.tut.redcube.MainActivity"
        android:label="@string/title_activity_main" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
<uses-sdk
    android:minSdkVersion="17"
    android:targetSdkVersion="19" />

<uses-feature android:glEsVersion="0x00020000" />

</manifest>

© Game Development or respective owner

Related posts about android

Related posts about unity