Unity闪屏设计

喜你入骨 提交于 2019-11-27 06:40:25

项目需求,需要做一个闪屏,网上找了文章,大多数都是做个定时器(大概是这个意思),等两秒然后跳转主activity。

类似这些文章https://blog.csdn.net/lindroid20/article/details/52557766

然后定时器这两秒游戏中是啥事都不做的,白等两秒。所以想换一种做法,显示闪屏时游戏也同时在加载。

Unity安卓之间的交互和安卓环境搭建就不多说了,资料很多

贴代码:java代码

    private FrameLayout mLayoutContainer = null;
    private View mUnityView = null;
    private final Handler handler=new Handler();
    private boolean mSDKisLoaded = false;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mLayoutContainer = (FrameLayout) findViewById(R.id.main_layout_container);
        
        //onCreate显示闪屏
        setSplashLayoutEnable(true);
    }

    public void setSplashLayoutEnable(boolean isEnable) {
        final int INDEX_UNITY = 0;
        final int INDEX_SPLASH = 1;
        if (isEnable) {
            LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
            View splashLayout = inflater.inflate(R.layout.activity_splash,null);
            mLayoutContainer.addView(mUnityView, INDEX_UNITY, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
            mLayoutContainer.addView(splashLayout, INDEX_SPLASH, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
        } else {
            mLayoutContainer.removeViewAt(INDEX_SPLASH);
            mUnityView = null;
        }
    }

    //这个方法在Unity启动类代码Start函数调用,隐藏闪屏
    public void HideSplash() {
        Log.d("GDSDK", "HideSplash: ");
        handler.post(new Runnable() {
            @Override
            public void run() {
                setSplashLayoutEnable(false);
            }
        });
    }

    @Override
    public void setContentView(View view) {
        //super.setContentView(view);
        mUnityView = view;
    }

layout/activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="#fff">

    <FrameLayout
        android:id="@+id/main_layout_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></FrameLayout>

</RelativeLayout>

layout/activity_splash.xml drawable/splash文件夹配置闪屏图

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/splash">

</RelativeLayout>

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!