我正在开发 UnityPlayerActivity ,其中相机在完整的屏幕上呈现,其中包含我的工具栏和导航抽屉。所以我面临以下问题
案例A:使用android:fitsSystemWindows =“false” 显示导航抽屉但不是预期的,因为抽屉的高度未显示全屏。 但是android导航栏是透明的,摄像头是以完整的屏幕为例 预期
案例B:使用android:fitsSystemWindows =“true” 按预期显示导航抽屉,抽屉高度显示全屏。 但是android导航栏并不透明,因此摄像机没有按预期完成整个屏幕。
答案 0 :(得分:0)
您不必与Unityplayer活动或mainActivity绑定。
您可以将任何活动设为静态,并从c#unity中调用这些活动中存在的函数或UI。
正确的方法是在主Android项目中创建静态Activity并将其命名为currentActivity。在你的oncreate方法之后,你将currentActivity设置为以下代码:
public class MainActivity extends UnityPlayerActivity {
public static MainActivity currentActivity;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
currentActivity=this;
此外:您可以使用以下代码从Unity代码中使用C#从MainActivity调用Android方法:
AndroidJavaClass jc = new AndroidJavaClass("yourpackagename.youractivity");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
jo.Call("toggleMenu");
或强>
您可以将UnityPlayerActivity转换为Fragment,下面提到的链接可以帮助您实现相同的