Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在android布局中添加unityplayer作为子视图?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在 android布局中添加unityview作为子视图.
在Android xml文件中创建相对布局,并将unityview添加到relativelayout.
但是统一视图在相对布局的左下方显示为小图像.

黑色部分是我的相对布局,但是不占据的统一视图进入相对布局.

代码如下:

public class MainActivity extends UnityPlayerActivity {

            public static Context mContext;
            private Handler handler=new Handler();
            private UnityPlayer m_UnityPlayer;

            @Override
                protected void onCreate(Bundle bundlE) {
                    super.onCreate(bundlE);


                            mContext = this;
                            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.activity_main);

                            //This is my relative layout
                            RelativeLayout layout = (RelativeLayout) findViewById(R.id.relativelayout2);    
//Relativelayout width is 750dp and height is 640dp.

                            LayoutParams lp = new LayoutParams (750,640);

//Iam adding unityview to layout here

                            layout.addView(m_UnityPlayer.getView(),lp);


            }
            }

解决方法

最后我得到了解决方案.

> MainActivity应该作为Activity扩展,而不是UnityPlayerActivity.
>将这两行添加到android清单中的活动

<Meta-data android:name="unityplayer.UnityActivity" android:value="true" />
<Meta-data android:name="unityplayer.ForWARDNativeEventsToDalvik" android:value="false" />

工作代码是:

public class MainActivity extends Activity implements OnTouchListener {
        public static Context mContext;
        private Handler handler=new Handler();
        protected UnityPlayer mUnityPlayer; 



        protected void onCreate(Bundle savedInstanceStatE) {


        requestWindowFeature(Window.FEATURE_NO_titlE);
                super.onCreate(savedInstanceStatE);
                mContext = this;
                    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);

                int glesMode = mUnityPlayer.getSetTings().geTint("gles_mode",1);
                Boolean trueColor8888 = false;
                mUnityPlayer.init(glesMode,trueColor8888);

                View playerView = mUnityPlayer.getView();


                setContentView(R.layout.activity_main);

                FrameLayout layout = (FrameLayout) findViewById(R.id.frameLayout2);     

                LayoutParams lp = new LayoutParams (750,630);

                layout.addView(playerView,lp);

    }

    protected void onDestroy ()
    {
        mUnityPlayer.quit();
        super.onDestroy();
    }

    // onPause()/onResume() must be sent to UnityPlayer to enable pause and resource recreation on resume.
    protected void onPause()
    {
        super.onPause();
        mUnityPlayer.pause();
    }
    protected void onResume()
    {
        super.onResume();
        mUnityPlayer.resume();
    }
    public void onConfigurationChanged(Configuration newConfig)
    {
        super.onConfigurationChanged(newConfig);
        mUnityPlayer.configurationChanged(newConfig);
    }
    public void onWindowFocusChanged(Boolean hasFocus)
    {
        super.onWindowFocusChanged(hasFocus);
        mUnityPlayer.windowFocusChanged(hasFocus);
    }
    public Boolean dispatchKeyEvent(KeyEvent event)
    {
        if (event.getAction() == KeyEvent.ACTION_MULTIPLE)
            return mUnityPlayer.onKeymultiple(event.getKeyCode(),event.getRepeatCount(),event);
        return super.dispatchKeyEvent(event);
    }

}

结果:

大佬总结

以上是大佬教程为你收集整理的如何在android布局中添加unityplayer作为子视图?全部内容,希望文章能够帮你解决如何在android布局中添加unityplayer作为子视图?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。