コード例 #1
0
    /// <summary>
    /// check for screen orientation changes
    /// </summary>
    public void Update()
    {
        if (Application.platform == RuntimePlatform.Android)
        {
            if (SurfaceUtilities.HasSurfaceBeenRecreated())
            {
                InitializeSurface();
            }
            else
            {
                // if Unity reports that the orientation has changed, reset the member variable
                // - this will trigger a check in Java for a few frames...
                if (Screen.orientation != mScreenOrientation)
                {
                    ResetUnityScreenOrientation();
                }

                CheckOrientation();

                if (mScreenWidth != Screen.width || mScreenHeight != Screen.height)
                {
                    mScreenWidth  = Screen.width;
                    mScreenHeight = Screen.height;
                    SurfaceUtilities.OnSurfaceChanged(mScreenWidth, mScreenHeight);
                }
            }

            mFramesSinceLastOrientationReset++;
        }
    }
コード例 #2
0
    private void InitializeSurface()
    {
        SurfaceUtilities.OnSurfaceCreated();

        AndroidJavaClass javaUnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");

        mCurrentActivity = javaUnityPlayer.GetStatic <AndroidJavaObject>("currentActivity");
        if (mCurrentActivity != null)
        {
            mJavaOrientationUtility = new AndroidJavaClass("com.qualcomm.QCARUnityPlayer.OrientationUtility");
        }

        ResetUnityScreenOrientation();
        CheckOrientation();

        mScreenWidth  = Screen.width;
        mScreenHeight = Screen.height;
        SurfaceUtilities.OnSurfaceChanged(mScreenWidth, mScreenHeight);
    }