Updated oculus stuff

This commit is contained in:
Chris Midkiff
2018-10-09 20:59:57 -04:00
parent 1e7362c19f
commit 9b7f63739e
957 changed files with 128988 additions and 588 deletions

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 2f1252adfdbb44e48a363533cb81ef33
folderAsset: yes
timeCreated: 1450118836
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 66cec73d2756bad4387104c24275d8ee
timeCreated: 1450118840
licenseType: Store
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 1212e8445759d2f458590eb01473a1b2
folderAsset: yes
timeCreated: 1522867455
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 1e85597b83246fe4baaea6063c2dfc38
folderAsset: yes
timeCreated: 1522867501
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,34 @@
fileFormatVersion: 2
guid: ff117dedf0ac5ca499ffe71a71f1a148
timeCreated: 1450389765
licenseType: Store
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
Android: Android
second:
enabled: 1
settings:
CPU: ARMv7
data:
first:
Any:
second:
enabled: 0
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 26f6bfb1cd4a2ce45af2ec0f5e5d2122
folderAsset: yes
timeCreated: 1522867492
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,109 @@
fileFormatVersion: 2
guid: 76fe01982ab585c4194c39237b7fe64d
folderAsset: yes
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
- first:
'': Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux: 1
Exclude Linux64: 1
Exclude LinuxUniversal: 1
Exclude OSXIntel: 0
Exclude OSXIntel64: 0
Exclude OSXUniversal: 0
Exclude Win: 1
Exclude Win64: 1
- first:
'': Editor
second:
enabled: 0
settings:
CPU: AnyCPU
OS: OSX
- first:
Android: Android
second:
enabled: 0
settings:
CPU: ARMv7
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: OSX
- first:
Facebook: Win
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Facebook: Win64
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: x86
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: x86_64
- first:
Standalone: OSXIntel
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Standalone: OSXIntel64
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Standalone: OSXUniversal
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: AnyCPU
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: c9424d88b779a2e4d981c8f1206c36b8
folderAsset: yes
timeCreated: 1481693829
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>OVRVoiceMod</string>
<key>CFBundleGetInfoString</key>
<string></string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string></string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleLongVersionString</key>
<string>1.1.1.321891 TCID: 1623387</string>
<key>CFBundleName</key>
<string></string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.1.1.321891 TCID: 1623387</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.1.1.321891 TCID: 1623387</string>
<key>CSResourcesFileMapped</key>
<true/>
<key>LSRequiresCarbon</key>
<true/>
<key>NSHumanReadableCopyright</key>
<string></string>
</dict>
</plist>

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ac30ff44ace5bd347b3c43173629f59b
timeCreated: 1481693829
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: dd21282443aa93049ab3c25a7de2698c
folderAsset: yes
timeCreated: 1481693829
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c696554405e27614e99208705df8d371
timeCreated: 1481693829
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: d02373d93b4b79e41af291b26708f322
folderAsset: yes
timeCreated: 1425156097
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 58114d9f02556f847b7562b6aeb657aa
timeCreated: 1450389764
licenseType: Store
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
'': Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux: 0
Exclude Linux64: 1
Exclude LinuxUniversal: 1
Exclude OSXIntel: 0
Exclude OSXIntel64: 1
Exclude OSXUniversal: 1
Exclude Win: 0
Exclude Win64: 1
data:
first:
'': Editor
second:
enabled: 0
settings:
CPU: x86
OS: Windows
data:
first:
Android: Android
second:
enabled: 0
settings:
CPU: ARMv7
data:
first:
Any:
second:
enabled: 0
settings: {}
data:
first:
Editor: Editor
second:
enabled: 1
settings:
CPU: x86
DefaultValueInitialized: true
OS: Windows
data:
first:
Facebook: Win
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Facebook: Win64
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Linux
second:
enabled: 1
settings:
CPU: x86
data:
first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: LinuxUniversal
second:
enabled: 0
settings:
CPU: x86
data:
first:
Standalone: OSXIntel
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: OSXIntel64
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: x86
data:
first:
Standalone: Win
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 08cfceeb8a0af76409eaeb6bbd906e6d
folderAsset: yes
timeCreated: 1425156097
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 2dd330b32ea8eb5448eb7bffdcc30acf
timeCreated: 1450389764
licenseType: Store
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
'': Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux: 1
Exclude Linux64: 0
Exclude LinuxUniversal: 1
Exclude OSXIntel: 1
Exclude OSXIntel64: 0
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 0
data:
first:
'': Editor
second:
enabled: 0
settings:
CPU: x86_64
OS: Windows
data:
first:
Android: Android
second:
enabled: 0
settings:
CPU: ARMv7
data:
first:
Any:
second:
enabled: 0
settings: {}
data:
first:
Editor: Editor
second:
enabled: 1
settings:
CPU: x86_64
DefaultValueInitialized: true
OS: Windows
data:
first:
Facebook: Win
second:
enabled: 0
settings:
CPU: None
data:
first:
Facebook: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Linux64
second:
enabled: 1
settings:
CPU: x86_64
data:
first:
Standalone: LinuxUniversal
second:
enabled: 0
settings:
CPU: x86_64
data:
first:
Standalone: OSXIntel
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXIntel64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: x86_64
data:
first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: fba310cd40244674e889f839bb5460d4
folderAsset: yes
timeCreated: 1450118836
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,332 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &109376
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4
m_Component:
- 224: {fileID: 22423024}
- 222: {fileID: 22237410}
- 114: {fileID: 11438746}
m_Layer: 0
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &138100
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4
m_Component:
- 224: {fileID: 22459746}
- 223: {fileID: 22358686}
- 114: {fileID: 11450160}
- 114: {fileID: 11462386}
m_Layer: 0
m_Name: OVRDebugConsoleOutput
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &171706
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4
m_Component:
- 4: {fileID: 485614}
- 20: {fileID: 2003780}
- 92: {fileID: 9229790}
- 124: {fileID: 12434708}
- 81: {fileID: 8191414}
m_Layer: 0
m_Name: OVRCameraWithDebug
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &176320
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4
m_Component:
- 4: {fileID: 451574}
- 114: {fileID: 11466570}
m_Layer: 0
m_Name: OVRDebugConsole
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &451574
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 176320}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 485614}
m_RootOrder: 0
--- !u!4 &485614
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 171706}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 451574}
- {fileID: 22459746}
m_Father: {fileID: 0}
m_RootOrder: 0
--- !u!20 &2003780
Camera:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 171706}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0, g: 0, b: 0, a: .0196078438}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: .300000012
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: .0219999999
m_StereoMirrorMode: 0
--- !u!81 &8191414
AudioListener:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 171706}
m_Enabled: 1
--- !u!92 &9229790
Behaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 171706}
m_Enabled: 1
--- !u!114 &11438746
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 109376}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 5
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: '1
2
3
4
5
6
7
8
9
10
11
12
13
14
15'
--- !u!114 &11450160
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 138100}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 10
--- !u!114 &11462386
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 138100}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &11466570
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 176320}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 032142ba4fe4a53458d86dc9a8610f36, type: 3}
m_Name:
m_EditorClassIdentifier:
maxMessages: 15
textMsg: {fileID: 11438746}
--- !u!124 &12434708
Behaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 171706}
m_Enabled: 1
--- !u!222 &22237410
CanvasRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 109376}
--- !u!223 &22358686
Canvas:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 138100}
m_Enabled: 1
serializedVersion: 2
m_RenderMode: 2
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingLayerID: 0
m_SortingOrder: 0
--- !u!224 &22423024
RectTransform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 109376}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 22459746}
m_RootOrder: 0
m_AnchorMin: {x: .5, y: .5}
m_AnchorMax: {x: .5, y: .5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 120, y: 90}
m_Pivot: {x: .5, y: .5}
--- !u!224 &22459746
RectTransform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 138100}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 5.25}
m_LocalScale: {x: .0500000007, y: .0500000007, z: .200000003}
m_Children:
- {fileID: 22423024}
m_Father: {fileID: 485614}
m_RootOrder: 1
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: .180000007, y: 0}
m_SizeDelta: {x: 1024, y: 1024}
m_Pivot: {x: .5, y: .5}
--- !u!1001 &100100000
Prefab:
m_ObjectHideFlags: 1
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications: []
m_RemovedComponents: []
m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 171706}
m_IsPrefabParent: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4887a8c62805ff24aa5f127600cbbde3
timeCreated: 1450135244
licenseType: Store
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,54 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &128374
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4
m_Component:
- 4: {fileID: 403852}
- 114: {fileID: 11407780}
m_Layer: 0
m_Name: OVRDebugConsole
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &403852
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 128374}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
--- !u!114 &11407780
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 128374}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 032142ba4fe4a53458d86dc9a8610f36, type: 3}
m_Name:
m_EditorClassIdentifier:
maxMessages: 15
textMsg: {fileID: 0}
--- !u!1001 &100100000
Prefab:
m_ObjectHideFlags: 1
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications: []
m_RemovedComponents: []
m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 128374}
m_IsPrefabParent: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c2e4865f563dc614bb668f046569e0cd
timeCreated: 1450118839
licenseType: Store
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,211 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &100658
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4
m_Component:
- 224: {fileID: 22469590}
- 222: {fileID: 22212472}
- 114: {fileID: 11460950}
m_Layer: 0
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &130260
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4
m_Component:
- 224: {fileID: 22402796}
- 223: {fileID: 22301806}
- 114: {fileID: 11495334}
- 114: {fileID: 11476360}
m_Layer: 0
m_Name: OVRDebugConsoleOutput
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &11460950
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 100658}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 5
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: '1
2
3
4
5
6
7
8
9
10
11
12
13
14
15'
--- !u!114 &11476360
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130260}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &11495334
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130260}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 10
--- !u!222 &22212472
CanvasRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 100658}
--- !u!223 &22301806
Canvas:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130260}
m_Enabled: 1
serializedVersion: 2
m_RenderMode: 2
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingLayerID: 0
m_SortingOrder: 0
--- !u!224 &22402796
RectTransform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130260}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 5.25}
m_LocalScale: {x: .0500000007, y: .0500000007, z: .200000003}
m_Children:
- {fileID: 22469590}
m_Father: {fileID: 0}
m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: .180000007, y: 0}
m_SizeDelta: {x: 1024, y: 1024}
m_Pivot: {x: .5, y: .5}
--- !u!224 &22469590
RectTransform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 100658}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 22402796}
m_RootOrder: 0
m_AnchorMin: {x: .5, y: .5}
m_AnchorMax: {x: .5, y: .5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 120, y: 90}
m_Pivot: {x: .5, y: .5}
--- !u!1001 &100100000
Prefab:
m_ObjectHideFlags: 1
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 0}
propertyPath: m_AnchoredPosition.x
value: .200000003
objectReference: {fileID: 0}
- target: {fileID: 0}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 130260}
m_IsPrefabParent: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5273e314db9ad674fb4117eb07218ad7
timeCreated: 1450118839
licenseType: Store
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,52 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &130688
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4
m_Component:
- 4: {fileID: 447286}
- 114: {fileID: 11450296}
m_Layer: 0
m_Name: OVRVoiceModInterface
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &447286
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130688}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
--- !u!114 &11450296
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 130688}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f9518abe0e11ea14dbba5c3d7a2fec2d, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &100100000
Prefab:
m_ObjectHideFlags: 1
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications: []
m_RemovedComponents: []
m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 130688}
m_IsPrefabParent: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 013e95e8ef6cafb4b93fe4b6123ca5cb
timeCreated: 1450126725
licenseType: Store
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: d663b272c86baa142aeb35aab04f9ecc
folderAsset: yes
timeCreated: 1450118836
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: b5f8482295cf23345a0fb48c786a2b00
folderAsset: yes
timeCreated: 1450219319
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,138 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Color
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 5
m_CustomRenderQueue: -1
stringTagMap: {}
m_SavedProperties:
serializedVersion: 2
m_TexEnvs:
data:
first:
name: _MainTex
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _BumpMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailNormalMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _ParallaxMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _OcclusionMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _EmissionMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailMask
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailAlbedoMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _MetallicGlossMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
data:
first:
name: _SrcBlend
second: 1
data:
first:
name: _DstBlend
second: 0
data:
first:
name: _Cutoff
second: 0.5
data:
first:
name: _Parallax
second: 0.02
data:
first:
name: _ZWrite
second: 1
data:
first:
name: _Glossiness
second: 0.5
data:
first:
name: _BumpScale
second: 1
data:
first:
name: _OcclusionStrength
second: 1
data:
first:
name: _DetailNormalMapScale
second: 1
data:
first:
name: _UVSec
second: 0
data:
first:
name: _Mode
second: 0
data:
first:
name: _Metallic
second: 0
m_Colors:
data:
first:
name: _EmissionColor
second: {r: 0, g: 0, b: 0, a: 1}
data:
first:
name: _Color
second: {r: 1, g: 0, b: 1, a: 1}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e92c598ccd7563b408cb22916184a2e9
timeCreated: 1450219331
licenseType: Store
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: c587b99ce5f86e04696f985f627394f9
folderAsset: yes
timeCreated: 1450124138
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,254 @@
using UnityEngine;
using System.Collections;
public class VoiceModDemo_Logic : MonoBehaviour
{
public OVRVoiceModContext[] contexts;
public Material material;
public Transform[] xfrms;
public EnableSwitch SwitchTarget;
private int targetSet = 0;
// Use this as the init value for the model scale
private Vector3 scale = new Vector3(3.0f, 3.0f, 3.0f);
private float scaleMax = 10.0f;
private int currentPreset = 0;
// Use this for initialization
void Start ()
{
// Add a listener to the OVRMessenger for touch events
OVRMessenger.AddListener<OVRTouchpad.TouchEvent>("Touchpad", LocalTouchEventCallback);
// Initialize the proper target set
targetSet = 0;
SwitchTarget.SetActive(0);
// Set initial color on models
if(material != null)
material.SetColor("_Color", Color.grey);
}
// Update is called once per frame
// Logic for LipSync_Demo
void Update ()
{
// Change preset
int preset = -1;
if(Input.GetKeyDown(KeyCode.Alpha1))
preset = 0;
else
if(Input.GetKeyDown(KeyCode.Alpha2))
preset = 1;
else
if(Input.GetKeyDown(KeyCode.Alpha3))
preset = 2;
else
if(Input.GetKeyDown(KeyCode.Alpha4))
preset = 3;
else
if(Input.GetKeyDown(KeyCode.Alpha5))
preset = 4;
else
if(Input.GetKeyDown(KeyCode.Alpha6))
preset = 5;
else
if(Input.GetKeyDown(KeyCode.Alpha7))
preset = 6;
else
if(Input.GetKeyDown(KeyCode.Alpha8))
preset = 7;
else
if(Input.GetKeyDown(KeyCode.Alpha9))
preset = 8;
else
if(Input.GetKeyDown(KeyCode.Alpha0))
preset = 9;
if(preset != -1)
{
Color c = Color.black;
for (int i = 0; i < contexts.Length; i++)
{
if(contexts[i].SetPreset(preset) == true)
{
// query color from preset and set material color
// of sphere
c = contexts[i].GetPresetColor(preset);
}
}
// Set the material(s) note: each context is sharing a single
// material in this demo :)
if(material != null)
material.SetColor("_Color", c);
}
// Update transforms with context average volume
UpdateModelScale();
// Change visible target context
if (Input.GetKeyDown(KeyCode.Z))
{
targetSet = 0;
SetCurrentTarget();
}
else
if (Input.GetKeyDown(KeyCode.X))
{
targetSet = 1;
SetCurrentTarget();
}
// Close app
if(Input.GetKeyDown (KeyCode.Escape))
Application.Quit();
}
/// <summary>
/// Sets the current target.
/// </summary>
void SetCurrentTarget()
{
switch(targetSet)
{
case(0):
SwitchTarget.SetActive(0);
OVRDebugConsole.Clear();
OVRDebugConsole.Log("MICROPHONE INPUT");
OVRDebugConsole.ClearTimeout(1.5f);
break;
case(1):
SwitchTarget.SetActive(1);
OVRDebugConsole.Clear();
OVRDebugConsole.Log("SAMPLE INPUT");
OVRDebugConsole.ClearTimeout(1.5f);
break;
}
}
/// <summary>
/// Local touch event callback.
/// </summary>
/// <param name="touchEvent">Touch event.</param>
void LocalTouchEventCallback(OVRTouchpad.TouchEvent touchEvent)
{
switch(touchEvent)
{
case(OVRTouchpad.TouchEvent.Left):
targetSet--;
if(targetSet < 0)
targetSet = 1;
SetCurrentTarget();
break;
case(OVRTouchpad.TouchEvent.Right):
targetSet++;
if(targetSet > 1)
targetSet = 0;
SetCurrentTarget();
break;
case(OVRTouchpad.TouchEvent.Up):
if(contexts.Length != 0)
{
if(contexts[0].GetNumPresets() == 0)
{
OVRDebugConsole.Clear();
OVRDebugConsole.Log("NO PRESETS!");
OVRDebugConsole.ClearTimeout(1.5f);
}
else
{
currentPreset++;
if(currentPreset >= contexts[0].GetNumPresets())
currentPreset = 0;
Color c = Color.black;
for (int i = 0; i < contexts.Length; i++)
{
if(contexts[i].SetPreset(currentPreset) == true)
{
// query color from preset and set material color
// of sphere
c = contexts[i].GetPresetColor(currentPreset);
}
}
// Set the material(s) note: each context is sharing a single
// material in this demo :)
if(material != null)
material.SetColor("_Color", c);
}
}
break;
case(OVRTouchpad.TouchEvent.Down):
if(contexts.Length != 0)
{
if(contexts[0].GetNumPresets() == 0)
{
OVRDebugConsole.Clear();
OVRDebugConsole.Log("NO PRESETS!");
OVRDebugConsole.ClearTimeout(1.5f);
}
else
{
currentPreset--;
if(currentPreset < 0)
currentPreset = contexts[0].GetNumPresets() - 1;
Color c = Color.black;
for (int i = 0; i < contexts.Length; i++)
{
if(contexts[i].SetPreset(currentPreset) == true)
{
// query color from preset and set material color
// of sphere
c = contexts[i].GetPresetColor(currentPreset);
}
}
// Set the material(s) note: each context is sharing a single
// material in this demo :)
if(material != null)
material.SetColor("_Color", c);
}
}
break;
}
}
/// <summary>
/// Updates the model scale.
/// </summary>
void UpdateModelScale()
{
for (int i = 0; i < xfrms.Length; i++)
{
if(i < contexts.Length)
{
xfrms[i].localScale = scale * (1.0f + (contexts[i].GetAverageAbsVolume() * scaleMax));
}
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: c59da31e1adfd5c40b48ee01f62c1002
timeCreated: 1450135121
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,740 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
SceneSettings:
m_ObjectHideFlags: 0
m_PVSData:
m_PVSObjectsArray: []
m_PVSPortalsArray: []
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 6
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 3
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 6
m_GIWorkflowMode: 1
m_LightmapsMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 0
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 3
m_Resolution: 2
m_BakeResolution: 40
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0
m_LightmapParameters: {fileID: 0}
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2
m_LightingDataAsset: {fileID: 0}
m_RuntimeCPUUsage: 25
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
accuratePlacement: 0
minRegionArea: 2
cellSize: 0.16666667
manualCellSize: 0
m_NavMeshData: {fileID: 0}
--- !u!1001 &21197967
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 447286, guid: 013e95e8ef6cafb4b93fe4b6123ca5cb, type: 2}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 447286, guid: 013e95e8ef6cafb4b93fe4b6123ca5cb, type: 2}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 447286, guid: 013e95e8ef6cafb4b93fe4b6123ca5cb, type: 2}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 447286, guid: 013e95e8ef6cafb4b93fe4b6123ca5cb, type: 2}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 447286, guid: 013e95e8ef6cafb4b93fe4b6123ca5cb, type: 2}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 447286, guid: 013e95e8ef6cafb4b93fe4b6123ca5cb, type: 2}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 447286, guid: 013e95e8ef6cafb4b93fe4b6123ca5cb, type: 2}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 447286, guid: 013e95e8ef6cafb4b93fe4b6123ca5cb, type: 2}
propertyPath: m_RootOrder
value: 2
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 013e95e8ef6cafb4b93fe4b6123ca5cb, type: 2}
m_IsPrefabParent: 0
--- !u!1001 &420186774
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 485614, guid: 4887a8c62805ff24aa5f127600cbbde3, type: 2}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 485614, guid: 4887a8c62805ff24aa5f127600cbbde3, type: 2}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 485614, guid: 4887a8c62805ff24aa5f127600cbbde3, type: 2}
propertyPath: m_LocalPosition.z
value: -10
objectReference: {fileID: 0}
- target: {fileID: 485614, guid: 4887a8c62805ff24aa5f127600cbbde3, type: 2}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 485614, guid: 4887a8c62805ff24aa5f127600cbbde3, type: 2}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 485614, guid: 4887a8c62805ff24aa5f127600cbbde3, type: 2}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 485614, guid: 4887a8c62805ff24aa5f127600cbbde3, type: 2}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 485614, guid: 4887a8c62805ff24aa5f127600cbbde3, type: 2}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 4887a8c62805ff24aa5f127600cbbde3, type: 2}
m_IsPrefabParent: 0
--- !u!1 &563670406
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 563670407}
- 82: {fileID: 563670409}
- 114: {fileID: 563670408}
m_Layer: 0
m_Name: SampleInput
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &563670407
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 563670406}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1103851422}
m_Father: {fileID: 1783704650}
m_RootOrder: 1
--- !u!114 &563670408
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 563670406}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: beb05abfbdc9f804ab7e1bdd89727bd7, type: 3}
m_Name:
m_EditorClassIdentifier:
audioSource: {fileID: 0}
gain: 1
audioMute: 0
loopback: 108
VM_MixAudio: 1
VM_Pitch: 1
VM_Bands: 32
VM_FormantCorrect: 0
VM_C1_TrackPitch: 0
VM_C1_Type: 0
VM_C1_Gain: 0.5
VM_C1_Freq: 440
VM_C1_Note: 67
VM_C1_PulseWidth: 0.5
VM_C1_CycledNoiseSize: 512
VM_C2_TrackPitch: 0
VM_C2_Type: 0
VM_C2_Gain: 0.5
VM_C2_Freq: 440
VM_C2_Note: 67
VM_C2_PulseWidth: 0.5
VM_C2_CycledNoiseSize: 512
--- !u!82 &563670409
AudioSource:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 563670406}
m_Enabled: 1
serializedVersion: 4
OutputAudioMixerGroup: {fileID: 0}
m_audioClip: {fileID: 8300000, guid: 66cec73d2756bad4387104c24275d8ee, type: 3}
m_PlayOnAwake: 1
m_Volume: 1
m_Pitch: 1
Loop: 1
Mute: 0
Spatialize: 0
Priority: 128
DopplerLevel: 1
MinDistance: 1
MaxDistance: 500
Pan2D: 0
rolloffMode: 0
BypassEffects: 0
BypassListenerEffects: 0
BypassReverbZones: 0
rolloffCustomCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
- time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
panLevelCustomCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 0
spreadCustomCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 0
reverbZoneMixCustomCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 0
--- !u!1 &1002608923
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1002608924}
- 33: {fileID: 1002608927}
- 135: {fileID: 1002608926}
- 23: {fileID: 1002608925}
m_Layer: 0
m_Name: SphereMicInput
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1002608924
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1002608923}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 5, y: 5, z: 5}
m_Children: []
m_Father: {fileID: 1953342594}
m_RootOrder: 0
--- !u!23 &1002608925
MeshRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1002608923}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_Materials:
- {fileID: 2100000, guid: e92c598ccd7563b408cb22916184a2e9, type: 2}
m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 1
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingOrder: 0
--- !u!135 &1002608926
SphereCollider:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1002608923}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}
--- !u!33 &1002608927
MeshFilter:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1002608923}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1103851421
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1103851422}
- 33: {fileID: 1103851425}
- 135: {fileID: 1103851424}
- 23: {fileID: 1103851423}
m_Layer: 0
m_Name: SphereSampleInput
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1103851422
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1103851421}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 5, y: 5, z: 5}
m_Children: []
m_Father: {fileID: 563670407}
m_RootOrder: 0
--- !u!23 &1103851423
MeshRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1103851421}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_Materials:
- {fileID: 2100000, guid: e92c598ccd7563b408cb22916184a2e9, type: 2}
m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 1
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingOrder: 0
--- !u!135 &1103851424
SphereCollider:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1103851421}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}
--- !u!33 &1103851425
MeshFilter:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1103851421}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1783704647
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1783704650}
- 114: {fileID: 1783704649}
- 114: {fileID: 1783704648}
m_Layer: 0
m_Name: VoiceModInputs
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1783704648
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1783704647}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ae0626e0efd05a54f82ac59bc4c3557d, type: 3}
m_Name:
m_EditorClassIdentifier:
SwitchTargets:
- {fileID: 1953342590}
- {fileID: 563670406}
--- !u!114 &1783704649
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1783704647}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c59da31e1adfd5c40b48ee01f62c1002, type: 3}
m_Name:
m_EditorClassIdentifier:
contexts:
- {fileID: 1953342591}
- {fileID: 563670408}
material: {fileID: 2100000, guid: e92c598ccd7563b408cb22916184a2e9, type: 2}
xfrms:
- {fileID: 1002608924}
- {fileID: 1103851422}
SwitchTarget: {fileID: 1783704648}
--- !u!4 &1783704650
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1783704647}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1953342594}
- {fileID: 563670407}
m_Father: {fileID: 0}
m_RootOrder: 1
--- !u!1 &1953342590
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1953342594}
- 82: {fileID: 1953342593}
- 114: {fileID: 1953342592}
- 114: {fileID: 1953342591}
m_Layer: 0
m_Name: MicrophoneInput
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1953342591
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1953342590}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: beb05abfbdc9f804ab7e1bdd89727bd7, type: 3}
m_Name:
m_EditorClassIdentifier:
audioSource: {fileID: 0}
gain: 1
audioMute: 1
loopback: 108
VM_MixAudio: 1
VM_Pitch: 1
VM_Bands: 32
VM_FormantCorrect: 0
VM_C1_TrackPitch: 0
VM_C1_Type: 0
VM_C1_Gain: 0.5
VM_C1_Freq: 440
VM_C1_Note: 67
VM_C1_PulseWidth: 0.5
VM_C1_CycledNoiseSize: 512
VM_C2_TrackPitch: 0
VM_C2_Type: 0
VM_C2_Gain: 0.5
VM_C2_Freq: 440
VM_C2_Note: 67
VM_C2_PulseWidth: 0.5
VM_C2_CycledNoiseSize: 512
--- !u!114 &1953342592
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1953342590}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 19e8290db1b2e0748a6126d146686a6d, type: 3}
m_Name:
m_EditorClassIdentifier:
audioSource: {fileID: 0}
GuiSelectDevice: 1
sensitivity: 100
sourceVolume: 100
micFrequency: 16000
micControl: 2
selectedDevice:
loudness: 0
--- !u!82 &1953342593
AudioSource:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1953342590}
m_Enabled: 1
serializedVersion: 4
OutputAudioMixerGroup: {fileID: 0}
m_audioClip: {fileID: 0}
m_PlayOnAwake: 1
m_Volume: 1
m_Pitch: 1
Loop: 1
Mute: 0
Spatialize: 0
Priority: 128
DopplerLevel: 1
MinDistance: 1
MaxDistance: 500
Pan2D: 0
rolloffMode: 0
BypassEffects: 0
BypassListenerEffects: 0
BypassReverbZones: 0
rolloffCustomCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
- time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
panLevelCustomCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 0
spreadCustomCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 0
reverbZoneMixCustomCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 0
--- !u!4 &1953342594
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1953342590}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1002608924}
m_Father: {fileID: 1783704650}
m_RootOrder: 0
--- !u!1 &2022580288
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 2022580290}
- 108: {fileID: 2022580289}
m_Layer: 0
m_Name: Directional light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &2022580289
Light:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2022580288}
m_Enabled: 1
serializedVersion: 6
m_Type: 1
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_CookieSize: 10
m_Shadows:
m_Type: 0
m_Resolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_Lightmapping: 4
m_BounceIntensity: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
m_AreaSize: {x: 1, y: 1}
--- !u!4 &2022580290
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2022580288}
m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 3

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6b58c6b47668e3b49b538ddc3f3a4c5b
timeCreated: 1450119176
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: f13e12c3c3759f645bed844d7295faba
folderAsset: yes
timeCreated: 1450118836
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 30e0cd6fabc83a94ea16a972dd7778a0
folderAsset: yes
timeCreated: 1450118836
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,223 @@
/************************************************************************************
Filename : OVRDebugConsole.cs
Content : Write to a text string, used by UI.Text
Created : May 22, 2015
Copyright : Copyright 2015 Oculus VR, Inc. All Rights reserved.
Licensed under the Oculus VR Rift SDK License Version 3.1 (the "License");
you may not use the Oculus VR Rift SDK except in compliance with the License,
which is provided at the time of installation or download, or which
otherwise accompanies this software in either electronic or hard copy form.
You may obtain a copy of the License at
http://www.oculusvr.com/licenses/LICENSE-3.1
Unless required by applicable law or agreed to in writing, the Oculus VR SDK
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.
************************************************************************************/
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class OVRDebugConsole : MonoBehaviour
{
public ArrayList messages = new ArrayList();
public int maxMessages = 15; // The max number of messages displayed
public Text textMsg; // text string to display
// Our instance to allow this script to be called without a direct connection.
private static OVRDebugConsole s_Instance = null;
// Clear timeout
private bool clearTimeoutOn = false;
private float clearTimeout = 0.0f;
/// <summary>
/// Gets the instance.
/// </summary>
/// <value>The instance.</value>
public static OVRDebugConsole instance
{
get
{
if (s_Instance == null)
{
s_Instance = FindObjectOfType(typeof(OVRDebugConsole)) as OVRDebugConsole;
if (s_Instance == null)
{
GameObject console = new GameObject();
console.AddComponent<OVRDebugConsole>();
console.name = "OVRDebugConsole";
s_Instance = FindObjectOfType(typeof(OVRDebugConsole)) as OVRDebugConsole;
}
}
return s_Instance;
}
}
/// <summary>
/// Awake this instance.
/// </summary>
void Awake()
{
s_Instance = this;
Init();
}
/// <summary>
/// Update this instance.
/// </summary>
void Update()
{
if(clearTimeoutOn == true)
{
clearTimeout -= Time.deltaTime;
if(clearTimeout < 0.0f)
{
Clear();
clearTimeout = 0.0f;
clearTimeoutOn = false;
}
}
}
/// <summary>
/// Init this instance.
/// </summary>
public void Init()
{
if(textMsg == null)
{
Debug.LogWarning("DebugConsole Init WARNING::UI text not set. Will not be able to display anything.");
}
Clear();
}
//+++++++++ INTERFACE FUNCTIONS ++++++++++++++++++++++++++++++++
/// <summary>
/// Log the specified message.
/// </summary>
/// <param name="message">Message.</param>
public static void Log(string message)
{
OVRDebugConsole.instance.AddMessage(message, Color.white);
}
/// <summary>
/// Log the specified message and color.
/// </summary>
/// <param name="message">Message.</param>
/// <param name="color">Color.</param>
public static void Log(string message, Color color)
{
OVRDebugConsole.instance.AddMessage(message, color);
}
/// <summary>
/// Clear this instance.
/// </summary>
public static void Clear()
{
OVRDebugConsole.instance.ClearMessages();
}
/// <summary>
/// Calls clear after a certain time.
/// </summary>
/// <param name="timeToClear">Time to clear.</param>
public static void ClearTimeout(float timeToClear)
{
OVRDebugConsole.instance.SetClearTimeout(timeToClear);
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/// <summary>
/// Adds the message.
/// </summary>
/// <param name="message">Message.</param>
/// <param name="color">Color.</param>
public void AddMessage(string message, Color color)
{
messages.Add(message);
if(textMsg != null)
textMsg.color = color;
Display();
}
/// <summary>
/// Clears the messages.
/// </summary>
public void ClearMessages()
{
messages.Clear();
Display();
}
/// <summary>
/// Sets the clear timeout.
/// </summary>
/// <param name="timeout">Timeout.</param>
public void SetClearTimeout(float timeout)
{
clearTimeout = timeout;
clearTimeoutOn = true;
}
/// <summary>
// Prunes the array to fit within the maxMessages limit
/// </summary>
void Prune()
{
int diff;
if (messages.Count > maxMessages)
{
if (messages.Count <= 0)
{
diff = 0;
}
else
{
diff = messages.Count - maxMessages;
}
messages.RemoveRange(0, (int)diff);
}
}
/// <summary>
/// Display this instance.
/// </summary>
void Display()
{
if (messages.Count > maxMessages)
{
Prune();
}
if(textMsg != null)
{
textMsg.text = ""; // Clear text out
int x = 0;
while (x < messages.Count)
{
textMsg.text += (string)messages[x];
textMsg.text +='\n';
x += 1;
}
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 032142ba4fe4a53458d86dc9a8610f36
timeCreated: 1450118836
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,470 @@
/************************************************************************************
Filename : OVRMessenger.cs
Content : Base component OVR class
Created : January 8, 2013
Authors : Peter Giokaris
Copyright : Copyright 2014 Oculus VR, LLC. All Rights reserved.
Use of this software is subject to the terms of the Oculus LLC license
agreement provided at the time of installation or download, or which
otherwise accompanies this software in either electronic or hard copy form.
Messenger.cs from Unity3d: http://wiki.unity3d.com/index.php/Advanced_CSharp_Messenger
Renamed to OVRMessenger
* Advanced C# messenger by Ilya Suzdalnitski. V1.0
*
* Based on Rod Hyde's "CSharpMessenger" and Magnus Wolffelt's "CSharpMessenger Extended".
*
* Features:
* Prevents a MissingReferenceException because of a reference to a destroyed message handler.
* Option to log all messages
* Extensive error detection, preventing silent bugs
*
* Usage examples:
1. Messenger.AddListener<GameObject>("prop collected", PropCollected);
Messenger.Broadcast<GameObject>("prop collected", prop);
2. Messenger.AddListener<float>("speed changed", SpeedChanged);
Messenger.Broadcast<float>("speed changed", 0.5f);
*
* Messenger cleans up its evenTable automatically upon loading of a new level.
*
* Don't forget that the messages that should survive the cleanup, should be marked with Messenger.MarkAsPermanent(string)
*
************************************************************************************/
//#define LOG_ALL_MESSAGES
//#define LOG_ADD_LISTENER
//#define LOG_BROADCAST_MESSAGE
//#define REQUIRE_LISTENER
using System;
using System.Collections.Generic;
using UnityEngine;
// Add more delegate types here and implement them the same way below..
public delegate void OVRCallback();
public delegate void OVRCallback<T>(T arg1);
public delegate void OVRCallback<T, U>(T arg1, U arg2);
public delegate void OVRCallback<T, U, V>(T arg1, U arg2, V arg3);
static internal class OVRMessenger {
#region Internal variables
//Disable the unused variable warning
#pragma warning disable 0414
//Ensures that the MessengerHelper will be created automatically upon start of the game.
static private MessengerHelper messengerHelper = ( new GameObject("MessengerHelper") ).AddComponent< MessengerHelper >();
#pragma warning restore 0414
static public Dictionary<string, Delegate> eventTable = new Dictionary<string, Delegate>();
//Message handlers that should never be removed, regardless of calling Cleanup
static public List< string > permanentMessages = new List< string > ();
#endregion
#region Helper methods
/// <summary>
/// Marks a certain message as permanent.
/// </summary>
/// <param name="eventType">Event type.</param>
static public void MarkAsPermanent(string eventType)
{
#if LOG_ALL_MESSAGES
Debug.Log("Messenger MarkAsPermanent \t\"" + eventType + "\"");
#endif
permanentMessages.Add( eventType );
}
/// <summary>
/// Cleanup this instance.
/// </summary>
static public void Cleanup()
{
#if LOG_ALL_MESSAGES
Debug.Log("MESSENGER Cleanup. Make sure that none of necessary listeners are removed.");
#endif
List< string > messagesToRemove = new List<string>();
foreach (KeyValuePair<string, Delegate> pair in eventTable) {
bool wasFound = false;
foreach (string message in permanentMessages) {
if (pair.Key == message) {
wasFound = true;
break;
}
}
if (!wasFound)
messagesToRemove.Add( pair.Key );
}
foreach (string message in messagesToRemove) {
eventTable.Remove( message );
}
}
/// <summary>
/// Prints the event table.
/// </summary>
static public void PrintEventTable()
{
Debug.Log("\t\t\t=== MESSENGER PrintEventTable ===");
foreach (KeyValuePair<string, Delegate> pair in eventTable) {
Debug.Log("\t\t\t" + pair.Key + "\t\t" + pair.Value);
}
Debug.Log("\n");
}
#endregion
#region Message logging and exception throwing
/// <summary>
/// Raises the listener adding event.
/// </summary>
/// <param name="eventType">Event type.</param>
/// <param name="listenerBeingAdded">Listener being added.</param>
static public void OnListenerAdding(string eventType, Delegate listenerBeingAdded)
{
#if LOG_ALL_MESSAGES || LOG_ADD_LISTENER
Debug.Log("MESSENGER OnListenerAdding \t\"" + eventType + "\"\t{" + listenerBeingAdded.Target + " -> " + listenerBeingAdded.Method + "}");
#endif
if (!eventTable.ContainsKey(eventType)) {
eventTable.Add(eventType, null );
}
Delegate d = eventTable[eventType];
if (d != null && d.GetType() != listenerBeingAdded.GetType()) {
throw new ListenerException(string.Format("Attempting to add listener with inconsistent signature for event type {0}. Current listeners have type {1} and listener being added has type {2}", eventType, d.GetType().Name, listenerBeingAdded.GetType().Name));
}
}
/// <summary>
/// Raises the listener removing event.
/// </summary>
/// <param name="eventType">Event type.</param>
/// <param name="listenerBeingRemoved">Listener being removed.</param>
static public void OnListenerRemoving(string eventType, Delegate listenerBeingRemoved)
{
#if LOG_ALL_MESSAGES
Debug.Log("MESSENGER OnListenerRemoving \t\"" + eventType + "\"\t{" + listenerBeingRemoved.Target + " -> " + listenerBeingRemoved.Method + "}");
#endif
if (eventTable.ContainsKey(eventType))
{
Delegate d = eventTable[eventType];
if (d == null)
{
throw new ListenerException(string.Format("Attempting to remove listener with for event type \"{0}\" but current listener is null.", eventType));
} else if (d.GetType() != listenerBeingRemoved.GetType())
{
throw new ListenerException(string.Format("Attempting to remove listener with inconsistent signature for event type {0}. Current listeners have type {1} and listener being removed has type {2}", eventType, d.GetType().Name, listenerBeingRemoved.GetType().Name));
}
}
else
{
throw new ListenerException(string.Format("Attempting to remove listener for type \"{0}\" but Messenger doesn't know about this event type.", eventType));
}
}
/// <summary>
/// Raises the listener removed event.
/// </summary>
/// <param name="eventType">Event type.</param>
static public void OnListenerRemoved(string eventType) {
if (eventTable[eventType] == null) {
eventTable.Remove(eventType);
}
}
/// <summary>
/// Raises the broadcasting event.
/// </summary>
/// <param name="eventType">Event type.</param>
static public void OnBroadcasting(string eventType)
{
#if REQUIRE_LISTENER
if (!eventTable.ContainsKey(eventType)) {
throw new BroadcastException(string.Format("Broadcasting message \"{0}\" but no listener found. Try marking the message with Messenger.MarkAsPermanent.", eventType));
}
#endif
}
/// <summary>
/// Creates the broadcast signature exception.
/// </summary>
/// <returns>The broadcast signature exception.</returns>
/// <param name="eventType">Event type.</param>
static public BroadcastException CreateBroadcastSignatureException(string eventType)
{
return new BroadcastException(string.Format("Broadcasting message \"{0}\" but listeners have a different signature than the broadcaster.", eventType));
}
public class BroadcastException : Exception
{
public BroadcastException(string msg)
: base(msg)
{
}
}
public class ListenerException : Exception
{
public ListenerException(string msg)
: base(msg)
{
}
}
#endregion
#region AddListener
/// <summary>
/// No parameters.
/// </summary>
/// <param name="eventType">Event type.</param>
/// <param name="handler">Handler.</param>
static public void AddListener(string eventType, OVRCallback handler)
{
OnListenerAdding(eventType, handler);
eventTable[eventType] = (OVRCallback)eventTable[eventType] + handler;
}
/// <summary>
/// Single parameter.
/// </summary>
/// <param name="eventType">Event type.</param>
/// <param name="handler">Handler.</param>
/// <typeparam name="T">The 1st type parameter.</typeparam>
static public void AddListener<T>(string eventType, OVRCallback<T> handler)
{
OnListenerAdding(eventType, handler);
eventTable[eventType] = (OVRCallback<T>)eventTable[eventType] + handler;
}
/// <summary>
/// Two parameters.
/// </summary>
/// <param name="eventType">Event type.</param>
/// <param name="handler">Handler.</param>
/// <typeparam name="T">The 1st type parameter.</typeparam>
/// <typeparam name="U">The 2nd type parameter.</typeparam>
static public void AddListener<T, U>(string eventType, OVRCallback<T, U> handler)
{
OnListenerAdding(eventType, handler);
eventTable[eventType] = (OVRCallback<T, U>)eventTable[eventType] + handler;
}
/// <summary>
/// Three parameters
/// </summary
/// <param name="eventType">Event type.</param>
/// <param name="handler">Handler.</param>
/// <typeparam name="T">The 1st type parameter.</typeparam>
/// <typeparam name="U">The 2nd type parameter.</typeparam>
/// <typeparam name="V">The 3rd type parameter.</typeparam>
static public void AddListener<T, U, V>(string eventType, OVRCallback<T, U, V> handler)
{
OnListenerAdding(eventType, handler);
eventTable[eventType] = (OVRCallback<T, U, V>)eventTable[eventType] + handler;
}
#endregion
#region RemoveListener
/// <summary>
/// No parameters
/// </summary>
/// <param name="eventType">Event type.</param>
/// <param name="handler">Handler.</param>
static public void RemoveListener(string eventType, OVRCallback handler)
{
OnListenerRemoving(eventType, handler);
eventTable[eventType] = (OVRCallback)eventTable[eventType] - handler;
OnListenerRemoved(eventType);
}
/// <summary>
/// Single parameter
/// </summary>
/// <param name="eventType">Event type.</param>
/// <param name="handler">Handler.</param>
/// <typeparam name="T">The 1st type parameter.</typeparam>
static public void RemoveListener<T>(string eventType, OVRCallback<T> handler)
{
OnListenerRemoving(eventType, handler);
eventTable[eventType] = (OVRCallback<T>)eventTable[eventType] - handler;
OnListenerRemoved(eventType);
}
/// <summary>
/// Two parameters
/// </summary>
/// <param name="eventType">Event type.</param>
/// <param name="handler">Handler.</param>
/// <typeparam name="T">The 1st type parameter.</typeparam>
/// <typeparam name="U">The 2nd type parameter.</typeparam>
static public void RemoveListener<T, U>(string eventType, OVRCallback<T, U> handler)
{
OnListenerRemoving(eventType, handler);
eventTable[eventType] = (OVRCallback<T, U>)eventTable[eventType] - handler;
OnListenerRemoved(eventType);
}
/// <summary>
//Three parameters.
/// </summary>
/// <param name="eventType">Event type.</param>
/// <param name="handler">Handler.</param>
/// <typeparam name="T">The 1st type parameter.</typeparam>
/// <typeparam name="U">The 2nd type parameter.</typeparam>
/// <typeparam name="V">The 3rd type parameter.</typeparam>
static public void RemoveListener<T, U, V>(string eventType, OVRCallback<T, U, V> handler)
{
OnListenerRemoving(eventType, handler);
eventTable[eventType] = (OVRCallback<T, U, V>)eventTable[eventType] - handler;
OnListenerRemoved(eventType);
}
#endregion
#region Broadcast
/// <summary>
/// Broadcast the specified eventType.
/// </summary>
/// <param name="eventType">Event type.</param>
static public void Broadcast(string eventType)
{
#if LOG_ALL_MESSAGES || LOG_BROADCAST_MESSAGE
Debug.Log("MESSENGER\t" + System.DateTime.Now.ToString("hh:mm:ss.fff") + "\t\t\tInvoking \t\"" + eventType + "\"");
#endif
OnBroadcasting(eventType);
Delegate d;
if (eventTable.TryGetValue(eventType, out d)) {
OVRCallback callback = d as OVRCallback;
if (callback != null) {
callback();
} else {
throw CreateBroadcastSignatureException(eventType);
}
}
}
/// <summary>
/// Broadcast the specified eventType and arg1.
/// </summary>
/// <param name="eventType">Event type.</param>
/// <param name="arg1">Arg1.</param>
/// <typeparam name="T">The 1st type parameter.</typeparam>
static public void Broadcast<T>(string eventType, T arg1) {
#if LOG_ALL_MESSAGES || LOG_BROADCAST_MESSAGE
Debug.Log("MESSENGER\t" + System.DateTime.Now.ToString("hh:mm:ss.fff") + "\t\t\tInvoking \t\"" + eventType + "\"");
#endif
OnBroadcasting(eventType);
Delegate d;
if (eventTable.TryGetValue(eventType, out d)) {
OVRCallback<T> callback = d as OVRCallback<T>;
if (callback != null) {
callback(arg1);
} else {
throw CreateBroadcastSignatureException(eventType);
}
}
}
/// <summary>
/// Broadcast the specified eventType, arg1 and arg2.
/// </summary>
/// <param name="eventType">Event type.</param>
/// <param name="arg1">Arg1.</param>
/// <param name="arg2">Arg2.</param>
/// <typeparam name="T">The 1st type parameter.</typeparam>
/// <typeparam name="U">The 2nd type parameter.</typeparam>
static public void Broadcast<T, U>(string eventType, T arg1, U arg2)
{
#if LOG_ALL_MESSAGES || LOG_BROADCAST_MESSAGE
Debug.Log("MESSENGER\t" + System.DateTime.Now.ToString("hh:mm:ss.fff") + "\t\t\tInvoking \t\"" + eventType + "\"");
#endif
OnBroadcasting(eventType);
Delegate d;
if (eventTable.TryGetValue(eventType, out d)) {
OVRCallback<T, U> callback = d as OVRCallback<T, U>;
if (callback != null) {
callback(arg1, arg2);
} else {
throw CreateBroadcastSignatureException(eventType);
}
}
}
/// <summary>
/// Broadcast the specified eventType, arg1, arg2 and arg3.
/// </summary>
/// <param name="eventType">Event type.</param>
/// <param name="arg1">Arg1.</param>
/// <param name="arg2">Arg2.</param>
/// <param name="arg3">Arg3.</param>
/// <typeparam name="T">The 1st type parameter.</typeparam>
/// <typeparam name="U">The 2nd type parameter.</typeparam>
/// <typeparam name="V">The 3rd type parameter.</typeparam>
static public void Broadcast<T, U, V>(string eventType, T arg1, U arg2, V arg3)
{
#if LOG_ALL_MESSAGES || LOG_BROADCAST_MESSAGE
Debug.Log("MESSENGER\t" + System.DateTime.Now.ToString("hh:mm:ss.fff") + "\t\t\tInvoking \t\"" + eventType + "\"");
#endif
OnBroadcasting(eventType);
Delegate d;
if (eventTable.TryGetValue(eventType, out d)) {
OVRCallback<T, U, V> callback = d as OVRCallback<T, U, V>;
if (callback != null) {
callback(arg1, arg2, arg3);
} else {
throw CreateBroadcastSignatureException(eventType);
}
}
}
#endregion
}
/// <summary>
/// Messenger helper.
/// This manager will ensure that the messenger's eventTable will be cleaned up upon loading of a new level.
/// </summary>
public sealed class MessengerHelper : MonoBehaviour
{
/// <summary>
/// Awake this instance.
/// </summary>
void Awake ()
{
DontDestroyOnLoad(gameObject);
}
/// <summary>
/// Raises the disable event.
/// </summary>
public void OnDisable()
{
OVRMessenger.Cleanup();
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: c7841d42721591642aa796e18d66d248
timeCreated: 1447374135
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,297 @@
/************************************************************************************
Filename : OVRMicInput.cs
Content : Interface to microphone input
Created : May 12, 2015
Copyright : Copyright 2015 Oculus VR, Inc. All Rights reserved.
Licensed under the Oculus VR Rift SDK License Version 3.1 (the "License");
you may not use the Oculus VR Rift SDK except in compliance with the License,
which is provided at the time of installation or download, or which
otherwise accompanies this software in either electronic or hard copy form.
You may obtain a copy of the License at
http://www.oculusvr.com/licenses/LICENSE-3.1
Unless required by applicable law or agreed to in writing, the Oculus VR SDK
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.
************************************************************************************/
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(AudioSource))]
public class OVRMicInput : MonoBehaviour
{
public enum micActivation
{
HoldToSpeak,
PushToSpeak,
ConstantSpeak
}
// PUBLIC MEMBERS
public AudioSource audioSource = null;
public bool GuiSelectDevice = true;
[SerializeField]
private float sensitivity = 100;
public float Sensitivity
{
get{return sensitivity;}
set{sensitivity = Mathf.Clamp (value, 0, 100);}
}
[SerializeField]
private float sourceVolume = 100;
public float SourceVolume
{
get{return sourceVolume;}
set{sourceVolume = Mathf.Clamp (value, 0, 100);}
}
[SerializeField]
private int micFrequency = 16000;
public float MicFrequency
{
get{return micFrequency;}
set{micFrequency = (int)Mathf.Clamp ((float)value, 0, 96000);}
}
public micActivation micControl;
public string selectedDevice;
public float loudness; // Use this to chenge visual values. Range is 0 - 100
// PRIVATE MEMBERS
private bool micSelected = false;
private int minFreq, maxFreq;
private bool focused = true;
//----------------------------------------------------
// MONOBEHAVIOUR OVERRIDE FUNCTIONS
//----------------------------------------------------
/// <summary>
/// Awake this instance.
/// </summary>
void Awake()
{
// First thing to do, cache the unity audio source (can be managed by the
// user if audio source can change)
if (!audioSource) audioSource = GetComponent<AudioSource>();
if (!audioSource) return; // this should never happen
}
/// <summary>
/// Start this instance.
/// </summary>
void Start()
{
audioSource.loop = true; // Set the AudioClip to loop
audioSource.mute = false;
if(Microphone.devices.Length!= 0)
{
selectedDevice = Microphone.devices[0].ToString();
micSelected = true;
GetMicCaps();
}
}
/// <summary>
/// Update this instance.
/// </summary>
void Update()
{
if (!focused)
StopMicrophone();
if (!Application.isPlaying)
StopMicrophone();
audioSource.volume = (sourceVolume / 100);
loudness = Mathf.Clamp(GetAveragedVolume() * sensitivity * (sourceVolume / 10), 0, 100);
//Hold To Speak
if (micControl == micActivation.HoldToSpeak)
{
if (Microphone.IsRecording(selectedDevice) && Input.GetKey(KeyCode.Space) == false)
StopMicrophone();
if (Input.GetKeyDown(KeyCode.Space)) //Push to talk
StartMicrophone();
if (Input.GetKeyUp(KeyCode.Space))
StopMicrophone();
}
//Push To Talk
if (micControl == micActivation.PushToSpeak)
{
if (Input.GetKeyDown(KeyCode.Space))
{
if (Microphone.IsRecording(selectedDevice))
StopMicrophone();
else if (!Microphone.IsRecording(selectedDevice))
StartMicrophone();
}
}
//Constant Speak
if (micControl == micActivation.ConstantSpeak)
if (!Microphone.IsRecording(selectedDevice))
StartMicrophone();
//Mic Slected = False
if (Input.GetKeyDown(KeyCode.M))
micSelected = false;
}
/// <summary>
/// Raises the application focus event.
/// </summary>
/// <param name="focus">If set to <c>true</c> focus.</param>
void OnApplicationFocus(bool focus)
{
focused = focus;
// fixes app with a delayed buffer if going out of focus
if (!focused)
StopMicrophone();
}
/// <summary>
/// Raises the application pause event.
/// </summary>
/// <param name="focus">If set to <c>true</c> focus.</param>
void OnApplicationPause(bool focus)
{
focused = focus;
// fixes app with a delayed buffer if going out of focus
if (!focused)
StopMicrophone();
}
void OnDisable()
{
StopMicrophone();
}
/// <summary>
/// Raises the GU event.
/// </summary>
void OnGUI()
{
MicDeviceGUI((Screen.width/2)-150, (Screen.height/2)-75, 300, 50, 10, -300);
}
//----------------------------------------------------
// PUBLIC FUNCTIONS
//----------------------------------------------------
/// <summary>
/// Mics the device GU.
/// </summary>
/// <param name="left">Left.</param>
/// <param name="top">Top.</param>
/// <param name="width">Width.</param>
/// <param name="height">Height.</param>
/// <param name="buttonSpaceTop">Button space top.</param>
/// <param name="buttonSpaceLeft">Button space left.</param>
public void MicDeviceGUI (float left, float top, float width, float height, float buttonSpaceTop, float buttonSpaceLeft)
{
//If there is more than one device, choose one.
if (Microphone.devices.Length >= 1 && GuiSelectDevice == true && micSelected == false)
{
for (int i = 0; i < Microphone.devices.Length; ++i)
{
if (GUI.Button(new Rect(left + ((width + buttonSpaceLeft) * i), top + ((height + buttonSpaceTop) * i), width, height),
Microphone.devices[i].ToString()))
{
StopMicrophone();
selectedDevice = Microphone.devices[i].ToString();
micSelected = true;
GetMicCaps();
StartMicrophone();
}
}
}
}
/// <summary>
/// Gets the mic caps.
/// </summary>
public void GetMicCaps ()
{
if(micSelected == false) return;
//Gets the frequency of the device
Microphone.GetDeviceCaps(selectedDevice, out minFreq, out maxFreq);
if ( minFreq == 0 && maxFreq == 0 )
{
Debug.LogWarning ("GetMicCaps warning:: min and max frequencies are 0");
minFreq = 44100;
maxFreq = 44100;
}
if (micFrequency > maxFreq)
micFrequency = maxFreq;
}
/// <summary>
/// Starts the microphone.
/// </summary>
public void StartMicrophone ()
{
if(micSelected == false) return;
//Starts recording
audioSource.clip = Microphone.Start(selectedDevice, true, 1, micFrequency);
// Wait until the recording has started
while (!(Microphone.GetPosition(selectedDevice) > 0)){}
// Play the audio source
audioSource.Play();
}
/// <summary>
/// Stops the microphone.
/// </summary>
public void StopMicrophone ()
{
if(micSelected == false) return;
// Overriden with a clip to play? Don't stop the audio source
if((audioSource != null) && (audioSource.clip != null) &&(audioSource.clip.name == "Microphone"))
audioSource.Stop();
Microphone.End(selectedDevice);
}
//----------------------------------------------------
// PRIVATE FUNCTIONS
//----------------------------------------------------
/// <summary>
/// Gets the averaged volume.
/// </summary>
/// <returns>The averaged volume.</returns>
float GetAveragedVolume()
{
// We will use the SR to get average volume
// return OVRSpeechRec.GetAverageVolume();
return 0.0f;
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 19e8290db1b2e0748a6126d146686a6d
timeCreated: 1450118836
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,263 @@
/************************************************************************************
Filename : OVRVoiceMod.cs
Content : Interface to Oculus voice mod
Created : December 14th, 2015
Copyright : Copyright 2015 Oculus VR, Inc. All Rights reserved.
Licensed under the Oculus VR Rift SDK License Version 3.1 (the "License");
you may not use the Oculus VR Rift SDK except in compliance with the License,
which is provided at the time of installation or download, or which
otherwise accompanies this software in either electronic or hard copy form.
You may obtain a copy of the License at
http://www.oculusvr.com/licenses/LICENSE-3.1
Unless required by applicable law or agreed to in writing, the Oculus VR SDK
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.
************************************************************************************/
using UnityEngine;
using System;
using System.Runtime.InteropServices;
//-------------------------------------------------------------------------------------
// ***** OVRVoiceMod
//
/// <summary>
/// OVRVoiceMod interfaces into the Oculus voice-mod engine. This component should be added
/// into the scene once.
///
/// </summary>
public class OVRVoiceMod : MonoBehaviour
{
public const int ovrVoiceModSuccess = 0;
// Error codes that may return from VoiceMod engine
public enum ovrVoiceModError
{
Unknown = -2250, //< An unknown error has occurred
CannotCreateContext = -2251, //< Unable to create a context
InvalidParam = -2252, //< An invalid parameter, e.g. NULL pointer or out of range
BadSampleRate = -2253, //< An unsupported sample rate was declared
MissingDLL = -2254, //< The DLL or shared library could not be found
BadVersion = -2255, //< Mismatched versions between header and libs
UndefinedFunction = -2256 //< An undefined function
};
/// Flags (unused at this time)
public enum ovrViceModFlag
{
None = 0x0000,
};
/// NOTE: Opaque typedef for voice mod context is an unsigned int (uint)
// * * * * * * * * * * * * *
// Import functions
public const string strOVRLS = "OVRVoiceMod";
[DllImport(strOVRLS)]
private static extern int ovrVoiceModDll_Initialize(int SampleRate, int BufferSize);
[DllImport(strOVRLS)]
private static extern void ovrVoiceModDll_Shutdown();
[DllImport(strOVRLS)]
private static extern IntPtr ovrVoicemodDll_GetVersion(ref int Major,
ref int Minor,
ref int Patch);
[DllImport(strOVRLS)]
private static extern int ovrVoiceModDll_CreateContext(ref uint Context);
[DllImport(strOVRLS)]
private static extern int ovrVoiceModDll_DestroyContext(uint Context);
[DllImport(strOVRLS)]
private static extern int ovrVoiceModDll_SendParameter(uint Context, int Parameter, int Value);
[DllImport(strOVRLS)]
private static extern int ovrVoiceModDll_ProcessFrame(uint Context, uint Flags, float [] AudioBuffer);
[DllImport(strOVRLS)]
private static extern int ovrVoiceModDll_ProcessFrameInterleaved(uint Context, uint Flags, float [] AudioBuffer);
[DllImport(strOVRLS)]
private static extern int ovrVoiceModDll_GetAverageAbsVolume(uint Context, ref float Volume);
// * * * * * * * * * * * * *
// Public members
// * * * * * * * * * * * * *
// Static members
private static int sOVRVoiceModInit = (int)ovrVoiceModError.Unknown;
// interface through this static member.
public static OVRVoiceMod sInstance = null;
// * * * * * * * * * * * * *
// MonoBehaviour overrides
/// <summary>
/// Awake this instance.
/// </summary>
void Awake ()
{
// We can only have one instance of OVRLipSync in a scene (use this for local property query)
if(sInstance == null)
{
sInstance = this;
}
else
{
Debug.LogWarning (System.String.Format ("OVRVoiceMod Awake: Only one instance of OVRVoiceMod can exist in the scene."));
return;
}
int samplerate;
int bufsize;
int numbuf;
// Get the current sample rate
samplerate = AudioSettings.outputSampleRate;
// Get the current buffer size and number of buffers
AudioSettings.GetDSPBufferSize (out bufsize, out numbuf);
String str = System.String.Format
("OvrVoiceMod Awake: Queried SampleRate: {0:F0} BufferSize: {1:F0}", samplerate, bufsize);
Debug.LogWarning (str);
sOVRVoiceModInit = ovrVoiceModDll_Initialize(samplerate, bufsize);
if(sOVRVoiceModInit != ovrVoiceModSuccess)
{
Debug.LogWarning (System.String.Format
("OvrVoiceMod Awake: Failed to init VoiceMod library"));
}
// Important: Use the touchpad mechanism for input, call Create on the OVRTouchpad helper class
OVRTouchpad.Create();
}
/// <summary>
/// Start this instance.
/// Note: make sure to always have a Start function for classes that have editor scripts.
/// </summary>
void Start()
{
}
/// <summary>
/// Run processes that need to be updated in our game thread
/// </summary>
void Update()
{
}
/// <summary>
/// Raises the destroy event.
/// </summary>
void OnDestroy()
{
if(sInstance != this)
{
Debug.LogWarning ("OVRVoiceMod OnDestroy: This is not the correct OVRVoiceMod instance.");
}
ovrVoiceModDll_Shutdown();
sOVRVoiceModInit = (int)ovrVoiceModError.Unknown;
}
// * * * * * * * * * * * * *
// Public Functions
/// <summary>
/// Determines if is initialized.
/// </summary>
/// <returns><c>true</c> if is initialized; otherwise, <c>false</c>.</returns>
public static int IsInitialized()
{
return sOVRVoiceModInit;
}
/// <summary>
/// Creates the context.
/// </summary>
/// <returns>The context.</returns>
/// <param name="context">Context.</param>
public static int CreateContext(ref uint context)
{
if(IsInitialized() != ovrVoiceModSuccess)
return (int)ovrVoiceModError.CannotCreateContext;
return ovrVoiceModDll_CreateContext(ref context);
}
/// <summary>
/// Destroies the context.
/// </summary>
/// <returns>The context.</returns>
/// <param name="context">Context.</param>
public static int DestroyContext (uint context)
{
if(IsInitialized() != ovrVoiceModSuccess)
return (int)ovrVoiceModError.Unknown;
return ovrVoiceModDll_DestroyContext(context);
}
/// <summary>
/// Sends the parameter.
/// </summary>
/// <returns>The parameter.</returns>
/// <param name="context">Context.</param>
/// <param name="parameter">Parameter.</param>
/// <param name="value">Value.</param>
public static int SendParameter(uint context, int parameter, int value)
{
if(IsInitialized() != ovrVoiceModSuccess)
return (int)ovrVoiceModError.Unknown;
return ovrVoiceModDll_SendParameter(context, parameter, value);
}
/// <summary>
/// Processes the frame.
/// </summary>
/// <returns>The frame.</returns>
/// <param name="context">Context.</param>
/// <param name="audioBuffer">Audio buffer.</param>
public static int ProcessFrame(uint context, float [] audioBuffer)
{
if(IsInitialized() != ovrVoiceModSuccess)
return (int)ovrVoiceModError.Unknown;
return ovrVoiceModDll_ProcessFrame(context, (uint)ovrViceModFlag.None , audioBuffer);
}
/// <summary>
/// Processes the frame interleaved.
/// </summary>
/// <returns>The frame interleaved.</returns>
/// <param name="context">Context.</param>
/// <param name="audioBuffer">Audio buffer.</param>
public static int ProcessFrameInterleaved(uint context, float [] audioBuffer)
{
if(IsInitialized() != ovrVoiceModSuccess)
return (int)ovrVoiceModError.Unknown;
return ovrVoiceModDll_ProcessFrameInterleaved(context, (uint)ovrViceModFlag.None, audioBuffer);
}
/// <summary>
/// Gets the average abs volume.
/// </summary>
/// <returns>The average abs volume.</returns>
/// <param name="context">Context.</param>
/// <param name="volume">Volume.</param>
public static float GetAverageAbsVolume(uint context)
{
if(IsInitialized() != ovrVoiceModSuccess)
return 0.0f;
float volume = 0;
int result = ovrVoiceModDll_GetAverageAbsVolume(context, ref volume);
return volume;
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: f9518abe0e11ea14dbba5c3d7a2fec2d
timeCreated: 1450120036
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,517 @@
/************************************************************************************
Filename : OVRVoiceModContext.cs
Content : Interface to Oculus Lip-Sync engine
Created : December 14th, 2015
Copyright : Copyright 2015 Oculus VR, Inc. All Rights reserved.
Licensed under the Oculus VR Rift SDK License Version 3.1 (the "License");
you may not use the Oculus VR Rift SDK except in compliance with the License,
which is provided at the time of installation or download, or which
otherwise accompanies this software in either electronic or hard copy form.
You may obtain a copy of the License at
http://www.oculusvr.com/licenses/LICENSE-3.1
Unless required by applicable law or agreed to in writing, the Oculus VR SDK
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.
************************************************************************************/
using UnityEngine;
using System;
using System.Runtime.InteropServices;
[RequireComponent(typeof(AudioSource))]
//-------------------------------------------------------------------------------------
// ***** OVRVoiceModContext
//
/// <summary>
/// OVRVoiceModContext interfaces into VoiceMod engine.
/// Includes preset bank.
/// This component should be added into the scene once for each Audio Source.
///
/// </summary>
public class OVRVoiceModContext : MonoBehaviour
{
// Enum for various voice mod parameters (lines up with native context, OVRVoiceModContext.h)
public enum ovrVoiceModParams
{
MixInputAudio, // 0.0->1.0
PitchInputAudio, // 0.5->2.0
SetBands, // 1 -> 128
FormantCorrection, // 0 = off, 1 = on
Carrier1_TrackPitch, // 0 = off, 1 = om
Carrier1_Type, // Carrier type: 0 = Noise, 1 = CycledNoise, 2 = SawUp, 3 = Pulse
Carrier1_Gain, // Linear multiplier (0.0 -> 1.0)
Carrier1_Frequency, // Frequency of carrier (used by SawUp and Pulse) 0.0 -> Sample Rate
Carrier1_Note, // Translates to frequency (0-127)
Carrier1_PulseWidth, // Used by Pulse carrier (0.0 -> 1.0)
Carrier1_CycledNoiseSize, // Number of samples in cycled noise carrier: 1 - 1024
Carrier2_TrackPitch, // Same as Carrier 1
Carrier2_Type, //
Carrier2_Gain, //
Carrier2_Frequency, //
Carrier2_Note, //
Carrier2_PulseWidth, //
Carrier2_CycledNoiseSize, //
Count
};
// * * * * * * * * * * * * *
// Public members
public AudioSource audioSource = null;
public float gain = 1.0f;
public bool audioMute = true;
public KeyCode loopback = KeyCode.L;
// Voice Mod Preset
public struct VMPreset
{
public string info;
public Color color;
public float mix;
public float pitch;
public int bands;
public int formant;
public int c1PTrack;
public int c1Type;
public float c1Gain;
public float c1Freq;
public int c1Note;
public float c1PW;
public int c1CNS;
public int c2PTrack;
public int c2Type;
public float c2Gain;
public float c2Freq;
public int c2Note;
public float c2PW;
public int c2CNS;
};
private VMPreset [] VMPresets = new VMPreset[]
{
// INIT
new VMPreset{info="-INIT-\nNo pitch shift, no vocode",
color = Color.gray,
mix = 1.0f, pitch = 1.0f, bands = 32, formant = 0,
c1PTrack = 0, c1Type = 0, c1Gain = 0.0f, c1Freq = 440.0f, c1Note = -1, c1PW = 0.5f, c1CNS = 512,
c2PTrack = 0, c2Type = 0, c2Gain = 0.0f, c2Freq = 440.0f, c2Note = -1, c2PW = 0.5f, c2CNS = 512,},
new VMPreset{info="FULL VOCODE\nCarrier 1: Full noise",
color = Color.white,
mix = 0.0f, pitch = 1.0f, bands = 32, formant = 0,
c1PTrack = 0, c1Type = 0, c1Gain = 1.0f, c1Freq = 440.0f, c1Note = -1, c1PW = 0.5f, c1CNS = 512,
c2PTrack = 0, c2Type = 0, c2Gain = 0.0f, c2Freq = 440.0f, c2Note = -1, c2PW = 0.5f, c2CNS = 512,},
new VMPreset{info="FULL VOCODE\nCarrier 1: Cycled noise 512",
color = Color.blue,
mix = 0.0f, pitch = 1.0f, bands = 32, formant = 0,
c1PTrack = 0, c1Type = 1, c1Gain = 1.0f, c1Freq = 440.0f, c1Note = -1, c1PW = 0.5f, c1CNS = 512,
c2PTrack = 0, c2Type = 0, c2Gain = 0.0f, c2Freq = 440.0f, c2Note = -1, c2PW = 0.5f, c2CNS = 512,},
new VMPreset{info="FULL VOCODE\nCarrier 1: Saw Up, Freq 220",
color = Color.magenta,
mix = 0.0f, pitch = 1.0f, bands = 32, formant = 0,
c1PTrack = 0, c1Type = 2, c1Gain = 1.0f, c1Freq = 220.0f, c1Note = -1, c1PW = 0.5f, c1CNS = 512,
c2PTrack = 0, c2Type = 0, c2Gain = 0.0f, c2Freq = 440.0f, c2Note = -1, c2PW = 0.5f, c2CNS = 512,},
new VMPreset{info="FULL VOCODE\nCarrier 1: Saw Up, Pitch tracked\n",
color = Color.cyan,
mix = 0.0f, pitch = 1.0f, bands = 32, formant = 0,
c1PTrack = 1, c1Type = 2, c1Gain = 0.34f, c1Freq = 440.0f, c1Note = -1, c1PW = 0.1f, c1CNS = 512,
c2PTrack = 0, c2Type = 0, c2Gain = 0.0f, c2Freq = 440.0f, c2Note = -1, c2PW = 0.5f, c2CNS = 512,},
new VMPreset{info="INPUT PLUS VOCODE\nInput 50%, Vocode 50%\nPitch 1.0\nCarrier 1: Full Noise,\nCarrier 2: Cycled Noise 512",
color = Color.green,
mix = 0.5f, pitch = 1.0f, bands = 32, formant = 0,
c1PTrack = 0, c1Type = 0, c1Gain = 0.5f, c1Freq = 440.0f, c1Note = 57, c1PW = 0.5f, c1CNS = 512,
c2PTrack = 0, c2Type = 1, c2Gain = 0.5f, c2Freq = 440.0f, c2Note = 45, c2PW = 0.25f, c2CNS = 512,},
new VMPreset{info="INPUT PLUS VOCODE PLUS PITCH DOWN\nInput 50%, Vocode 50%\nPitch 0.75\nCarrier 1: Cycled Noise 512\nCarrier 2: Cycled Noise 768",
color = Color.red,
mix = 0.5f, pitch = 0.75f, bands = 32, formant = 0,
c1PTrack = 0, c1Type = 1, c1Gain = 0.6f, c1Freq = 440.0f, c1Note = 57, c1PW = 0.5f, c1CNS = 512,
c2PTrack = 0, c2Type = 3, c2Gain = 0.2f, c2Freq = 440.0f, c2Note = 40, c2PW = 0.25f, c2CNS = 768,},
new VMPreset{info="PITCH ONLY\nPitch 1.25 (Formant correction)",
color = Color.blue,
mix = 1.0f, pitch = 1.25f, bands = 32, formant = 1,
c1PTrack = 0, c1Type = 1, c1Gain = 1.0f, c1Freq = 440.0f, c1Note = 57, c1PW = 0.5f, c1CNS = 400,
c2PTrack = 0, c2Type = 3, c2Gain = 0.0f, c2Freq = 440.0f, c2Note = 52, c2PW = 0.5f, c2CNS = 512,},
new VMPreset{info="PITCH ONLY\nPitch 0.5 (Formant correction)",
color = Color.green,
mix = 1.0f, pitch = 0.5f, bands = 32, formant = 1,
c1PTrack = 0, c1Type = 1, c1Gain = 1.0f, c1Freq = 440.0f, c1Note = 57, c1PW = 0.5f, c1CNS = 400,
c2PTrack = 0, c2Type = 3, c2Gain = 0.0f, c2Freq = 440.0f, c2Note = 52, c2PW = 0.5f, c2CNS = 512,},
new VMPreset{info="PITCH ONLY\nPitch 2.0 (Formant correction)",
color = Color.yellow,
mix = 1.0f, pitch = 2.0f, bands = 32, formant = 1,
c1PTrack = 0, c1Type = 1, c1Gain = 1.0f, c1Freq = 440.0f, c1Note = 57, c1PW = 0.5f, c1CNS = 400,
c2PTrack = 0, c2Type = 3, c2Gain = 0.0f, c2Freq = 440.0f, c2Note = 52, c2PW = 0.5f, c2CNS = 512,},
};
// Current VoiceMod values (visible in inspector without writing a editor helper class)
public float VM_MixAudio = 1.0f;
public float VM_Pitch = 1.0f;
public int VM_Bands = 32;
public int VM_FormantCorrect = 0;
// Carrier 1
public int VM_C1_TrackPitch = 0;
public int VM_C1_Type = 0;
public float VM_C1_Gain = 0.5f;
public float VM_C1_Freq = 440.0f;
public int VM_C1_Note = 67;
public float VM_C1_PulseWidth = 0.5f;
public int VM_C1_CycledNoiseSize = 512;
// Carrier 2
public int VM_C2_TrackPitch = 0;
public int VM_C2_Type = 0;
public float VM_C2_Gain = 0.5f;
public float VM_C2_Freq = 440.0f;
public int VM_C2_Note = 67;
public float VM_C2_PulseWidth = 0.5f;
public int VM_C2_CycledNoiseSize = 512;
// * * * * * * * * * * * * *
// Private members
private uint context = 0; // 0 is no context
private float prevVol = 0.0f; // used for smoothing avg volume
// * * * * * * * * * * * * *
// Static members
// * * * * * * * * * * * * *
// MonoBehaviour overrides
/// <summary>
/// Awake this instance.
/// </summary>
void Awake ()
{
// Cache the audio source we are going to be using to pump data to the SR
if (!audioSource) audioSource = GetComponent<AudioSource>();
if (!audioSource) return;
}
/// <summary>
/// Start this instance.
/// Note: make sure to always have a Start function for classes that have editor scripts.
/// </summary>
void Start()
{
// Create the context that we will feed into the audio buffer
lock(this)
{
if(context == 0)
{
if(OVRVoiceMod.CreateContext(ref context) != OVRVoiceMod.ovrVoiceModSuccess)
{
Debug.Log ("OVRVoiceModContext.Start ERROR: Could not create VoiceMod context.");
return;
}
}
}
// Add a listener to the OVRMessenger for touch events
OVRMessenger.AddListener<OVRTouchpad.TouchEvent>("Touchpad", LocalTouchEventCallback);
// VoiceMod: Set the current state of the voice mod as set in the inspector
SendVoiceModUpdate();
}
/// <summary>
/// Run processes that need to be updated in our game thread
/// </summary>
void Update()
{
// Turn loopback on/off
if (Input.GetKeyDown(loopback))
{
audioMute = !audioMute;
OVRDebugConsole.Clear();
OVRDebugConsole.ClearTimeout(1.5f);
if(!audioMute)
OVRDebugConsole.Log("LOOPBACK MODE: ENABLED");
else
OVRDebugConsole.Log("LOOPBACK MODE: DISABLED");
}
else if(Input.GetKeyDown(KeyCode.LeftArrow))
{
gain -= 0.1f;
if(gain < 0.5f) gain = 0.5f;
string g = "LINEAR GAIN: ";
g += gain;
OVRDebugConsole.Clear();
OVRDebugConsole.Log(g);
OVRDebugConsole.ClearTimeout(1.5f);
}
else if(Input.GetKeyDown(KeyCode.RightArrow))
{
gain += 0.1f;
if(gain > 3.0f)
gain = 3.0f;
string g = "LINEAR GAIN: ";
g += gain;
OVRDebugConsole.Clear();
OVRDebugConsole.Log(g);
OVRDebugConsole.ClearTimeout(1.5f);
}
UpdateVoiceModUpdate();
}
/// <summary>
/// Raises the destroy event.
/// </summary>
void OnDestroy()
{
// Create the context that we will feed into the audio buffer
lock(this)
{
if(context != 0)
{
if(OVRVoiceMod.DestroyContext(context) != OVRVoiceMod.ovrVoiceModSuccess)
{
Debug.Log ("OVRVoiceModContext.OnDestroy ERROR: Could not delete VoiceMod context.");
}
}
}
}
/// <summary>
/// Raises the audio filter read event.
/// </summary>
/// <param name="data">Data.</param>
/// <param name="channels">Channels.</param>
void OnAudioFilterRead(float[] data, int channels)
{
// Do not spatialize if we are not initialized, or if there is no
// audio source attached to game object
if ((OVRVoiceMod.IsInitialized() != OVRVoiceMod.ovrVoiceModSuccess) || audioSource == null)
return;
// increase the gain of the input to get a better signal input
for (int i = 0; i < data.Length; ++i)
data[i] = data[i] * gain;
// Send data into VoiceMod context for processing (if context is not 0)
lock(this)
{
if(context != 0)
{
OVRVoiceMod.ProcessFrameInterleaved(context, data);
}
}
// Turn off output (so that we don't get feedback from a mic too close to speakers)
if(audioMute == true)
{
for (int i = 0; i < data.Length; ++i)
data[i] = data[i] * 0.0f;
}
}
// * * * * * * * * * * * * *
// Public Functions
/// <summary>
/// Sends the parameter.
/// </summary>
/// <returns>The parameter.</returns>
/// <param name="parameter">Parameter.</param>
/// <param name="value">Value.</param>
public int SendParameter(ovrVoiceModParams parameter, int value)
{
if(OVRVoiceMod.IsInitialized() != OVRVoiceMod.ovrVoiceModSuccess)
return (int)OVRVoiceMod.ovrVoiceModError.Unknown;
return OVRVoiceMod.SendParameter(context, (int)parameter, value);
}
/// <summary>
/// Sets the preset.
/// </summary>
/// <returns><c>true</c>, if preset was set, <c>false</c> otherwise.</returns>
/// <param name="preset">Preset.</param>
public bool SetPreset(int preset)
{
if(preset < 0 || preset >= VMPresets.Length)
return false;
VM_MixAudio = VMPresets[preset].mix;
VM_Pitch = VMPresets[preset].pitch;
VM_Bands = VMPresets[preset].bands;
VM_FormantCorrect = VMPresets[preset].formant;
VM_C1_TrackPitch = VMPresets[preset].c1PTrack;
VM_C1_Type = VMPresets[preset].c1Type;
VM_C1_Gain = VMPresets[preset].c1Gain;
VM_C1_Freq = VMPresets[preset].c1Freq;
VM_C1_Note = VMPresets[preset].c1Note;
VM_C1_PulseWidth = VMPresets[preset].c1PW;
VM_C1_CycledNoiseSize = VMPresets[preset].c1CNS;
VM_C2_TrackPitch = VMPresets[preset].c2PTrack;
VM_C2_Type = VMPresets[preset].c2Type;
VM_C2_Gain = VMPresets[preset].c2Gain;
VM_C2_Freq = VMPresets[preset].c2Freq;
VM_C2_Note = VMPresets[preset].c2Note;
VM_C2_PulseWidth = VMPresets[preset].c2PW;
VM_C2_CycledNoiseSize = VMPresets[preset].c2CNS;
SendVoiceModUpdate();
OVRDebugConsole.Clear();
OVRDebugConsole.Log(VMPresets[preset].info);
OVRDebugConsole.ClearTimeout(5.0f);
return true;
}
/// <summary>
/// Gets the number presets.
/// </summary>
/// <returns>The number presets.</returns>
public int GetNumPresets()
{
return VMPresets.Length;
}
/// <summary>
/// Gets the color of the preset.
/// </summary>
/// <returns>The preset color.</returns>
/// <param name="preset">Preset.</param>
public Color GetPresetColor(int preset)
{
if(preset < 0 || preset >= VMPresets.Length)
return Color.black;
return VMPresets[preset].color;
}
/// <summary>
/// Gets the average abs volume.
/// </summary>
/// <returns>The average abs volume.</returns>
public float GetAverageAbsVolume()
{
if(context == 0)
return 0.0f;
float V = prevVol * 0.8f + OVRVoiceMod.GetAverageAbsVolume(context) * 0.2f;
prevVol = V;
return V;
}
// LocalTouchEventCallback
// NOTE: We will not worry about gain on Android, since it will be
// more important to switch presets. We will keep gain available on
// Desktop
void LocalTouchEventCallback(OVRTouchpad.TouchEvent touchEvent)
{
switch(touchEvent)
{
case(OVRTouchpad.TouchEvent.SingleTap):
audioMute = !audioMute;
OVRDebugConsole.Clear();
OVRDebugConsole.ClearTimeout(1.5f);
if(!audioMute)
OVRDebugConsole.Log("LOOPBACK MODE: ENABLED");
else
OVRDebugConsole.Log("LOOPBACK MODE: DISABLED");
break;
}
}
// Update directly from current state in inspector
void UpdateVoiceModUpdate()
{
// Send directly from inspector
if(Input.GetKeyDown(KeyCode.Space))
{
SendVoiceModUpdate();
OVRDebugConsole.Clear();
OVRDebugConsole.Log("UPDATED VOICE MOD FROM INSPECTOR");
OVRDebugConsole.ClearTimeout(1.0f);
}
}
// Sends the current state of voice mod values
void SendVoiceModUpdate()
{
VM_MixAudio = Mathf.Clamp(VM_MixAudio, 0.0f, 1.0f);
VM_Pitch = Mathf.Clamp(VM_Pitch, 0.5f, 2.0f);
VM_Bands = Mathf.Clamp(VM_Bands, 1, 128);
VM_FormantCorrect = Mathf.Clamp(VM_FormantCorrect, 0, 1);
VM_C1_TrackPitch = Mathf.Clamp(VM_C1_TrackPitch, 0, 1);
VM_C1_Type = Mathf.Clamp(VM_C1_Type, 0, 3);
VM_C1_Gain = Mathf.Clamp(VM_C1_Gain, 0.0f, 1.0f);
VM_C1_Freq = Mathf.Clamp(VM_C1_Freq, 0.0f, 96000.0f);
VM_C1_Note = Mathf.Clamp(VM_C1_Note, -1, 127);
VM_C1_PulseWidth = Mathf.Clamp(VM_C1_PulseWidth, 0.0f, 1.0f);
VM_C1_CycledNoiseSize = Mathf.Clamp(VM_C1_CycledNoiseSize, 0, 1024);
VM_C2_TrackPitch = Mathf.Clamp(VM_C2_TrackPitch, 0, 1);
VM_C2_Type = Mathf.Clamp(VM_C2_Type, 0, 3);
VM_C2_Gain = Mathf.Clamp(VM_C2_Gain, 0.0f, 1.0f);
VM_C2_Freq = Mathf.Clamp(VM_C2_Freq, 0.0f, 96000.0f);
VM_C2_Note = Mathf.Clamp(VM_C2_Note, -1, 127);
VM_C2_PulseWidth = Mathf.Clamp(VM_C2_PulseWidth, 0.0f, 1.0f);
VM_C2_CycledNoiseSize = Mathf.Clamp(VM_C2_CycledNoiseSize, 0, 1024);
// We will send these in as Int and use 100 as a scale
// Might go to 1000 :)
// VoiceMod and Vocoder values
SendParameter(ovrVoiceModParams.MixInputAudio, (int)(100.0f * VM_MixAudio));
SendParameter(ovrVoiceModParams.PitchInputAudio,(int)(100.0f * VM_Pitch));
SendParameter(ovrVoiceModParams.SetBands, (int)VM_Bands);
SendParameter(ovrVoiceModParams.FormantCorrection, (int)VM_FormantCorrect);
// Carrier 1
SendParameter(ovrVoiceModParams.Carrier1_TrackPitch, (int)VM_C1_TrackPitch);
SendParameter(ovrVoiceModParams.Carrier1_Type, (int)VM_C1_Type);
SendParameter(ovrVoiceModParams.Carrier1_Gain, (int)(100.0f * VM_C1_Gain));
// Note overrides Frequency if valid range
if(VM_C1_Note == -1)
SendParameter(ovrVoiceModParams.Carrier1_Frequency, (int)(100.0f * VM_C1_Freq));
else
SendParameter(ovrVoiceModParams.Carrier1_Note, (int)VM_C1_Note);
SendParameter(ovrVoiceModParams.Carrier1_PulseWidth, (int)(100.0f * VM_C1_PulseWidth));
SendParameter(ovrVoiceModParams.Carrier1_CycledNoiseSize, (int)VM_C1_CycledNoiseSize);
// Carrier 2
SendParameter(ovrVoiceModParams.Carrier2_TrackPitch, (int)VM_C2_TrackPitch);
SendParameter(ovrVoiceModParams.Carrier2_Type, (int)VM_C2_Type);
SendParameter(ovrVoiceModParams.Carrier2_Gain, (int)(100.0f * VM_C2_Gain));
// Note overrides Frequency if valid range
if(VM_C2_Note == -1)
SendParameter(ovrVoiceModParams.Carrier2_Frequency, (int)(100.0f * VM_C2_Freq));
else
SendParameter(ovrVoiceModParams.Carrier2_Note, (int)VM_C2_Note);
SendParameter(ovrVoiceModParams.Carrier2_PulseWidth, (int)(100.0f * VM_C2_PulseWidth));
SendParameter(ovrVoiceModParams.Carrier2_CycledNoiseSize, (int)VM_C1_CycledNoiseSize);
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: beb05abfbdc9f804ab7e1bdd89727bd7
timeCreated: 1450128495
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: