Android Google VR Unity Divider,设置和后退按钮隐藏在v0.9中
有人知道如何在最新的google vr sdk for unity中禁用分隔符、设置和后退按钮吗 我尝试将NativeUILayerSupported设置为false,并在遗留的DrawUILayer中添加一个返回值,但它仍然显示Android Google VR Unity Divider,设置和后退按钮隐藏在v0.9中,android,unity3d,google-vr,Android,Unity3d,Google Vr,有人知道如何在最新的google vr sdk for unity中禁用分隔符、设置和后退按钮吗 我尝试将NativeUILayerSupported设置为false,并在遗留的DrawUILayer中添加一个返回值,但它仍然显示 现在看来,较旧的操作方法已被完全弃用。尝试禁用用户界面层设置下硬纸板脚本上的设置 从界面而不是代码执行此操作。我使用的是适用于Android的Google VR SDK,而不是Google VR Unity,这是我的解决方案: 在android中,不推荐使用的隐藏两个
现在看来,较旧的操作方法已被完全弃用。尝试禁用用户界面层设置下硬纸板脚本上的设置
从界面而不是代码执行此操作。我使用的是适用于Android的Google VR SDK,而不是Google VR Unity,这是我的解决方案: 在android中,不推荐使用的隐藏两个按钮的方法是
// called by VrView
setSettingsButtonEnabled(false);
因为现在无法使用它,所以只需找到这两个按钮并自己隐藏即可:
findViewById(R.id.ui_back_button).setVisibility(GONE);
findViewById(R.id.ui_settings_button).setVisibility(GONE);
对于iOS,请尝试更改以下内容: 在Unity中,Plugins/iOS/CardboardAppController.mm->
@implementation CardboardAppController
- (UnityView *)createUnityView {
UnityRegisterViewControllerListener(self);
UnityRegisterAudioPlugin(UnityGetAudioEffectDefinitions);
UnityView* unity_view = [super createUnityView];
//createUiLayer(self, (UIView *)unity_view); <- comment this line
return unity_view;
}
@实现CardboardAppController
-(UnityView*)创建UnityView{
UnityRegisterViewControllerListener(自我);
UnityRegisterAudioPlugin(UnityGetAudioEffectDefinitions);
UnityView*unity_视图=[super createUnityView];
//createUiLayer(self,(UIView*)unity_view);@PerryHart我在使用Google VR SDK时遇到了同样的问题。问题是在最新版本的GVR SDK中,没有界面来禁用按钮和其他UI层。但Google VR SDK 0.8及以下版本提供了一个界面,您可以通过该界面轻松操作
从代码中禁用这些层非常复杂,我花了2周的时间通过GVR1.xx版本中的代码来完成这些工作
您可以下载我的场景:
- Gvr-Ar应用程序,带Gvr,仅用于陀螺仪(Gvr眼睛不渲染物体,使用自己的相机)
- 评论了整个后期渲染器类(这也意味着我没有计算镜头分割,可以在没有镜头形状的情况下使用全屏)
什么对我有效(使用gvr 1.3):
进入AndroidDevice.cs脚本,并对以下标有###
我有一个wierd场景,因此如果您启用了vr模式,但这不起作用,您也可以尝试对SetVRModeEnabled()函数的主体进行注释“看来旧的方法现在已经完全不推荐了”什么是旧的方法?SDK的早期版本只是有一个复选框(可能是下拉框)关于是否显示后退按钮,您仍然可以通过浏览github repo中的标记找到SDK的旧版本。实际上,注释或删除这些标记非常重要:activityListener=Create(ActivityListenerClass);
// Copyright 2015 Google Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#if UNITY_ANDROID && !UNITY_HAS_GOOGLEVR
using UnityEngine;
/// @cond
namespace Gvr.Internal {
public class AndroidDevice : GvrDevice {
// private const string ActivityListenerClass = ######
// "com.google.vr.platform.unity.UnityVrActivityListener"; ######
private static AndroidJavaObject activityListener;
public override void Init() {
SetApplicationState();
base.Init();
ConnectToActivity();
}
protected override void ConnectToActivity() {
base.ConnectToActivity();
if (androidActivity != null && activityListener == null) {
// activityListener = Create(ActivityListenerClass); #####
}
}
public override void SetVRModeEnabled(bool enabled) {
CallObjectMethod(activityListener, "setVRModeEnabled", enabled);
}
public override void ShowSettingsDialog() {
// CallObjectMethod(activityListener, "launchConfigureActivity"); #####
}
public override void OnPause(bool pause) {
base.OnPause(pause);
CallObjectMethod(activityListener, "onPause", pause);
}
private void SetApplicationState() {
if (activityListener == null) {
// using (var listenerClass = GetClass(ActivityListenerClass)) { ###
// CallStaticMethod(listenerClass, "setUnityApplicationState"); ###
// } #####
}
}
}
}
/// @endcond
#endif // UNITY_ANDROID && !UNITY_HAS_GOOGLEVR