ইউনিটিটিকে সাবউভিউ হিসাবে ব্যবহার করা আমাকে একটি কালো স্ক্রিন দিচ্ছে


9

আমি অ্যান্ড্রয়েডের সাথে ityক্য ব্যবহার করছি এবং দৃশ্যটি পূর্ণ পর্দায় থাকা অবস্থায় এটি কাজ করে, যাইহোক যখন আমি এটিকে সাবউভিউ তৈরি করি তখন স্ক্রিনটি কিছুই প্রদর্শন করে না।

এখানে চিত্র বর্ণনা লিখুন

এটি পুরো স্ক্রিন হিসাবে কাজ করছে:

এখানে চিত্র বর্ণনা লিখুন

Intent intent = new Intent(this, UnityPlayerActivity.class);
intent.putExtra("arguments", "data from android");
startActivity(intent);

এই প্রশ্নগুলিও উত্তরহীন:

আমি তাদের সমাধানগুলি চেষ্টা করেছি, তবে কোনওটিই কাজ করেছে বলে মনে হয় না।

অ্যান্ড্রয়েড স্টুডিওতে সাব ভিউ হিসাবে Unক্য দৃশ্যের প্রদর্শন করুন

/gamedev/134347/android-black-screen-with-unity-app-in-subview

অ্যান্ড্রয়েডে কালো পর্দার একতার সাবভিউ

আমার বর্তমান প্রধান কার্যকলাপ / ityক্য প্রকাশ:

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

        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);

        FrameLayout layout = (FrameLayout) findViewById(R.id.frameLayout2);
        LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
        layout.addView(m_UnityPlayer.getView(), 0, lp);
    }
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.unity3d.player" xmlns:tools="http://schemas.android.com/tools">
  <application>
    <activity android:name="com.unity3d.player.UnityPlayerActivity" android:theme="@style/UnityThemeSelector" android:screenOrientation="landscape" android:launchMode="singleTask" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection|density" android:hardwareAccelerated="false">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
      <meta-data android:name="android.notch_support" android:value="true" />
    </activity>
    <meta-data android:name="unity.splash-mode" android:value="0" />
    <meta-data android:name="unity.splash-enable" android:value="True" />
    <meta-data android:name="notch.config" android:value="portrait|landscape" />
    <meta-data android:name="unity.build-id" android:value="46e01524-60a4-48fa-9d28-b231f5db3c5d" />
  </application>
  <uses-feature android:glEsVersion="0x00030000" />
  <uses-feature android:name="android.hardware.vulkan.version" android:required="false" />
  <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
  <uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" />
  <uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false" />
</manifest>

আপনি কোন ইউনিটি-সংস্করণ ব্যবহার করছেন? Ityক্যটি 2019.3.0 সংস্করণে পুরো অ্যান্ড্রয়েড-ইন্টিগ্রেশনকে নতুনভাবে কাজ করেছিল। পুরানো উত্তরগুলি নতুন সংহতকরণের সাথে কাজ করবে না।
আলমিগথি

আমি 2019.3.0f6 এত নতুন ব্যবহার করছি। আহ যে অর্থবোধ করে, তবে আমি অনুসন্ধান করে চলেছি এবং এর কোনও সমাধান খুঁজে পাওয়া যাবে না বলে মনে হচ্ছে।
শুকনো ডেভ

আপনার সম্পূর্ণ প্রধান ক্রিয়াকলাপ কোড সরবরাহ করুন।
0xBFE1A8

1
গ্রন্থাগার হিসাবে unityক্যের উপর unityক্য ব্লগের মতে, শুধুমাত্র পূর্ণস্ক্রিন এটিএম সমর্থন করে।
লুম্বস্টারটিক

1
এখানে কেবলমাত্র পূর্ণস্ক্রিনকে বোঝানো ব্যাখ্যার লিঙ্কটিই সমর্থিত: ফোরাম.িউনিটি / থ্রেডস / andএ এবং এখানে নির্দিষ্ট অ্যান্ড্রয়েডটি রয়েছে: ফোরাম.িউনিটি
থ্রেডস

উত্তর:


0

আপনি কেবল ফ্রেম বিন্যাস ব্যবহার করে এটি অর্জন করতে পারেন, MainActivityপ্রসারিত হওয়া উচিত Activity, না হিসাবে UnityPlayerActivity। ক্রিয়াকলাপে এই দুটি লাইন যুক্ত করুন AndroidManifest.xml

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

কাজের কোডটি হ'ল:

main.xml

    <?xml version="1.0" encoding="utf-8"?>  
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        android:layout_width="match_parent" android:layout_height="match_parent"  
        android:rowCount="3"  
        android:columnCount="10">  

        <FrameLayout  
            android:layout_width="match_parent"  
            android:layout_height="250dip"  
            android:id="@+id/fl_forUnity"  
            android:background="#ff00ff15"  
            android:layout_column="4"  
            android:layout_row="0"  
            android:layout_alignParentTop="true"  
            android:layout_centerHorizontal="true">  

        </FrameLayout>  

        <Button  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:text="Rotate Right"  
            android:id="@+id/bt_rotRight"  
            android:layout_column="4"  
            android:layout_row="2"  
            android:layout_alignTop="@+id/bt_stop"  
            android:layout_toRightOf="@+id/bt_stop"  
            android:layout_toEndOf="@+id/bt_stop"  
            android:layout_marginLeft="30dp" />  

        <Button  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:text="Rotate Left"  
            android:id="@+id/bt_rotLeft"  
            android:layout_column="9"  
            android:layout_row="2"  
            android:layout_alignTop="@+id/bt_stop"  
            android:layout_toLeftOf="@+id/bt_stop"  
            android:layout_toStartOf="@+id/bt_stop"  
            android:layout_marginRight="30dp" />  

        <Button  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:text="Stop"  
            android:id="@+id/bt_stop"  
            android:layout_below="@+id/fl_forUnity"  
            android:layout_centerHorizontal="true"  
            android:layout_margin="10dip" />  

    </RelativeLayout>  

UnityPlayerActivity.java

    import android.widget.FrameLayout;  
    import android.widget.Button;  

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

        //Declare a FrameLayout object  
        FrameLayout fl_forUnity;  

        //Declare the buttons  
        Button bt_rotLeft;  
        Button bt_rotRight;  
        Button bt_stop;  

        // Setup activity layout  
        @Override protected void onCreate (Bundle savedInstanceState)  
        {  
            requestWindowFeature(Window.FEATURE_NO_TITLE);  
            super.onCreate(savedInstanceState);  

            getWindow().setFormat(PixelFormat.RGBX_8888); // <--- This makes xperia play happy  

            mUnityPlayer = new UnityPlayer(this);  
            if (mUnityPlayer.getSettings ().getBoolean ("hide_status_bar", true))  
            {  
                setTheme(android.R.style.Theme_NoTitleBar_Fullscreen);  
                getWindow ().setFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN,  
                        WindowManager.LayoutParams.FLAG_FULLSCREEN);  
            }  

            //setContentView(mUnityPlayer);  
            //Set the content to main  
            setContentView(R.layout.main);  

            //Inflate the frame layout from XML  
            this.fl_forUnity = (FrameLayout)findViewById(R.id.fl_forUnity);  

            //Add the mUnityPlayer view to the FrameLayout, and set it to fill all the area available  
            this.fl_forUnity.addView(mUnityPlayer.getView(),  
                    FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);  

            //Initialize the buttons from the XML file  
            this.bt_rotLeft = (Button) findViewById(R.id.bt_rotLeft);  
            this.bt_rotRight = (Button) findViewById(R.id.bt_rotRight);  
            this.bt_stop = (Button) findViewById(R.id.bt_stop);  

            /*Send a brodcast a message to the 'Main Camera' game object, passing L, R according to the 
            pressed buttons.*/  
            this.bt_rotLeft.setOnClickListener(new View.OnClickListener() {  
                @Override  
                public void onClick(View v) {  
                    UnityPlayer.UnitySendMessage("Main Camera", "ReceiveRotDir", "L");  
                }  
            });  

            this.bt_rotRight.setOnClickListener(new View.OnClickListener() {  
                @Override  
                public void onClick(View v) {  
                    UnityPlayer.UnitySendMessage("Main Camera", "ReceiveRotDir", "R");  
                }  
            });  

            this.bt_stop.setOnClickListener(new View.OnClickListener() {  
                @Override  
                public void onClick(View v) {  
                    UnityPlayer.UnitySendMessage("Main Camera", "ReceiveRotDir", " ");  
                }  
            });  

            mUnityPlayer.requestFocus();  
        }  

আমি আশা করি নীচের রেফারেন্স ইউআরএলগুলি আপনাকে সহায়তা করতে পারে। Ityক্য এবং অ্যান্ড্রয়েড কাস্টম লেআউট এবং ityক্য এবং অ্যান্ড্রয়েড সাব-ভিউ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.