我正在使用Google Cardboard SDK整理应用程序.用户可以在有或没有纸板的情况下使用该应用程序.因此,应用程序内部有一个切换按钮,用于激活和停用立体渲染.
该应用程序还使用Vuforia SDK来跟踪图像目标.如果识别出特定目标,则目标上方的一些3D对象和粒子系统开始发射粒子.
在非立体声模式下一切正常.粒子按预期正确发射和下落.他们应该模拟雪.此外,如果用户将图像目标转到一个角度,则上面的3D对象会掉下来.
当切换到立体声模式时,物理学完全搞砸了.雪粒不再下降,它们似乎在屏幕周围"传送".此外,3D物体确实向上倾斜,具有非常重的负重力.时间尺度似乎成倍增加,但不是 - 我仔细检查过.在非立体和立体渲染之间切换时,重力也不会改变.
在蛾模式下,Unity Editor中的一切工作正常.它只出现在iPhone 5的设备上.
我仔细检查了重力和时间刻度,它们在模式之间切换时没有变化.我很难搞清楚可能导致物理问题陷入困境的原因.
我做了一些进一步的调查.我让我在相机前坐着一个小小的小发明,但是获得了Unity世界空间轴的旋转,所以我知道3D世界是相对于相机的.事实证明,当使用谷歌纸板相机系统处于VR模式时,世界确实在相机上大量旋转.我设法以某种方式拿着测试设备,所以它正在减速并且几乎冻结,但我还没有解释效果.
physics unity-game-engine particle-system vuforia google-cardboard
我需要一个带有一些条目的选择器视图,它具有正常的字体粗细,一些具有粗体字体重.找出如何创建一个属性字符串不是问题,所以我把所有东西放在一起,但我看不出有什么区别.第一行不是粗体而不是更大.不过,不同的颜色确实有用.
func pickerView(pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
let darkColor = UIColor.blackColor()
let lightColor = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.3)
if row == 0 {
return NSAttributedString(string: "first row bold and black", attributes: [NSForegroundColorAttributeName:darkColor, NSFontAttributeName : UIFont.boldSystemFontOfSize(20)])
} else {
return NSAttributedString(string: "other rows gray and normal", attributes: [NSForegroundColorAttributeName:lightColor])
}
}
Run Code Online (Sandbox Code Playgroud) 使用SwiftUI,我创建了一个VStack,其中包含一些固定元素和一个list元素。原因是,用户仅应滚动固定元素下方的区域。现在,我看到第二个固定元素和列表之间有一个空格。我不知道这个空间是从哪里来的,并想摆脱它,但是不知道如何。该区域标记为红色。
struct DashboardView : View, CoreDataInjected {
var body: some View {
GeometryReader { geometry in
VStack {
ScopeSelectorView().frame(maxWidth: .infinity).background(ColorPalette.gray)
BalanceNumberView().frame(maxWidth: .infinity)
List {
DashboardNavigationView(
height: geometry.size.height - ScopeSelectorView.height - BalanceNumberView.height
).frame(maxWidth: .infinity).listRowInsets(.zero)
}
}
}.background(Color.red).edgesIgnoringSafeArea(.all)
}
}
Run Code Online (Sandbox Code Playgroud)