non-vr lobby, version fix
This commit is contained in:
3487
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/DemoVoice.unity
Normal file
3487
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/DemoVoice.unity
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0ab5c0cab248b1c449cb35dd2672ffdb
|
||||
timeCreated: 1535011200
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media.meta
Normal file
8
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 88e1e0fbf44c73e46bfbba5bdd0c4cf5
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media/Chaoserate.mp3
LFS
Normal file
BIN
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media/Chaoserate.mp3
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,22 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2b6a49e3ffdbf734ea066f1df3d24d3e
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 6
|
||||
defaultSettings:
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
preloadAudioData: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media/Gradient.png
LFS
Normal file
BIN
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media/Gradient.png
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,132 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6c4246dd80904b747bd0f2b32a4b5bef
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: -1
|
||||
wrapV: -1
|
||||
wrapW: -1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Windows Store Apps
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: f26b92046ce5e8b4b854253c5399905f
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media/OSR_us_000_0060_8k.wav
LFS
Normal file
BIN
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media/OSR_us_000_0060_8k.wav
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,22 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1c04c1800b18bb24c9d2d40a543bf5d9
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 6
|
||||
defaultSettings:
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
preloadAudioData: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media/barsHorizontal.png
LFS
Normal file
BIN
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media/barsHorizontal.png
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,143 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 055458b32c82031478126740cfeff8b5
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: iPhone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Windows Store Apps
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: fd047d74149ed7345bfff8cee2d2b16b
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media/gizmo-microphone-off.png
LFS
Normal file
BIN
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media/gizmo-microphone-off.png
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,132 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 89c869f76d8c0474a8da08e71510f0f2
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: -1
|
||||
wrapV: -1
|
||||
wrapW: -1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Windows Store Apps
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5441652eeeb034c4a942430ea5bdc22e
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media/gizmo-microphone.png
LFS
Normal file
BIN
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media/gizmo-microphone.png
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,132 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 464883c791528804496b8c8ef7126e52
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: -1
|
||||
wrapV: -1
|
||||
wrapW: -1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Windows Store Apps
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 480dfd3723547c4449911f2f6e68c892
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media/gizmo-speaker.png
LFS
Normal file
BIN
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media/gizmo-speaker.png
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,132 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 78b736601df34e145b113200f637e37f
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: -1
|
||||
wrapV: -1
|
||||
wrapW: -1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Windows Store Apps
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 570632ee587d1ac439a2c2dc03e7b625
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media/gizmo-speech-bubble.png
LFS
Normal file
BIN
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Media/gizmo-speech-bubble.png
LFS
Normal file
Binary file not shown.
@@ -0,0 +1,132 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 58086affa71851c4b81d7fba4c08e0b6
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 9
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 16
|
||||
mipBias: -100
|
||||
wrapU: -1
|
||||
wrapV: -1
|
||||
wrapW: -1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Windows Store Apps
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: a3bddedbf97f48b49874eed12de3a907
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Prefabs.meta
Normal file
8
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Prefabs.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 84f760dd3ba57bb478089f89da81160d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
12655
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Prefabs/Left Panel.prefab
Normal file
12655
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Prefabs/Left Panel.prefab
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c3d3f87b92075324cb460d8aea990056
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 100100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,830 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !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: 1107111830421828}
|
||||
m_IsPrefabParent: 1
|
||||
--- !u!1 &1107111830421828
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 224071350919014634}
|
||||
m_Layer: 5
|
||||
m_Name: MenuHeader
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &1139951423141390
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 224227189929529224}
|
||||
- component: {fileID: 222344931762645878}
|
||||
- component: {fileID: 114919063098189450}
|
||||
m_Layer: 5
|
||||
m_Name: Fill
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &1312094375265670
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 224816900147619396}
|
||||
m_Layer: 5
|
||||
m_Name: Fill Area
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &1318945307031904
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 224814641392286240}
|
||||
m_Layer: 5
|
||||
m_Name: Handle Slide Area
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &1413198682722408
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 224546690503720970}
|
||||
- component: {fileID: 222075473477709852}
|
||||
- component: {fileID: 114160230414102640}
|
||||
m_Layer: 5
|
||||
m_Name: Background
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &1517028828154570
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 224377334100768974}
|
||||
- component: {fileID: 222275207357212224}
|
||||
- component: {fileID: 114542381380074706}
|
||||
m_Layer: 5
|
||||
m_Name: Text
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &1628068555195924
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 224893986903018272}
|
||||
- component: {fileID: 222923875980758866}
|
||||
- component: {fileID: 114603745729915400}
|
||||
- component: {fileID: 114352974773395710}
|
||||
m_Layer: 5
|
||||
m_Name: Demo Header
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &1808095574223976
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 224385032750109242}
|
||||
- component: {fileID: 82211189988458792}
|
||||
- component: {fileID: 114302237455434094}
|
||||
m_Layer: 5
|
||||
m_Name: GameObject
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &1833180120269200
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 224983412324041764}
|
||||
- component: {fileID: 222638005538127372}
|
||||
- component: {fileID: 114724971171122394}
|
||||
- component: {fileID: 114408660708379824}
|
||||
- component: {fileID: 114135397663693500}
|
||||
m_Layer: 5
|
||||
m_Name: Button
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &1834623192137638
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 224945133068169140}
|
||||
- component: {fileID: 222081351676312480}
|
||||
- component: {fileID: 114402449524227890}
|
||||
m_Layer: 5
|
||||
m_Name: Handle
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &1901206927847060
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 224553972546966500}
|
||||
- component: {fileID: 114464138758346680}
|
||||
m_Layer: 5
|
||||
m_Name: Slider
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!82 &82211189988458792
|
||||
AudioSource:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1808095574223976}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
OutputAudioMixerGroup: {fileID: 0}
|
||||
m_audioClip: {fileID: 8300000, guid: 2b6a49e3ffdbf734ea066f1df3d24d3e, type: 3}
|
||||
m_PlayOnAwake: 1
|
||||
m_Volume: 1
|
||||
m_Pitch: 1
|
||||
Loop: 1
|
||||
Mute: 0
|
||||
Spatialize: 0
|
||||
SpatializePostEffects: 0
|
||||
Priority: 128
|
||||
DopplerLevel: 1
|
||||
MinDistance: 1
|
||||
MaxDistance: 500
|
||||
Pan2D: 0
|
||||
rolloffMode: 0
|
||||
BypassEffects: 0
|
||||
BypassListenerEffects: 0
|
||||
BypassReverbZones: 0
|
||||
rolloffCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 2
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
- serializedVersion: 2
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
panLevelCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 2
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 0
|
||||
spreadCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 2
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
reverbZoneMixCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 2
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 0
|
||||
--- !u!114 &114135397663693500
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1833180120269200}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0aeb3b11a4ed83e4cb11098a0cfb9c71, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
sidebarButton: {fileID: 114408660708379824}
|
||||
panelsHolder: {fileID: 0}
|
||||
--- !u!114 &114160230414102640
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1413198682722408}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, 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_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
--- !u!114 &114302237455434094
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1808095574223976}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: aec32561f997fa94cb5db680ffee8c5e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
volumeText: {fileID: 114542381380074706}
|
||||
volumeSlider: {fileID: 114464138758346680}
|
||||
audioSource: {fileID: 82211189988458792}
|
||||
initialVolume: 0
|
||||
--- !u!114 &114352974773395710
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1628068555195924}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreLayout: 0
|
||||
m_MinWidth: -1
|
||||
m_MinHeight: -1
|
||||
m_PreferredWidth: -1
|
||||
m_PreferredHeight: 32
|
||||
m_FlexibleWidth: -1
|
||||
m_FlexibleHeight: -1
|
||||
m_LayoutPriority: 1
|
||||
--- !u!114 &114402449524227890
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1834623192137638}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, 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_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
--- !u!114 &114408660708379824
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1833180120269200}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 114724971171122394}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
|
||||
Culture=neutral, PublicKeyToken=null
|
||||
--- !u!114 &114464138758346680
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1901206927847060}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: -113659843, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 114402449524227890}
|
||||
m_FillRect: {fileID: 224227189929529224}
|
||||
m_HandleRect: {fileID: 224945133068169140}
|
||||
m_Direction: 0
|
||||
m_MinValue: 0
|
||||
m_MaxValue: 1
|
||||
m_WholeNumbers: 0
|
||||
m_Value: 0
|
||||
m_OnValueChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0,
|
||||
Culture=neutral, PublicKeyToken=null
|
||||
--- !u!114 &114542381380074706
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1517028828154570}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 14
|
||||
m_FontStyle: 0
|
||||
m_BestFit: 1
|
||||
m_MinSize: 10
|
||||
m_MaxSize: 15
|
||||
m_Alignment: 4
|
||||
m_AlignByGeometry: 0
|
||||
m_RichText: 1
|
||||
m_HorizontalOverflow: 0
|
||||
m_VerticalOverflow: 0
|
||||
m_LineSpacing: 1
|
||||
m_Text: 'BG Volume: 0.125'
|
||||
--- !u!114 &114603745729915400
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1628068555195924}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 12800000, guid: 1c24caf2cf8ad3f4d97b3ed7b7749c28, type: 3}
|
||||
m_FontSize: 24
|
||||
m_FontStyle: 0
|
||||
m_BestFit: 0
|
||||
m_MinSize: 2
|
||||
m_MaxSize: 50
|
||||
m_Alignment: 0
|
||||
m_AlignByGeometry: 0
|
||||
m_RichText: 1
|
||||
m_HorizontalOverflow: 0
|
||||
m_VerticalOverflow: 0
|
||||
m_LineSpacing: 1
|
||||
m_Text: Photon Voice 2 Demo
|
||||
--- !u!114 &114724971171122394
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1833180120269200}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: -765806418, 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_Sprite: {fileID: 21300000, guid: 055458b32c82031478126740cfeff8b5, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
--- !u!114 &114919063098189450
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1139951423141390}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, 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_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
--- !u!222 &222075473477709852
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1413198682722408}
|
||||
--- !u!222 &222081351676312480
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1834623192137638}
|
||||
--- !u!222 &222275207357212224
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1517028828154570}
|
||||
--- !u!222 &222344931762645878
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1139951423141390}
|
||||
--- !u!222 &222638005538127372
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1833180120269200}
|
||||
--- !u!222 &222923875980758866
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1628068555195924}
|
||||
--- !u!224 &224071350919014634
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1107111830421828}
|
||||
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: 224983412324041764}
|
||||
- {fileID: 224893986903018272}
|
||||
- {fileID: 224385032750109242}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 400, y: 0}
|
||||
m_SizeDelta: {x: 800, y: 32}
|
||||
m_Pivot: {x: 0.5, y: 1}
|
||||
--- !u!224 &224227189929529224
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1139951423141390}
|
||||
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: 224816900147619396}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 10, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!224 &224377334100768974
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1517028828154570}
|
||||
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: 224385032750109242}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0.5}
|
||||
m_AnchorMax: {x: 1, y: 0.5}
|
||||
m_AnchoredPosition: {x: -200, y: 0}
|
||||
m_SizeDelta: {x: 160, y: 30}
|
||||
m_Pivot: {x: 1, y: 0.5}
|
||||
--- !u!224 &224385032750109242
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1808095574223976}
|
||||
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: 224553972546966500}
|
||||
- {fileID: 224377334100768974}
|
||||
m_Father: {fileID: 224071350919014634}
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0.5}
|
||||
m_AnchorMax: {x: 1, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 200, y: 100}
|
||||
m_Pivot: {x: 1, y: 0.5}
|
||||
--- !u!224 &224546690503720970
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1413198682722408}
|
||||
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: 224553972546966500}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0.25}
|
||||
m_AnchorMax: {x: 1, y: 0.75}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!224 &224553972546966500
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1901206927847060}
|
||||
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: 224546690503720970}
|
||||
- {fileID: 224816900147619396}
|
||||
- {fileID: 224814641392286240}
|
||||
m_Father: {fileID: 224385032750109242}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 1, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 20}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!224 &224814641392286240
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1318945307031904}
|
||||
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: 224945133068169140}
|
||||
m_Father: {fileID: 224553972546966500}
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: -20, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!224 &224816900147619396
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1312094375265670}
|
||||
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: 224227189929529224}
|
||||
m_Father: {fileID: 224553972546966500}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0.25}
|
||||
m_AnchorMax: {x: 1, y: 0.75}
|
||||
m_AnchoredPosition: {x: -5, y: 0}
|
||||
m_SizeDelta: {x: -20, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!224 &224893986903018272
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1628068555195924}
|
||||
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: 224071350919014634}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 50, y: 0}
|
||||
m_SizeDelta: {x: 290, y: 32}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!224 &224945133068169140
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1834623192137638}
|
||||
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: 224814641392286240}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 20, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!224 &224983412324041764
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1833180120269200}
|
||||
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: 224071350919014634}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 16, y: -16}
|
||||
m_SizeDelta: {x: 32, y: 32}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f38c259b43d815c4bbf8ab644dad2bfc
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 100100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 68d1999e77809664ab4e058635090f3c
|
||||
timeCreated: 1535018373
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,449 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !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: 1161699429745888}
|
||||
m_IsPrefabParent: 1
|
||||
--- !u!1 &1001953700486054
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 224158050893942018}
|
||||
- component: {fileID: 222478993685407188}
|
||||
- component: {fileID: 114270724816556340}
|
||||
- component: {fileID: 114286843222546754}
|
||||
m_Layer: 5
|
||||
m_Name: Input Level Warning
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &1161699429745888
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 224489872745892352}
|
||||
- component: {fileID: 114139542632285958}
|
||||
m_Layer: 5
|
||||
m_Name: Stats Bar
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &1191231590210334
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 224267040942519150}
|
||||
- component: {fileID: 222580725540642600}
|
||||
- component: {fileID: 114976105909052158}
|
||||
- component: {fileID: 114420254180983594}
|
||||
m_Layer: 5
|
||||
m_Name: PacketLoss
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &1475438673684016
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 224614481541782352}
|
||||
- component: {fileID: 222141929655037062}
|
||||
- component: {fileID: 114466107203999976}
|
||||
- component: {fileID: 114867729465388470}
|
||||
m_Layer: 5
|
||||
m_Name: RTT
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &1666940076194746
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
serializedVersion: 5
|
||||
m_Component:
|
||||
- component: {fileID: 224311553418378070}
|
||||
- component: {fileID: 222397411457813658}
|
||||
- component: {fileID: 114947142590498966}
|
||||
- component: {fileID: 114407788636789292}
|
||||
m_Layer: 5
|
||||
m_Name: Variation
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &114139542632285958
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1161699429745888}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: -405508275, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Padding:
|
||||
m_Left: 0
|
||||
m_Right: 0
|
||||
m_Top: 0
|
||||
m_Bottom: 0
|
||||
m_ChildAlignment: 0
|
||||
m_Spacing: 0
|
||||
m_ChildForceExpandWidth: 1
|
||||
m_ChildForceExpandHeight: 1
|
||||
m_ChildControlWidth: 1
|
||||
m_ChildControlHeight: 0
|
||||
--- !u!114 &114270724816556340
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1001953700486054}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 12800000, guid: 1c24caf2cf8ad3f4d97b3ed7b7749c28, type: 3}
|
||||
m_FontSize: 18
|
||||
m_FontStyle: 0
|
||||
m_BestFit: 1
|
||||
m_MinSize: 1
|
||||
m_MaxSize: 28
|
||||
m_Alignment: 4
|
||||
m_AlignByGeometry: 0
|
||||
m_RichText: 1
|
||||
m_HorizontalOverflow: 0
|
||||
m_VerticalOverflow: 1
|
||||
m_LineSpacing: 1
|
||||
m_Text:
|
||||
--- !u!114 &114286843222546754
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1001953700486054}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreLayout: 0
|
||||
m_MinWidth: -1
|
||||
m_MinHeight: 30
|
||||
m_PreferredWidth: -1
|
||||
m_PreferredHeight: 30
|
||||
m_FlexibleWidth: -1
|
||||
m_FlexibleHeight: -1
|
||||
m_LayoutPriority: 1
|
||||
--- !u!114 &114407788636789292
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1666940076194746}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreLayout: 0
|
||||
m_MinWidth: -1
|
||||
m_MinHeight: 30
|
||||
m_PreferredWidth: -1
|
||||
m_PreferredHeight: 30
|
||||
m_FlexibleWidth: -1
|
||||
m_FlexibleHeight: -1
|
||||
m_LayoutPriority: 1
|
||||
--- !u!114 &114420254180983594
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1191231590210334}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreLayout: 0
|
||||
m_MinWidth: -1
|
||||
m_MinHeight: 30
|
||||
m_PreferredWidth: -1
|
||||
m_PreferredHeight: 30
|
||||
m_FlexibleWidth: -1
|
||||
m_FlexibleHeight: -1
|
||||
m_LayoutPriority: 1
|
||||
--- !u!114 &114466107203999976
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1475438673684016}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 12800000, guid: 1c24caf2cf8ad3f4d97b3ed7b7749c28, type: 3}
|
||||
m_FontSize: 18
|
||||
m_FontStyle: 0
|
||||
m_BestFit: 1
|
||||
m_MinSize: 1
|
||||
m_MaxSize: 28
|
||||
m_Alignment: 4
|
||||
m_AlignByGeometry: 0
|
||||
m_RichText: 1
|
||||
m_HorizontalOverflow: 0
|
||||
m_VerticalOverflow: 1
|
||||
m_LineSpacing: 1
|
||||
m_Text: RTT
|
||||
--- !u!114 &114867729465388470
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1475438673684016}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreLayout: 0
|
||||
m_MinWidth: -1
|
||||
m_MinHeight: 30
|
||||
m_PreferredWidth: -1
|
||||
m_PreferredHeight: 30
|
||||
m_FlexibleWidth: -1
|
||||
m_FlexibleHeight: -1
|
||||
m_LayoutPriority: 1
|
||||
--- !u!114 &114947142590498966
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1666940076194746}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 12800000, guid: 1c24caf2cf8ad3f4d97b3ed7b7749c28, type: 3}
|
||||
m_FontSize: 18
|
||||
m_FontStyle: 0
|
||||
m_BestFit: 1
|
||||
m_MinSize: 1
|
||||
m_MaxSize: 28
|
||||
m_Alignment: 4
|
||||
m_AlignByGeometry: 0
|
||||
m_RichText: 1
|
||||
m_HorizontalOverflow: 0
|
||||
m_VerticalOverflow: 1
|
||||
m_LineSpacing: 1
|
||||
m_Text: VAR
|
||||
--- !u!114 &114976105909052158
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1191231590210334}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 12800000, guid: 1c24caf2cf8ad3f4d97b3ed7b7749c28, type: 3}
|
||||
m_FontSize: 18
|
||||
m_FontStyle: 0
|
||||
m_BestFit: 1
|
||||
m_MinSize: 1
|
||||
m_MaxSize: 28
|
||||
m_Alignment: 4
|
||||
m_AlignByGeometry: 0
|
||||
m_RichText: 1
|
||||
m_HorizontalOverflow: 0
|
||||
m_VerticalOverflow: 1
|
||||
m_LineSpacing: 1
|
||||
m_Text: PacketLoss
|
||||
--- !u!222 &222141929655037062
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1475438673684016}
|
||||
--- !u!222 &222397411457813658
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1666940076194746}
|
||||
--- !u!222 &222478993685407188
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1001953700486054}
|
||||
--- !u!222 &222580725540642600
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1191231590210334}
|
||||
--- !u!224 &224158050893942018
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1001953700486054}
|
||||
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: 224489872745892352}
|
||||
m_RootOrder: 3
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 30}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!224 &224267040942519150
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1191231590210334}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.99999994, y: 0.99999994, z: 0.99999994}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 224489872745892352}
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 30}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!224 &224311553418378070
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1666940076194746}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.99999994, y: 0.99999994, z: 0.99999994}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 224489872745892352}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 30}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!224 &224489872745892352
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1161699429745888}
|
||||
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: 224614481541782352}
|
||||
- {fileID: 224311553418378070}
|
||||
- {fileID: 224267040942519150}
|
||||
- {fileID: 224158050893942018}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 30}
|
||||
m_Pivot: {x: 0.5, y: 0}
|
||||
--- !u!224 &224614481541782352
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 100100000}
|
||||
m_GameObject: {fileID: 1475438673684016}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.99999994, y: 0.99999994, z: 0.99999994}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 224489872745892352}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 30}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c4e00f6ba71484545bef17d11b0f1185
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 100100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b6e693e24c0dfa44094841a96168d92f
|
||||
folderAsset: yes
|
||||
timeCreated: 1535015784
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,203 @@
|
||||
Font data copyright Google 2012
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d885444fcbcff8441a020461620e620b
|
||||
timeCreated: 1535015787
|
||||
licenseType: Store
|
||||
TextScriptImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,25 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aace1d6711bf8104d87562bd81d1819d
|
||||
timeCreated: 1535015788
|
||||
licenseType: Store
|
||||
TrueTypeFontImporter:
|
||||
serializedVersion: 4
|
||||
fontSize: 16
|
||||
forceTextureCase: -2
|
||||
characterSpacing: 0
|
||||
characterPadding: 1
|
||||
includeFontData: 1
|
||||
fontName: Roboto Condensed
|
||||
fontNames:
|
||||
- Roboto Condensed
|
||||
fallbackFontReferences:
|
||||
- {fileID: 12800000, guid: 3839124237278cc4e8479a9eb2d31060, type: 3}
|
||||
- {fileID: 12800000, guid: 2cbbfa82012ba5d4ab2dcedcf845dd0d, type: 3}
|
||||
- {fileID: 12800000, guid: 1c24caf2cf8ad3f4d97b3ed7b7749c28, type: 3}
|
||||
- {fileID: 12800000, guid: 258b59f93225802478005dba1e695e1f, type: 3}
|
||||
customCharacters:
|
||||
fontRenderingMode: 0
|
||||
ascentCalculationMode: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,23 @@
|
||||
fileFormatVersion: 2
|
||||
guid: defa0bab941d7f044acf393273e7c3de
|
||||
timeCreated: 1535015952
|
||||
licenseType: Store
|
||||
TrueTypeFontImporter:
|
||||
serializedVersion: 4
|
||||
fontSize: 16
|
||||
forceTextureCase: -2
|
||||
characterSpacing: 0
|
||||
characterPadding: 1
|
||||
includeFontData: 1
|
||||
fontName: Roboto Condensed
|
||||
fontNames:
|
||||
- Roboto Condensed
|
||||
fallbackFontReferences:
|
||||
- {fileID: 12800000, guid: 1c24caf2cf8ad3f4d97b3ed7b7749c28, type: 3}
|
||||
- {fileID: 12800000, guid: aace1d6711bf8104d87562bd81d1819d, type: 3}
|
||||
customCharacters:
|
||||
fontRenderingMode: 0
|
||||
ascentCalculationMode: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,21 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1c24caf2cf8ad3f4d97b3ed7b7749c28
|
||||
timeCreated: 1535015787
|
||||
licenseType: Store
|
||||
TrueTypeFontImporter:
|
||||
serializedVersion: 4
|
||||
fontSize: 16
|
||||
forceTextureCase: -2
|
||||
characterSpacing: 0
|
||||
characterPadding: 1
|
||||
includeFontData: 1
|
||||
fontName: Roboto Condensed
|
||||
fontNames:
|
||||
- Roboto Condensed
|
||||
fallbackFontReferences: []
|
||||
customCharacters:
|
||||
fontRenderingMode: 0
|
||||
ascentCalculationMode: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Scripts.meta
Normal file
8
Assets/Photon/PhotonVoice/Demos/DemoVoiceUI/Scripts.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9bbd4fae690fad143aad89abda88ea11
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,34 @@
|
||||
namespace Photon.Voice.Unity.Demos
|
||||
{
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class BackgroundMusicController : MonoBehaviour
|
||||
{
|
||||
#pragma warning disable 649
|
||||
[SerializeField]
|
||||
private Text volumeText;
|
||||
[SerializeField]
|
||||
private Slider volumeSlider;
|
||||
[SerializeField]
|
||||
private AudioSource audioSource;
|
||||
[SerializeField]
|
||||
private float initialVolume = 0.125f;
|
||||
#pragma warning restore 649
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
this.volumeSlider.minValue = 0f;
|
||||
this.volumeSlider.maxValue = 1f;
|
||||
this.volumeSlider.SetSingleOnValueChangedCallback(this.OnVolumeChanged);
|
||||
this.volumeSlider.value = this.initialVolume;
|
||||
this.OnVolumeChanged(this.initialVolume);
|
||||
}
|
||||
|
||||
private void OnVolumeChanged(float newValue)
|
||||
{
|
||||
this.volumeText.text = string.Format("BG Volume: {0:0.###}", newValue);
|
||||
this.audioSource.volume = newValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aec32561f997fa94cb5db680ffee8c5e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,194 @@
|
||||
namespace Photon.Voice.Unity.Demos.DemoVoiceUI
|
||||
{
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using System.Collections.Generic;
|
||||
using POpusCodec.Enums;
|
||||
|
||||
public class CodecSettingsUI : MonoBehaviour
|
||||
{
|
||||
#pragma warning disable 649
|
||||
[SerializeField]
|
||||
private Dropdown frameDurationDropdown;
|
||||
[SerializeField]
|
||||
private Dropdown samplingRateDropdown;
|
||||
[SerializeField]
|
||||
private InputField bitrateInputField;
|
||||
[SerializeField]
|
||||
private Recorder recorder;
|
||||
#pragma warning restore 649
|
||||
|
||||
private static readonly List<string> frameDurationOptions = new List<string>
|
||||
{
|
||||
"2.5ms", // EnumValueToString(OpusCodec.FrameDuration.Frame2dot5ms),
|
||||
"5ms", // EnumValueToString(OpusCodec.FrameDuration.Frame5ms),
|
||||
"10ms", // EnumValueToString(OpusCodec.FrameDuration.Frame10ms),
|
||||
"20ms", // EnumValueToString( OpusCodec.FrameDuration.Frame20ms),
|
||||
"40ms", // EnumValueToString(OpusCodec.FrameDuration.Frame40ms),
|
||||
"60ms" // EnumValueToString(OpusCodec.FrameDuration.Frame60ms)
|
||||
};
|
||||
|
||||
private static readonly List<string> samplingRateOptions = new List<string>
|
||||
{
|
||||
"8kHz", // EnumValueToString(SamplingRate.Sampling08000),
|
||||
"12kHz", // EnumValueToString(SamplingRate.Sampling12000),
|
||||
"16kHz", // EnumValueToString(SamplingRate.Sampling16000),
|
||||
"24kHz", // EnumValueToString(SamplingRate.Sampling24000),
|
||||
"48kHz", // EnumValueToString(SamplingRate.Sampling48000)
|
||||
};
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
this.frameDurationDropdown.ClearOptions();
|
||||
this.frameDurationDropdown.AddOptions(frameDurationOptions);
|
||||
this.InitFrameDuration();
|
||||
this.frameDurationDropdown.SetSingleOnValueChangedCallback(this.OnFrameDurationChanged);
|
||||
|
||||
this.samplingRateDropdown.ClearOptions();
|
||||
this.samplingRateDropdown.AddOptions(samplingRateOptions);
|
||||
this.InitSamplingRate();
|
||||
this.samplingRateDropdown.SetSingleOnValueChangedCallback(this.OnSamplingRateChanged);
|
||||
|
||||
this.bitrateInputField.SetSingleOnValueChangedCallback(this.OnBitrateChanged);
|
||||
this.InitBitrate();
|
||||
}
|
||||
|
||||
#region UNITY_EDITOR
|
||||
|
||||
private void Update()
|
||||
{
|
||||
this.InitFrameDuration();
|
||||
this.InitSamplingRate();
|
||||
this.InitBitrate();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private void OnBitrateChanged(string newBitrateString)
|
||||
{
|
||||
int newBirate;
|
||||
if (int.TryParse(newBitrateString, out newBirate))
|
||||
{
|
||||
this.recorder.Bitrate = newBirate;
|
||||
if (this.recorder.RequiresRestart)
|
||||
{
|
||||
this.recorder.RestartRecording();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnFrameDurationChanged(int index)
|
||||
{
|
||||
OpusCodec.FrameDuration newFrameDuration = this.recorder.FrameDuration;
|
||||
switch (index)
|
||||
{
|
||||
case 0:
|
||||
newFrameDuration = OpusCodec.FrameDuration.Frame2dot5ms;
|
||||
break;
|
||||
case 1:
|
||||
newFrameDuration = OpusCodec.FrameDuration.Frame5ms;
|
||||
break;
|
||||
case 2:
|
||||
newFrameDuration = OpusCodec.FrameDuration.Frame10ms;
|
||||
break;
|
||||
case 3:
|
||||
newFrameDuration = OpusCodec.FrameDuration.Frame20ms;
|
||||
break;
|
||||
case 4:
|
||||
newFrameDuration = OpusCodec.FrameDuration.Frame40ms;
|
||||
break;
|
||||
case 5:
|
||||
newFrameDuration = OpusCodec.FrameDuration.Frame60ms;
|
||||
break;
|
||||
}
|
||||
this.recorder.FrameDuration = newFrameDuration;
|
||||
if (this.recorder.RequiresRestart)
|
||||
{
|
||||
this.recorder.RestartRecording();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnSamplingRateChanged(int index)
|
||||
{
|
||||
SamplingRate newSamplingRate = this.recorder.SamplingRate;
|
||||
switch (index)
|
||||
{
|
||||
case 0:
|
||||
newSamplingRate = SamplingRate.Sampling08000;
|
||||
break;
|
||||
case 1:
|
||||
newSamplingRate = SamplingRate.Sampling12000;
|
||||
break;
|
||||
case 2:
|
||||
newSamplingRate = SamplingRate.Sampling16000;
|
||||
break;
|
||||
case 3:
|
||||
newSamplingRate = SamplingRate.Sampling24000;
|
||||
break;
|
||||
case 4:
|
||||
newSamplingRate = SamplingRate.Sampling48000;
|
||||
break;
|
||||
}
|
||||
this.recorder.SamplingRate = newSamplingRate;
|
||||
if (this.recorder.RequiresRestart)
|
||||
{
|
||||
this.recorder.RestartRecording();
|
||||
}
|
||||
}
|
||||
|
||||
private void InitFrameDuration()
|
||||
{
|
||||
int index = 0;
|
||||
switch (this.recorder.FrameDuration)
|
||||
{
|
||||
case OpusCodec.FrameDuration.Frame5ms:
|
||||
index = 1;
|
||||
break;
|
||||
case OpusCodec.FrameDuration.Frame10ms:
|
||||
index = 2;
|
||||
break;
|
||||
case OpusCodec.FrameDuration.Frame20ms:
|
||||
index = 3;
|
||||
break;
|
||||
case OpusCodec.FrameDuration.Frame40ms:
|
||||
index = 4;
|
||||
break;
|
||||
case OpusCodec.FrameDuration.Frame60ms:
|
||||
index = 5;
|
||||
break;
|
||||
}
|
||||
this.frameDurationDropdown.value = index;
|
||||
}
|
||||
|
||||
private void InitSamplingRate()
|
||||
{
|
||||
int index = 0;
|
||||
switch (this.recorder.SamplingRate)
|
||||
{
|
||||
case SamplingRate.Sampling12000:
|
||||
index = 1;
|
||||
break;
|
||||
case SamplingRate.Sampling16000:
|
||||
index = 2;
|
||||
break;
|
||||
case SamplingRate.Sampling24000:
|
||||
index = 3;
|
||||
break;
|
||||
case SamplingRate.Sampling48000:
|
||||
index = 4;
|
||||
break;
|
||||
}
|
||||
this.samplingRateDropdown.value = index;
|
||||
}
|
||||
|
||||
private void InitBitrate()
|
||||
{
|
||||
this.bitrateInputField.text = this.recorder.Bitrate.ToString();
|
||||
}
|
||||
|
||||
//private static string EnumValueToString(object enumValue)
|
||||
//{
|
||||
// return Enum.GetName(enumValue.GetType(), enumValue);
|
||||
//}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 28f4b5ea592c07a46923a0bda48b14b1
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,667 @@
|
||||
#if UNITY_EDITOR_WIN || UNITY_EDITOR_OSX || !UNITY_EDITOR && (UNITY_IOS || UNITY_ANDROID || UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX)
|
||||
#define WEBRTC_AUDIO_DSP_SUPPORTED
|
||||
#endif
|
||||
|
||||
namespace Photon.Voice.Unity.Demos.DemoVoiceUI
|
||||
{
|
||||
using System.Collections.Generic;
|
||||
using Realtime;
|
||||
using ExitGames.Client.Photon;
|
||||
using UtilityScripts;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
[RequireComponent(typeof(VoiceConnection), typeof(ConnectAndJoin))]
|
||||
public class DemoVoiceUI : MonoBehaviour, IInRoomCallbacks, IMatchmakingCallbacks
|
||||
{
|
||||
#pragma warning disable 649
|
||||
[SerializeField]
|
||||
private Text connectionStatusText;
|
||||
|
||||
[SerializeField]
|
||||
private Text serverStatusText;
|
||||
|
||||
[SerializeField]
|
||||
private Text roomStatusText;
|
||||
|
||||
[SerializeField]
|
||||
private Text inputWarningText;
|
||||
|
||||
[SerializeField]
|
||||
private Text rttText;
|
||||
|
||||
[SerializeField]
|
||||
private Text rttVariationText;
|
||||
|
||||
[SerializeField]
|
||||
private Text packetLossWarningText;
|
||||
|
||||
[SerializeField]
|
||||
private InputField localNicknameText;
|
||||
|
||||
[SerializeField]
|
||||
private Toggle debugEchoToggle;
|
||||
|
||||
[SerializeField]
|
||||
private Toggle reliableTransmissionToggle;
|
||||
|
||||
[SerializeField]
|
||||
private Toggle encryptionToggle;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject webRtcDspGameObject;
|
||||
|
||||
[SerializeField]
|
||||
private Toggle aecToggle;
|
||||
|
||||
[SerializeField]
|
||||
private Toggle aecHighPassToggle;
|
||||
|
||||
[SerializeField]
|
||||
private InputField reverseStreamDelayInputField;
|
||||
|
||||
[SerializeField]
|
||||
private Toggle noiseSuppressionToggle;
|
||||
|
||||
[SerializeField]
|
||||
private Toggle agcToggle;
|
||||
|
||||
[SerializeField]
|
||||
private Slider agcCompressionGainSlider;
|
||||
|
||||
[SerializeField]
|
||||
private Toggle vadToggle;
|
||||
|
||||
[SerializeField]
|
||||
private Toggle muteToggle;
|
||||
|
||||
[SerializeField]
|
||||
private Toggle streamAudioClipToggle;
|
||||
|
||||
[SerializeField]
|
||||
private Toggle audioToneToggle;
|
||||
|
||||
[SerializeField]
|
||||
private Toggle dspToggle;
|
||||
|
||||
[SerializeField]
|
||||
private Toggle highPassToggle;
|
||||
|
||||
[SerializeField]
|
||||
private Toggle photonVadToggle;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject microphoneSetupGameObject;
|
||||
|
||||
[SerializeField]
|
||||
private bool defaultTransmitEnabled = false;
|
||||
|
||||
[SerializeField]
|
||||
private int screenWidth = 800;
|
||||
|
||||
[SerializeField]
|
||||
private int screenHeight = 600;
|
||||
|
||||
[SerializeField]
|
||||
private bool fullScreen;
|
||||
|
||||
[SerializeField]
|
||||
private InputField roomNameInputField;
|
||||
|
||||
[SerializeField]
|
||||
private InputField globalMinDelaySoftInputField;
|
||||
|
||||
[SerializeField]
|
||||
private InputField globalMaxDelaySoftInputField;
|
||||
|
||||
[SerializeField]
|
||||
private InputField globalMaxDelayHardInputField;
|
||||
|
||||
[SerializeField]
|
||||
private int rttYellowThreshold = 100;
|
||||
|
||||
[SerializeField]
|
||||
private int rttRedThreshold = 160;
|
||||
|
||||
[SerializeField]
|
||||
private int rttVariationYellowThreshold = 25;
|
||||
|
||||
[SerializeField]
|
||||
private int rttVariationRedThreshold = 50;
|
||||
#pragma warning restore 649
|
||||
|
||||
private GameObject compressionGainGameObject;
|
||||
private Text compressionGainText;
|
||||
|
||||
private GameObject aecOptionsGameObject;
|
||||
|
||||
public Transform RemoteVoicesPanel;
|
||||
|
||||
protected VoiceConnection voiceConnection;
|
||||
private WebRtcAudioDsp voiceAudioPreprocessor;
|
||||
private ConnectAndJoin connectAndJoin;
|
||||
|
||||
private readonly Color warningColor = new Color(0.9f,0.5f,0f,1f);
|
||||
private readonly Color okColor = new Color(0.0f,0.6f,0.2f,1f);
|
||||
private readonly Color redColor = new Color(1.0f,0.0f,0.0f,1f);
|
||||
private readonly Color defaultColor = new Color(0.0f,0.0f,0.0f,1f);
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
Screen.SetResolution(this.screenWidth, this.screenHeight, this.fullScreen);
|
||||
this.connectAndJoin = this.GetComponent<ConnectAndJoin>();
|
||||
this.voiceConnection = this.GetComponent<VoiceConnection>();
|
||||
this.voiceAudioPreprocessor = this.voiceConnection.PrimaryRecorder.GetComponent<WebRtcAudioDsp>();
|
||||
this.compressionGainGameObject = this.agcCompressionGainSlider.transform.parent.gameObject;
|
||||
this.compressionGainText = this.compressionGainGameObject.GetComponentInChildren<Text>();
|
||||
this.aecOptionsGameObject = this.aecHighPassToggle.transform.parent.gameObject;
|
||||
this.SetDefaults();
|
||||
this.InitUiCallbacks();
|
||||
this.InitUiValues();
|
||||
this.GetSavedNickname();
|
||||
}
|
||||
|
||||
protected virtual void SetDefaults()
|
||||
{
|
||||
this.muteToggle.isOn = !this.defaultTransmitEnabled;
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
this.voiceConnection.SpeakerLinked += this.OnSpeakerCreated;
|
||||
this.voiceConnection.Client.AddCallbackTarget(this);
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
this.voiceConnection.SpeakerLinked -= this.OnSpeakerCreated;
|
||||
this.voiceConnection.Client.RemoveCallbackTarget(this);
|
||||
}
|
||||
|
||||
private void GetSavedNickname()
|
||||
{
|
||||
string savedNick = PlayerPrefs.GetString("vNick");
|
||||
if (!string.IsNullOrEmpty(savedNick))
|
||||
{
|
||||
//Debug.LogFormat("Saved nick = {0}", savedNick);
|
||||
this.localNicknameText.text = savedNick;
|
||||
this.voiceConnection.Client.NickName = savedNick;
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void OnSpeakerCreated(Speaker speaker)
|
||||
{
|
||||
speaker.gameObject.transform.SetParent(this.RemoteVoicesPanel, false);
|
||||
RemoteSpeakerUI remoteSpeakerUi = speaker.GetComponent<RemoteSpeakerUI>();
|
||||
remoteSpeakerUi.Init(this.voiceConnection);
|
||||
speaker.OnRemoteVoiceRemoveAction += this.OnRemoteVoiceRemove;
|
||||
}
|
||||
|
||||
private void OnRemoteVoiceRemove(Speaker speaker)
|
||||
{
|
||||
if (speaker != null)
|
||||
{
|
||||
Destroy(speaker.gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
private void ToggleMute(bool isOn) // transmit is used as opposite of mute...
|
||||
{
|
||||
this.muteToggle.targetGraphic.enabled = !isOn;
|
||||
if (isOn)
|
||||
{
|
||||
this.voiceConnection.Client.LocalPlayer.Mute();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.voiceConnection.Client.LocalPlayer.Unmute();
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void ToggleIsRecording(bool isRecording)
|
||||
{
|
||||
this.voiceConnection.PrimaryRecorder.IsRecording = isRecording;
|
||||
}
|
||||
|
||||
private void ToggleDebugEcho(bool isOn)
|
||||
{
|
||||
this.voiceConnection.PrimaryRecorder.DebugEchoMode = isOn;
|
||||
}
|
||||
|
||||
private void ToggleReliable(bool isOn)
|
||||
{
|
||||
this.voiceConnection.PrimaryRecorder.ReliableMode = isOn;
|
||||
}
|
||||
|
||||
private void ToggleEncryption(bool isOn)
|
||||
{
|
||||
this.voiceConnection.PrimaryRecorder.Encrypt = isOn;
|
||||
}
|
||||
|
||||
private void ToggleAEC(bool isOn)
|
||||
{
|
||||
this.voiceAudioPreprocessor.AEC = isOn;
|
||||
this.aecOptionsGameObject.SetActive(isOn);
|
||||
}
|
||||
|
||||
private void ToggleNoiseSuppression(bool isOn)
|
||||
{
|
||||
this.voiceAudioPreprocessor.NoiseSuppression = isOn;
|
||||
}
|
||||
|
||||
private void ToggleAGC(bool isOn)
|
||||
{
|
||||
this.voiceAudioPreprocessor.AGC = isOn;
|
||||
this.compressionGainGameObject.SetActive(isOn);
|
||||
}
|
||||
|
||||
private void ToggleVAD(bool isOn)
|
||||
{
|
||||
this.voiceAudioPreprocessor.VAD = isOn;
|
||||
}
|
||||
|
||||
private void ToggleHighPass(bool isOn)
|
||||
{
|
||||
this.voiceAudioPreprocessor.HighPass = isOn;
|
||||
}
|
||||
|
||||
private void ToggleDsp(bool isOn)
|
||||
{
|
||||
this.voiceAudioPreprocessor.Bypass = !isOn;
|
||||
this.voiceAudioPreprocessor.enabled = isOn;
|
||||
this.webRtcDspGameObject.SetActive(isOn);
|
||||
}
|
||||
|
||||
private void ToggleAudioClipStreaming(bool isOn)
|
||||
{
|
||||
this.microphoneSetupGameObject.SetActive(!isOn && !this.audioToneToggle.isOn);
|
||||
if (isOn)
|
||||
{
|
||||
this.audioToneToggle.SetValue(false);
|
||||
this.voiceConnection.PrimaryRecorder.SourceType = Recorder.InputSourceType.AudioClip;
|
||||
}
|
||||
else if (!this.audioToneToggle.isOn)
|
||||
{
|
||||
this.voiceConnection.PrimaryRecorder.SourceType = Recorder.InputSourceType.Microphone;
|
||||
}
|
||||
if (this.voiceConnection.PrimaryRecorder.RequiresRestart)
|
||||
{
|
||||
this.voiceConnection.PrimaryRecorder.RestartRecording();
|
||||
}
|
||||
}
|
||||
|
||||
private void ToggleAudioToneFactory(bool isOn)
|
||||
{
|
||||
this.microphoneSetupGameObject.SetActive(!isOn && !this.streamAudioClipToggle.isOn);
|
||||
if (isOn)
|
||||
{
|
||||
this.streamAudioClipToggle.SetValue(false);
|
||||
this.dspToggle.isOn = false;
|
||||
this.voiceConnection.PrimaryRecorder.InputFactory = () => new AudioUtil.ToneAudioReader<float>();
|
||||
this.voiceConnection.PrimaryRecorder.SourceType = Recorder.InputSourceType.Factory;
|
||||
}
|
||||
else if (!this.streamAudioClipToggle.isOn)
|
||||
{
|
||||
this.voiceConnection.PrimaryRecorder.SourceType = Recorder.InputSourceType.Microphone;
|
||||
}
|
||||
if (this.voiceConnection.PrimaryRecorder.RequiresRestart)
|
||||
{
|
||||
this.voiceConnection.PrimaryRecorder.RestartRecording();
|
||||
}
|
||||
}
|
||||
|
||||
private void TogglePhotonVAD(bool isOn)
|
||||
{
|
||||
this.voiceConnection.PrimaryRecorder.VoiceDetection = isOn;
|
||||
}
|
||||
|
||||
private void ToggleAecHighPass(bool isOn)
|
||||
{
|
||||
this.voiceAudioPreprocessor.AecHighPass = isOn;
|
||||
}
|
||||
|
||||
private void OnAgcCompressionGainChanged(float agcCompressionGain)
|
||||
{
|
||||
this.voiceAudioPreprocessor.AgcCompressionGain = (int)agcCompressionGain;
|
||||
this.compressionGainText.text = string.Concat("Compression Gain: ", agcCompressionGain);
|
||||
}
|
||||
|
||||
private void OnGlobalPlaybackDelayMinSoftChanged(string newMinDelaySoftString)
|
||||
{
|
||||
int newMinDelaySoftValue;
|
||||
int newMaxDelaySoftValue = this.voiceConnection.GlobalPlaybackDelayMaxSoft;
|
||||
int newMaxDelayHardValue = this.voiceConnection.GlobalPlaybackDelayMaxHard;
|
||||
if (int.TryParse(newMinDelaySoftString, out newMinDelaySoftValue) && newMinDelaySoftValue >= 0 && newMinDelaySoftValue < newMaxDelaySoftValue)
|
||||
{
|
||||
this.voiceConnection.SetGlobalPlaybackDelaySettings(newMinDelaySoftValue, newMaxDelaySoftValue, newMaxDelayHardValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.globalMinDelaySoftInputField.text = this.voiceConnection.GlobalPlaybackDelayMinSoft.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnGlobalPlaybackDelayMaxSoftChanged(string newMaxDelaySoftString)
|
||||
{
|
||||
int newMinDelaySoftValue = this.voiceConnection.GlobalPlaybackDelayMinSoft;
|
||||
int newMaxDelaySoftValue;
|
||||
int newMaxDelayHardValue = this.voiceConnection.GlobalPlaybackDelayMaxHard;
|
||||
if (int.TryParse(newMaxDelaySoftString, out newMaxDelaySoftValue) && newMaxDelaySoftValue > newMinDelaySoftValue)
|
||||
{
|
||||
this.voiceConnection.SetGlobalPlaybackDelaySettings(newMinDelaySoftValue, newMaxDelaySoftValue, newMaxDelayHardValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.globalMaxDelaySoftInputField.text = this.voiceConnection.GlobalPlaybackDelayMaxSoft.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnGlobalPlaybackDelayMaxHardChanged(string newMaxDelayHardString)
|
||||
{
|
||||
int newMinDelaySoftValue = this.voiceConnection.GlobalPlaybackDelayMinSoft;
|
||||
int newMaxDelaySoftValue = this.voiceConnection.GlobalPlaybackDelayMaxSoft;
|
||||
int newMaxDelayHardValue;
|
||||
if (int.TryParse(newMaxDelayHardString, out newMaxDelayHardValue) && newMaxDelayHardValue >= newMaxDelaySoftValue)
|
||||
{
|
||||
this.voiceConnection.SetGlobalPlaybackDelaySettings(newMinDelaySoftValue, newMaxDelaySoftValue, newMaxDelayHardValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.globalMaxDelayHardInputField.text = this.voiceConnection.GlobalPlaybackDelayMaxHard.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnReverseStreamDelayChanged(string newReverseStreamString)
|
||||
{
|
||||
int newReverseStreamValue;
|
||||
if (int.TryParse(newReverseStreamString, out newReverseStreamValue) && newReverseStreamValue > 0)
|
||||
{
|
||||
this.voiceAudioPreprocessor.ReverseStreamDelayMs = newReverseStreamValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.reverseStreamDelayInputField.text = this.voiceAudioPreprocessor.ReverseStreamDelayMs.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateSyncedNickname(string nickname)
|
||||
{
|
||||
nickname = nickname.Trim();
|
||||
if (string.IsNullOrEmpty(nickname))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//Debug.LogFormat("UpdateSyncedNickname() name: {0}", nickname);
|
||||
this.voiceConnection.Client.LocalPlayer.NickName = nickname;
|
||||
PlayerPrefs.SetString("vNick", nickname);
|
||||
}
|
||||
|
||||
private void JoinOrCreateRoom(string roomName)
|
||||
{
|
||||
if (string.IsNullOrEmpty(roomName))
|
||||
{
|
||||
this.connectAndJoin.RoomName = string.Empty;
|
||||
this.connectAndJoin.RandomRoom = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.connectAndJoin.RoomName = roomName.Trim();
|
||||
this.connectAndJoin.RandomRoom = false;
|
||||
}
|
||||
if (this.voiceConnection.Client.InRoom)
|
||||
{
|
||||
this.voiceConnection.Client.OpLeaveRoom(false);
|
||||
}
|
||||
else if (!this.voiceConnection.Client.IsConnected)
|
||||
{
|
||||
this.voiceConnection.ConnectUsingSettings();
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void Update()
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
this.InitUiValues(); // refresh UI in case changed from Unity Editor
|
||||
#endif
|
||||
this.connectionStatusText.text = this.voiceConnection.Client.State.ToString();
|
||||
this.serverStatusText.text = string.Format("{0}/{1}", this.voiceConnection.Client.CloudRegion, this.voiceConnection.Client.CurrentServerAddress);
|
||||
if (this.voiceConnection.PrimaryRecorder.IsCurrentlyTransmitting)
|
||||
{
|
||||
var amplitude = this.voiceConnection.PrimaryRecorder.LevelMeter.CurrentAvgAmp;
|
||||
if (amplitude > 1)
|
||||
{
|
||||
amplitude /= (short.MaxValue + 1);
|
||||
}
|
||||
if (amplitude > 0.1)
|
||||
{
|
||||
this.inputWarningText.text = "Input too loud!";
|
||||
this.inputWarningText.color = this.warningColor;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.inputWarningText.text = string.Empty;
|
||||
this.ResetTextColor(this.inputWarningText);
|
||||
}
|
||||
}
|
||||
|
||||
if (this.voiceConnection.FramesReceivedPerSecond > 0)
|
||||
{
|
||||
this.packetLossWarningText.text = string.Format("{0:0.##}% Packet Loss", this.voiceConnection.FramesLostPercent);
|
||||
this.packetLossWarningText.color = this.voiceConnection.FramesLostPercent > 1 ? this.warningColor : this.okColor;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.packetLossWarningText.text = string.Empty;
|
||||
this.ResetTextColor(this.packetLossWarningText);
|
||||
}
|
||||
|
||||
this.rttText.text = string.Concat("RTT:", this.voiceConnection.Client.LoadBalancingPeer.RoundTripTime);
|
||||
this.SetTextColor(this.voiceConnection.Client.LoadBalancingPeer.RoundTripTime, this.rttText, this.rttYellowThreshold, this.rttRedThreshold);
|
||||
this.rttVariationText.text = string.Concat("VAR:", this.voiceConnection.Client.LoadBalancingPeer.RoundTripTimeVariance);
|
||||
this.SetTextColor(this.voiceConnection.Client.LoadBalancingPeer.RoundTripTimeVariance, this.rttVariationText, this.rttVariationYellowThreshold, this.rttVariationRedThreshold);
|
||||
}
|
||||
|
||||
private void SetTextColor(int textValue, Text text, int yellowThreshold, int redThreshold)
|
||||
{
|
||||
if (textValue > redThreshold)
|
||||
{
|
||||
text.color = this.redColor;
|
||||
}
|
||||
else if (textValue > yellowThreshold)
|
||||
{
|
||||
text.color = this.warningColor;
|
||||
}
|
||||
else
|
||||
{
|
||||
text.color = this.okColor;
|
||||
}
|
||||
}
|
||||
|
||||
private void ResetTextColor(Text text)
|
||||
{
|
||||
text.color = this.defaultColor;
|
||||
}
|
||||
|
||||
private void InitUiCallbacks()
|
||||
{
|
||||
this.muteToggle.SetSingleOnValueChangedCallback(this.ToggleMute);
|
||||
this.debugEchoToggle.SetSingleOnValueChangedCallback(this.ToggleDebugEcho);
|
||||
this.vadToggle.SetSingleOnValueChangedCallback(this.ToggleVAD);
|
||||
this.aecToggle.SetSingleOnValueChangedCallback(this.ToggleAEC);
|
||||
this.agcToggle.SetSingleOnValueChangedCallback(this.ToggleAGC);
|
||||
this.debugEchoToggle.SetSingleOnValueChangedCallback(this.ToggleDebugEcho);
|
||||
this.dspToggle.SetSingleOnValueChangedCallback(this.ToggleDsp);
|
||||
this.highPassToggle.SetSingleOnValueChangedCallback(this.ToggleHighPass);
|
||||
this.encryptionToggle.SetSingleOnValueChangedCallback(this.ToggleEncryption);
|
||||
this.reliableTransmissionToggle.SetSingleOnValueChangedCallback(this.ToggleReliable);
|
||||
this.streamAudioClipToggle.SetSingleOnValueChangedCallback(this.ToggleAudioClipStreaming);
|
||||
this.photonVadToggle.SetSingleOnValueChangedCallback(this.TogglePhotonVAD);
|
||||
this.aecHighPassToggle.SetSingleOnValueChangedCallback(this.ToggleAecHighPass);
|
||||
this.noiseSuppressionToggle.SetSingleOnValueChangedCallback(this.ToggleNoiseSuppression);
|
||||
this.audioToneToggle.SetSingleOnValueChangedCallback(this.ToggleAudioToneFactory);
|
||||
|
||||
this.agcCompressionGainSlider.SetSingleOnValueChangedCallback(this.OnAgcCompressionGainChanged);
|
||||
|
||||
this.localNicknameText.SetSingleOnEndEditCallback(this.UpdateSyncedNickname);
|
||||
|
||||
this.roomNameInputField.SetSingleOnEndEditCallback(this.JoinOrCreateRoom);
|
||||
|
||||
#if UNITY_EDITOR
|
||||
this.globalMinDelaySoftInputField.SetSingleOnValueChangedCallback(this.OnGlobalPlaybackDelayMinSoftChanged);
|
||||
this.globalMaxDelaySoftInputField.SetSingleOnValueChangedCallback(this.OnGlobalPlaybackDelayMaxSoftChanged);
|
||||
this.globalMaxDelayHardInputField.SetSingleOnValueChangedCallback(this.OnGlobalPlaybackDelayMaxHardChanged);
|
||||
|
||||
this.reverseStreamDelayInputField.SetSingleOnValueChangedCallback(this.OnReverseStreamDelayChanged);
|
||||
#else
|
||||
this.globalMinDelaySoftInputField.SetSingleOnEndEditCallback(this.OnGlobalPlaybackDelayMinSoftChanged);
|
||||
this.globalMaxDelaySoftInputField.SetSingleOnEndEditCallback(this.OnGlobalPlaybackDelayMaxSoftChanged);
|
||||
this.globalMaxDelayHardInputField.SetSingleOnEndEditCallback(this.OnGlobalPlaybackDelayMaxHardChanged);
|
||||
|
||||
this.reverseStreamDelayInputField.SetSingleOnEndEditCallback(this.OnReverseStreamDelayChanged);
|
||||
#endif
|
||||
}
|
||||
|
||||
private void InitUiValues()
|
||||
{
|
||||
this.muteToggle.SetValue(this.voiceConnection.Client.LocalPlayer.IsMuted());
|
||||
this.debugEchoToggle.SetValue(this.voiceConnection.PrimaryRecorder.DebugEchoMode);
|
||||
this.reliableTransmissionToggle.SetValue(this.voiceConnection.PrimaryRecorder.ReliableMode);
|
||||
this.encryptionToggle.SetValue(this.voiceConnection.PrimaryRecorder.Encrypt);
|
||||
this.streamAudioClipToggle.SetValue(this.voiceConnection.PrimaryRecorder.SourceType ==
|
||||
Recorder.InputSourceType.AudioClip);
|
||||
this.audioToneToggle.SetValue(this.voiceConnection.PrimaryRecorder.SourceType == Recorder.InputSourceType.Factory);
|
||||
this.microphoneSetupGameObject.SetActive(!this.streamAudioClipToggle.isOn && !this.audioToneToggle.isOn);
|
||||
this.globalMinDelaySoftInputField.SetValue(this.voiceConnection.GlobalPlaybackDelayMinSoft.ToString());
|
||||
this.globalMaxDelaySoftInputField.SetValue(this.voiceConnection.GlobalPlaybackDelayMaxSoft.ToString());
|
||||
this.globalMaxDelayHardInputField.SetValue(this.voiceConnection.GlobalPlaybackDelayMaxHard.ToString());
|
||||
if (this.webRtcDspGameObject != null)
|
||||
{
|
||||
#if WEBRTC_AUDIO_DSP_SUPPORTED
|
||||
if (this.voiceAudioPreprocessor == null)
|
||||
{
|
||||
this.webRtcDspGameObject.SetActive(false);
|
||||
this.dspToggle.gameObject.SetActive(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.dspToggle.gameObject.SetActive(true);
|
||||
this.dspToggle.SetValue(!this.voiceAudioPreprocessor.Bypass && this.voiceAudioPreprocessor.enabled);
|
||||
this.webRtcDspGameObject.SetActive(this.dspToggle.isOn);
|
||||
this.aecToggle.SetValue(this.voiceAudioPreprocessor.AEC);
|
||||
this.aecHighPassToggle.SetValue(this.voiceAudioPreprocessor.AecHighPass);
|
||||
this.reverseStreamDelayInputField.text = this.voiceAudioPreprocessor.ReverseStreamDelayMs.ToString();
|
||||
this.aecOptionsGameObject.SetActive(this.voiceAudioPreprocessor.AEC);
|
||||
this.noiseSuppressionToggle.isOn = this.voiceAudioPreprocessor.NoiseSuppression;
|
||||
this.agcToggle.SetValue(this.voiceAudioPreprocessor.AGC);
|
||||
this.agcCompressionGainSlider.SetValue(this.voiceAudioPreprocessor.AgcCompressionGain);
|
||||
this.compressionGainGameObject.SetActive(this.voiceAudioPreprocessor.AGC);
|
||||
this.vadToggle.SetValue(this.voiceAudioPreprocessor.VAD);
|
||||
this.highPassToggle.SetValue(this.voiceAudioPreprocessor.HighPass);
|
||||
}
|
||||
#else
|
||||
this.webRtcDspGameObject.SetActive(false);
|
||||
this.dspToggle.gameObject.SetActive(false);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
this.dspToggle.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
private void SetRoomDebugText()
|
||||
{
|
||||
string playerDebugString = string.Empty;
|
||||
if (this.voiceConnection.Client.InRoom)
|
||||
{
|
||||
foreach (Player p in this.voiceConnection.Client.CurrentRoom.Players.Values)
|
||||
{
|
||||
playerDebugString = string.Concat(playerDebugString, p.ToStringFull());
|
||||
}
|
||||
this.roomStatusText.text = string.Format("{0} {1}", this.voiceConnection.Client.CurrentRoom.Name, playerDebugString);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.roomStatusText.text = string.Empty;
|
||||
}
|
||||
this.roomStatusText.text = this.voiceConnection.Client.CurrentRoom == null ? string.Empty : string.Format("{0} {1}", this.voiceConnection.Client.CurrentRoom.Name, playerDebugString);
|
||||
}
|
||||
|
||||
protected virtual void OnActorPropertiesChanged(Player targetPlayer, Hashtable changedProps)
|
||||
{
|
||||
if (targetPlayer.IsLocal)
|
||||
{
|
||||
bool isMuted = targetPlayer.IsMuted();
|
||||
this.voiceConnection.PrimaryRecorder.TransmitEnabled = !isMuted;
|
||||
this.muteToggle.SetValue(isMuted);
|
||||
}
|
||||
this.SetRoomDebugText();
|
||||
}
|
||||
|
||||
#region IInRoomCallbacks
|
||||
|
||||
void IInRoomCallbacks.OnPlayerEnteredRoom(Player newPlayer)
|
||||
{
|
||||
this.SetRoomDebugText();
|
||||
}
|
||||
|
||||
void IInRoomCallbacks.OnPlayerLeftRoom(Player otherPlayer)
|
||||
{
|
||||
this.SetRoomDebugText();
|
||||
}
|
||||
|
||||
void IInRoomCallbacks.OnRoomPropertiesUpdate(Hashtable propertiesThatChanged)
|
||||
{
|
||||
}
|
||||
|
||||
void IInRoomCallbacks.OnPlayerPropertiesUpdate(Player targetPlayer, Hashtable changedProps)
|
||||
{
|
||||
this.OnActorPropertiesChanged(targetPlayer, changedProps);
|
||||
}
|
||||
|
||||
void IInRoomCallbacks.OnMasterClientSwitched(Player newMasterClient)
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IMatchmakingCallbacks
|
||||
|
||||
void IMatchmakingCallbacks.OnFriendListUpdate(List<FriendInfo> friendList)
|
||||
{
|
||||
}
|
||||
|
||||
void IMatchmakingCallbacks.OnCreatedRoom()
|
||||
{
|
||||
}
|
||||
|
||||
void IMatchmakingCallbacks.OnCreateRoomFailed(short returnCode, string message)
|
||||
{
|
||||
}
|
||||
|
||||
void IMatchmakingCallbacks.OnJoinedRoom()
|
||||
{
|
||||
this.SetRoomDebugText();
|
||||
}
|
||||
|
||||
void IMatchmakingCallbacks.OnJoinRoomFailed(short returnCode, string message)
|
||||
{
|
||||
}
|
||||
|
||||
void IMatchmakingCallbacks.OnJoinRandomFailed(short returnCode, string message)
|
||||
{
|
||||
}
|
||||
|
||||
void IMatchmakingCallbacks.OnLeftRoom()
|
||||
{
|
||||
if (!ConnectionHandler.AppQuits)
|
||||
{
|
||||
this.SetRoomDebugText();
|
||||
this.SetDefaults();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 094187b68c0de4668b10768c5945018a
|
||||
timeCreated: 1530628279
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,279 @@
|
||||
#if WINDOWS_UWP || ENABLE_WINMD_SUPPORT
|
||||
#define PHOTON_MICROPHONE_WSA
|
||||
#endif
|
||||
|
||||
#if PHOTON_MICROPHONE_WSA || UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN || UNITY_STANDALONE_OSX || UNITY_EDITOR_OSX
|
||||
#define PHOTON_MICROPHONE_ENUMERATOR
|
||||
#endif
|
||||
|
||||
#if UNITY_STANDALONE_OSX || UNITY_STANDALONE_WIN || UNITY_ANDROID || UNITY_IOS || UNITY_WSA || UNITY_EDITOR_OSX || UNITY_EDITOR_WIN
|
||||
#define PHOTON_MICROPHONE_SUPPORTED
|
||||
#endif
|
||||
|
||||
namespace Photon.Voice.Unity.Demos.DemoVoiceUI
|
||||
{
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
using UnityEngine.UI;
|
||||
|
||||
|
||||
public struct MicRef
|
||||
{
|
||||
public Recorder.MicType MicType;
|
||||
public string Name;
|
||||
public int PhotonId;
|
||||
public string PhotonIdString;
|
||||
|
||||
public MicRef(string name, int id)
|
||||
{
|
||||
this.MicType = Recorder.MicType.Photon;
|
||||
this.Name = name;
|
||||
this.PhotonId = id;
|
||||
this.PhotonIdString = string.Empty;
|
||||
}
|
||||
|
||||
public MicRef(string name, string id)
|
||||
{
|
||||
this.MicType = Recorder.MicType.Photon;
|
||||
this.Name = name;
|
||||
this.PhotonId = -1;
|
||||
this.PhotonIdString = id;
|
||||
}
|
||||
|
||||
public MicRef(string name)
|
||||
{
|
||||
this.MicType = Recorder.MicType.Unity;
|
||||
this.Name = name;
|
||||
this.PhotonId = -1;
|
||||
this.PhotonIdString = string.Empty;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Format("Mic reference: {0}", this.Name);
|
||||
}
|
||||
}
|
||||
|
||||
public class MicrophoneDropdownFiller : MonoBehaviour
|
||||
{
|
||||
private List<MicRef> micOptions;
|
||||
|
||||
#pragma warning disable 649
|
||||
[SerializeField]
|
||||
private Dropdown micDropdown;
|
||||
|
||||
[SerializeField]
|
||||
private Recorder recorder;
|
||||
|
||||
[SerializeField]
|
||||
[FormerlySerializedAs("RefreshButton")]
|
||||
private GameObject refreshButton;
|
||||
|
||||
[SerializeField]
|
||||
[FormerlySerializedAs("ToggleButton")]
|
||||
private GameObject toggleButton;
|
||||
#pragma warning restore 649
|
||||
|
||||
private Toggle photonToggle;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
this.photonToggle = this.toggleButton.GetComponentInChildren<Toggle>();
|
||||
this.RefreshMicrophones();
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
UtilityScripts.MicrophonePermission.MicrophonePermissionCallback += this.OnMicrophonePermissionCallback;
|
||||
}
|
||||
|
||||
private void OnMicrophonePermissionCallback(bool granted)
|
||||
{
|
||||
this.RefreshMicrophones();
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
UtilityScripts.MicrophonePermission.MicrophonePermissionCallback -= this.OnMicrophonePermissionCallback;
|
||||
}
|
||||
|
||||
private void SetupMicDropdown()
|
||||
{
|
||||
this.micDropdown.ClearOptions();
|
||||
|
||||
this.micOptions = new List<MicRef>();
|
||||
List<string> micOptionsStrings = new List<string>();
|
||||
|
||||
for(int i=0; i < Microphone.devices.Length; i++)
|
||||
{
|
||||
string x = Microphone.devices[i];
|
||||
this.micOptions.Add(new MicRef(x));
|
||||
micOptionsStrings.Add(string.Format("[Unity] {0}", x));
|
||||
}
|
||||
|
||||
#if PHOTON_MICROPHONE_ENUMERATOR
|
||||
if (this.recorder.MicrophonesEnumerator.IsSupported)
|
||||
{
|
||||
int i = 0;
|
||||
foreach (DeviceInfo deviceInfo in this.recorder.MicrophonesEnumerator)
|
||||
{
|
||||
string n = deviceInfo.Name;
|
||||
#if PHOTON_MICROPHONE_WSA
|
||||
this.micOptions.Add(new MicRef(n, deviceInfo.IDString));
|
||||
#else
|
||||
this.micOptions.Add(new MicRef(n, deviceInfo.IDInt));
|
||||
#endif
|
||||
micOptionsStrings.Add(string.Format("[Photon] {0}", n));
|
||||
i++;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
this.micDropdown.AddOptions(micOptionsStrings);
|
||||
this.micDropdown.onValueChanged.RemoveAllListeners();
|
||||
this.micDropdown.onValueChanged.AddListener(delegate { this.MicDropdownValueChanged(this.micOptions[this.micDropdown.value]); });
|
||||
}
|
||||
|
||||
private void MicDropdownValueChanged(MicRef mic)
|
||||
{
|
||||
this.recorder.MicrophoneType = mic.MicType;
|
||||
|
||||
switch (mic.MicType)
|
||||
{
|
||||
case Recorder.MicType.Unity:
|
||||
this.recorder.UnityMicrophoneDevice = mic.Name;
|
||||
break;
|
||||
case Recorder.MicType.Photon:
|
||||
#if PHOTON_MICROPHONE_WSA
|
||||
this.recorder.PhotonMicrophoneDeviceIdString = mic.PhotonIdString;
|
||||
#else
|
||||
this.recorder.PhotonMicrophoneDeviceId = mic.PhotonId;
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
if (this.recorder.RequiresRestart)
|
||||
{
|
||||
this.recorder.RestartRecording();
|
||||
}
|
||||
}
|
||||
|
||||
private void SetCurrentValue()
|
||||
{
|
||||
if (this.micOptions == null)
|
||||
{
|
||||
Debug.LogWarning("micOptions list is null");
|
||||
return;
|
||||
}
|
||||
#if PHOTON_MICROPHONE_ENUMERATOR
|
||||
bool photonMicEnumAvailable = this.recorder.MicrophonesEnumerator.IsSupported;
|
||||
#else
|
||||
bool photonMicEnumAvailable = false;
|
||||
#endif
|
||||
this.photonToggle.onValueChanged.RemoveAllListeners();
|
||||
this.photonToggle.isOn = this.recorder.MicrophoneType == Recorder.MicType.Photon;
|
||||
if (!photonMicEnumAvailable)
|
||||
{
|
||||
this.photonToggle.onValueChanged.AddListener(this.PhotonMicToggled);
|
||||
}
|
||||
this.micDropdown.gameObject.SetActive(photonMicEnumAvailable || this.recorder.MicrophoneType == Recorder.MicType.Unity);
|
||||
#if PHOTON_MICROPHONE_SUPPORTED
|
||||
this.toggleButton.SetActive(!photonMicEnumAvailable);
|
||||
#else
|
||||
this.toggleButton.SetActive(false);
|
||||
#endif
|
||||
this.refreshButton.SetActive(photonMicEnumAvailable || this.recorder.MicrophoneType == Recorder.MicType.Unity);
|
||||
for (int valueIndex = 0; valueIndex < this.micOptions.Count; valueIndex++)
|
||||
{
|
||||
MicRef val = this.micOptions[valueIndex];
|
||||
if (this.recorder.MicrophoneType == val.MicType)
|
||||
{
|
||||
if (this.recorder.MicrophoneType == Recorder.MicType.Unity &&
|
||||
Recorder.CompareUnityMicNames(val.Name, this.recorder.UnityMicrophoneDevice))
|
||||
{
|
||||
this.micDropdown.value = valueIndex;
|
||||
return;
|
||||
}
|
||||
#if PHOTON_MICROPHONE_WSA
|
||||
if (this.recorder.MicrophoneType == Recorder.MicType.Photon &&
|
||||
string.Equals(val.PhotonIdString, this.recorder.PhotonMicrophoneDeviceIdString))
|
||||
{
|
||||
this.micDropdown.value = valueIndex;
|
||||
return;
|
||||
}
|
||||
#else
|
||||
if (this.recorder.MicrophoneType == Recorder.MicType.Photon &&
|
||||
val.PhotonId == this.recorder.PhotonMicrophoneDeviceId)
|
||||
{
|
||||
this.micDropdown.value = valueIndex;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
for (int valueIndex = 0; valueIndex < this.micOptions.Count; valueIndex++)
|
||||
{
|
||||
MicRef val = this.micOptions[valueIndex];
|
||||
if (this.recorder.MicrophoneType == val.MicType)
|
||||
{
|
||||
if (this.recorder.MicrophoneType == Recorder.MicType.Unity)
|
||||
{
|
||||
this.micDropdown.value = valueIndex;
|
||||
this.recorder.UnityMicrophoneDevice = val.Name;
|
||||
break;
|
||||
}
|
||||
if (this.recorder.MicrophoneType == Recorder.MicType.Photon)
|
||||
{
|
||||
this.micDropdown.value = valueIndex;
|
||||
#if PHOTON_MICROPHONE_WSA
|
||||
this.recorder.PhotonMicrophoneDeviceIdString = val.PhotonIdString;
|
||||
#else
|
||||
this.recorder.PhotonMicrophoneDeviceId = val.PhotonId;
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.recorder.RequiresRestart)
|
||||
{
|
||||
this.recorder.RestartRecording();
|
||||
}
|
||||
}
|
||||
|
||||
public void PhotonMicToggled(bool on)
|
||||
{
|
||||
this.micDropdown.gameObject.SetActive(!on);
|
||||
this.refreshButton.SetActive(!on);
|
||||
if (on)
|
||||
{
|
||||
this.recorder.MicrophoneType = Recorder.MicType.Photon;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.recorder.MicrophoneType = Recorder.MicType.Unity;
|
||||
}
|
||||
|
||||
if (this.recorder.RequiresRestart)
|
||||
{
|
||||
this.recorder.RestartRecording();
|
||||
}
|
||||
}
|
||||
|
||||
public void RefreshMicrophones()
|
||||
{
|
||||
#if PHOTON_MICROPHONE_ENUMERATOR
|
||||
//Debug.Log("Refresh Mics");
|
||||
this.recorder.MicrophonesEnumerator.Refresh();
|
||||
#endif
|
||||
this.SetupMicDropdown();
|
||||
this.SetCurrentValue();
|
||||
}
|
||||
|
||||
// sync. UI in case a change happens from the Unity Editor Inspector
|
||||
private void PhotonVoiceCreated()
|
||||
{
|
||||
this.RefreshMicrophones();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 46c5b6e5ca0ea874f9e8d58fd90ef139
|
||||
timeCreated: 1530628279
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,27 @@
|
||||
namespace Photon.Voice.Unity.Demos.DemoVoiceUI
|
||||
{
|
||||
using Realtime;
|
||||
using ExitGames.Client.Photon;
|
||||
|
||||
public static partial class PhotonDemoExtensions // todo: USE C.A.S. ALWAYS
|
||||
{
|
||||
// this demo uses a Custom Property (as explained in the Realtime API), to sync if a player muted her microphone. that value needs a string key.
|
||||
internal const string IS_MUTED_PROPERTY_KEY = "mute";
|
||||
|
||||
public static bool Mute(this Player player)
|
||||
{
|
||||
return player.SetCustomProperties(new Hashtable(1) { { IS_MUTED_PROPERTY_KEY, true } });
|
||||
}
|
||||
|
||||
public static bool Unmute(this Player player)
|
||||
{
|
||||
return player.SetCustomProperties(new Hashtable(1) { { IS_MUTED_PROPERTY_KEY, false } });
|
||||
}
|
||||
|
||||
public static bool IsMuted(this Player player)
|
||||
{
|
||||
object temp;
|
||||
return player.CustomProperties.TryGetValue(IS_MUTED_PROPERTY_KEY, out temp) && (bool)temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2f0b31909ac64a343906fc8be6490c2f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,171 @@
|
||||
namespace Photon.Voice.Unity.Demos.DemoVoiceUI
|
||||
{
|
||||
using ExitGames.Client.Photon;
|
||||
using Unity;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using Realtime;
|
||||
|
||||
[RequireComponent(typeof(Speaker))]
|
||||
public class RemoteSpeakerUI : MonoBehaviour, IInRoomCallbacks
|
||||
{
|
||||
#pragma warning disable 649
|
||||
[SerializeField]
|
||||
private Text nameText;
|
||||
[SerializeField]
|
||||
protected Image remoteIsMuting;
|
||||
[SerializeField]
|
||||
private Image remoteIsTalking;
|
||||
[SerializeField]
|
||||
private InputField minDelaySoftInputField;
|
||||
[SerializeField]
|
||||
private InputField maxDelaySoftInputField;
|
||||
[SerializeField]
|
||||
private InputField maxDelayHardInputField;
|
||||
[SerializeField]
|
||||
private Text bufferLagText;
|
||||
#pragma warning restore 649
|
||||
protected Speaker speaker;
|
||||
|
||||
protected VoiceConnection voiceConnection;
|
||||
protected LoadBalancingClient loadBalancingClient;
|
||||
|
||||
protected virtual void Start()
|
||||
{
|
||||
this.speaker = this.GetComponent<Speaker>();
|
||||
this.minDelaySoftInputField.text = this.speaker.PlaybackDelayMinSoft.ToString();
|
||||
this.minDelaySoftInputField.SetSingleOnEndEditCallback(this.OnMinDelaySoftChanged);
|
||||
this.maxDelaySoftInputField.text = this.speaker.PlaybackDelayMaxSoft.ToString();
|
||||
this.maxDelaySoftInputField.SetSingleOnEndEditCallback(this.OnMaxDelaySoftChanged);
|
||||
this.maxDelayHardInputField.text = this.speaker.PlaybackDelayMaxHard.ToString();
|
||||
this.maxDelayHardInputField.SetSingleOnEndEditCallback(this.OnMaxDelayHardChanged);
|
||||
this.SetNickname();
|
||||
this.SetMutedState();
|
||||
}
|
||||
|
||||
private void OnMinDelaySoftChanged(string newMinDelaySoftString)
|
||||
{
|
||||
int newMinDelaySoftValue;
|
||||
int newMaxDelaySoftValue = this.speaker.PlaybackDelayMaxSoft;
|
||||
int newMaxDelayHardValue = this.speaker.PlaybackDelayMaxHard;
|
||||
if (int.TryParse(newMinDelaySoftString, out newMinDelaySoftValue) && newMinDelaySoftValue >= 0 && newMinDelaySoftValue < newMaxDelaySoftValue)
|
||||
{
|
||||
this.speaker.SetPlaybackDelaySettings(newMinDelaySoftValue, newMaxDelaySoftValue, newMaxDelayHardValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.minDelaySoftInputField.text = this.speaker.PlaybackDelayMinSoft.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnMaxDelaySoftChanged(string newMaxDelaySoftString)
|
||||
{
|
||||
int newMinDelaySoftValue = this.speaker.PlaybackDelayMinSoft;
|
||||
int newMaxDelaySoftValue;
|
||||
int newMaxDelayHardValue = this.speaker.PlaybackDelayMaxHard;
|
||||
if (int.TryParse(newMaxDelaySoftString, out newMaxDelaySoftValue) && newMinDelaySoftValue < newMaxDelaySoftValue)
|
||||
{
|
||||
this.speaker.SetPlaybackDelaySettings(newMinDelaySoftValue, newMaxDelaySoftValue, newMaxDelayHardValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.maxDelaySoftInputField.text = this.speaker.PlaybackDelayMaxSoft.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnMaxDelayHardChanged(string newMaxDelayHardString)
|
||||
{
|
||||
int newMinDelaySoftValue = this.speaker.PlaybackDelayMinSoft;
|
||||
int newMaxDelaySoftValue = this.speaker.PlaybackDelayMaxSoft;
|
||||
int newMaxDelayHardValue;
|
||||
if (int.TryParse(newMaxDelayHardString, out newMaxDelayHardValue) && newMaxDelayHardValue >= newMaxDelaySoftValue)
|
||||
{
|
||||
this.speaker.SetPlaybackDelaySettings(newMinDelaySoftValue, newMaxDelaySoftValue, newMaxDelayHardValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.maxDelayHardInputField.text = this.speaker.PlaybackDelayMaxHard.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
// TODO: It would be nice, if we could show if a user is actually talking right now (Voice Detection)
|
||||
this.remoteIsTalking.enabled = this.speaker.IsPlaying;
|
||||
this.bufferLagText.text = string.Concat("Buffer Lag: ", this.speaker.Lag);
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (this.loadBalancingClient != null)
|
||||
{
|
||||
this.loadBalancingClient.RemoveCallbackTarget(this);
|
||||
}
|
||||
}
|
||||
|
||||
private void SetNickname()
|
||||
{
|
||||
string nick = this.speaker.name;
|
||||
if (this.speaker.Actor != null)
|
||||
{
|
||||
nick = this.speaker.Actor.NickName;
|
||||
if (string.IsNullOrEmpty(nick))
|
||||
{
|
||||
nick = string.Concat("user ", this.speaker.Actor.ActorNumber);
|
||||
}
|
||||
}
|
||||
this.nameText.text = nick;
|
||||
}
|
||||
|
||||
private void SetMutedState()
|
||||
{
|
||||
this.SetMutedState(this.speaker.Actor.IsMuted());
|
||||
}
|
||||
|
||||
protected virtual void SetMutedState(bool isMuted)
|
||||
{
|
||||
this.remoteIsMuting.enabled = isMuted;
|
||||
}
|
||||
|
||||
protected virtual void OnActorPropertiesChanged(Player targetPlayer, Hashtable changedProps)
|
||||
{
|
||||
if (targetPlayer.ActorNumber == this.speaker.Actor.ActorNumber)
|
||||
{
|
||||
this.SetMutedState();
|
||||
this.SetNickname();
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void Init(VoiceConnection vC)
|
||||
{
|
||||
this.voiceConnection = vC;
|
||||
this.loadBalancingClient = this.voiceConnection.Client;
|
||||
this.loadBalancingClient.AddCallbackTarget(this);
|
||||
}
|
||||
|
||||
#region IInRoomCallbacks
|
||||
|
||||
void IInRoomCallbacks.OnPlayerEnteredRoom(Player newPlayer)
|
||||
{
|
||||
}
|
||||
|
||||
void IInRoomCallbacks.OnPlayerLeftRoom(Player otherPlayer)
|
||||
{
|
||||
}
|
||||
|
||||
void IInRoomCallbacks.OnRoomPropertiesUpdate(Hashtable propertiesThatChanged)
|
||||
{
|
||||
}
|
||||
|
||||
void IInRoomCallbacks.OnPlayerPropertiesUpdate(Player targetPlayer, Hashtable changedProps)
|
||||
{
|
||||
this.OnActorPropertiesChanged(targetPlayer, changedProps);
|
||||
}
|
||||
|
||||
void IInRoomCallbacks.OnMasterClientSwitched(Player newMasterClient)
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 25daf05c976bc754b9a4ad8ae371c854
|
||||
timeCreated: 1530628279
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,48 @@
|
||||
namespace Photon.Voice.Unity.Demos
|
||||
{
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine;
|
||||
|
||||
public class SidebarToggle : MonoBehaviour
|
||||
{
|
||||
#pragma warning disable 649
|
||||
[SerializeField]
|
||||
private Button sidebarButton;
|
||||
|
||||
[SerializeField]
|
||||
private RectTransform panelsHolder;
|
||||
#pragma warning restore 649
|
||||
|
||||
private float sidebarWidth = 300f; // todo: get width dynamically at runtime
|
||||
|
||||
private bool sidebarOpen = true;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
this.sidebarButton.onClick.RemoveAllListeners();
|
||||
this.sidebarButton.onClick.AddListener(this.ToggleSidebar);
|
||||
this.ToggleSidebar(this.sidebarOpen);
|
||||
}
|
||||
|
||||
[ContextMenu("ToggleSidebar")]
|
||||
private void ToggleSidebar()
|
||||
{
|
||||
this.sidebarOpen = !this.sidebarOpen;
|
||||
this.ToggleSidebar(this.sidebarOpen);
|
||||
}
|
||||
|
||||
private void ToggleSidebar(bool open)
|
||||
{
|
||||
if (!open)
|
||||
{
|
||||
//this.panelsHolder.SetLeft(0);
|
||||
this.panelsHolder.SetPosX(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
//this.panelsHolder.SetLeft(this.sidebarWidth);
|
||||
this.panelsHolder.SetPosX(this.sidebarWidth);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0aeb3b11a4ed83e4cb11098a0cfb9c71
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,157 @@
|
||||
namespace Photon.Voice.Unity.Demos
|
||||
{
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.UI;
|
||||
using Object = UnityEngine.Object;
|
||||
|
||||
public static class UiExtensions
|
||||
{
|
||||
//http://answers.unity.com/answers/1610964/view.html
|
||||
//https://gist.github.com/Josef212/b3f4bcf9cd827f5dc125ffc013548491
|
||||
public static void SetPosX(this RectTransform rectTransform, float x)
|
||||
{
|
||||
rectTransform.anchoredPosition3D = new Vector3(x, rectTransform.anchoredPosition3D.y, rectTransform.anchoredPosition3D.z);
|
||||
}
|
||||
|
||||
public static void SetHeight(this RectTransform rectTransform, float h)
|
||||
{
|
||||
rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, h);
|
||||
}
|
||||
|
||||
//https://forum.unity.com/threads/change-the-value-of-a-toggle-without-triggering-onvaluechanged.275056/#post-2750271
|
||||
#if !UNITY_2019_1_OR_NEWER
|
||||
private static Toggle.ToggleEvent emptyToggleEvent = new Toggle.ToggleEvent();
|
||||
#endif
|
||||
|
||||
// added to 2019.1 https://docs.unity3d.com/2019.1/Documentation/ScriptReference/UI.Toggle.SetIsOnWithoutNotify.html
|
||||
public static void SetValue(this Toggle toggle, bool isOn)
|
||||
{
|
||||
#if UNITY_2019_1_OR_NEWER
|
||||
toggle.SetIsOnWithoutNotify(isOn);
|
||||
#else
|
||||
Toggle.ToggleEvent originalEvent = toggle.onValueChanged;
|
||||
toggle.onValueChanged = emptyToggleEvent;
|
||||
toggle.isOn = isOn;
|
||||
toggle.onValueChanged = originalEvent;
|
||||
#endif
|
||||
}
|
||||
|
||||
#if !UNITY_2019_1_OR_NEWER
|
||||
private static Slider.SliderEvent emptySliderEvent = new Slider.SliderEvent();
|
||||
#endif
|
||||
|
||||
public static void SetValue(this Slider slider, float v)
|
||||
{
|
||||
#if UNITY_2019_1_OR_NEWER
|
||||
slider.SetValueWithoutNotify(v);
|
||||
#else
|
||||
Slider.SliderEvent originalEvent = slider.onValueChanged;
|
||||
slider.onValueChanged = emptySliderEvent;
|
||||
slider.value = v;
|
||||
slider.onValueChanged = originalEvent;
|
||||
#endif
|
||||
}
|
||||
|
||||
#if !UNITY_2019_1_OR_NEWER
|
||||
private static InputField.OnChangeEvent emptyInputFieldEvent = new InputField.OnChangeEvent();
|
||||
private static InputField.SubmitEvent emptyInputFieldSubmitEvent = new InputField.SubmitEvent();
|
||||
#endif
|
||||
|
||||
public static void SetValue(this InputField inputField, string v)
|
||||
{
|
||||
#if UNITY_2019_1_OR_NEWER
|
||||
inputField.SetTextWithoutNotify(v);
|
||||
#else
|
||||
InputField.OnChangeEvent origianlEvent = inputField.onValueChanged;
|
||||
InputField.SubmitEvent originalSubmitEvent = inputField.onEndEdit;
|
||||
inputField.onValueChanged = emptyInputFieldEvent;
|
||||
inputField.onEndEdit = emptyInputFieldSubmitEvent;
|
||||
inputField.text = v;
|
||||
inputField.onValueChanged = origianlEvent;
|
||||
inputField.onEndEdit = originalSubmitEvent;
|
||||
#endif
|
||||
}
|
||||
|
||||
// https://forum.unity.com/threads/deleting-all-chidlren-of-an-object.92827/#post-2058407
|
||||
/// <summary>
|
||||
/// Calls GameObject.Destroy on all children of transform. and immediately detaches the children
|
||||
/// from transform so after this call transform.childCount is zero.
|
||||
/// </summary>
|
||||
public static void DestroyChildren(this Transform transform)
|
||||
{
|
||||
if (!ReferenceEquals(null, transform) && transform)
|
||||
{
|
||||
for (int i = transform.childCount - 1; i >= 0; --i)
|
||||
{
|
||||
Transform child = transform.GetChild(i);
|
||||
if (child && child.gameObject)
|
||||
{
|
||||
Object.Destroy(child.gameObject);
|
||||
}
|
||||
}
|
||||
transform.DetachChildren();
|
||||
}
|
||||
}
|
||||
|
||||
public static void Hide(this CanvasGroup canvasGroup, bool blockRaycasts = false, bool interactable = false)
|
||||
{
|
||||
canvasGroup.alpha = 0f;
|
||||
canvasGroup.blocksRaycasts = blockRaycasts;
|
||||
canvasGroup.interactable = interactable;
|
||||
}
|
||||
|
||||
public static void Show(this CanvasGroup canvasGroup, bool blockRaycasts = true, bool interactable = true)
|
||||
{
|
||||
canvasGroup.alpha = 1f;
|
||||
canvasGroup.blocksRaycasts = blockRaycasts;
|
||||
canvasGroup.interactable = interactable;
|
||||
}
|
||||
|
||||
public static bool IsHidden(this CanvasGroup canvasGroup)
|
||||
{
|
||||
return canvasGroup.alpha <= 0f;
|
||||
}
|
||||
|
||||
public static bool IsShown(this CanvasGroup canvasGroup)
|
||||
{
|
||||
return canvasGroup.alpha > 0f;
|
||||
}
|
||||
|
||||
public static void SetSingleOnClickCallback(this Button button, UnityAction action)
|
||||
{
|
||||
button.onClick.RemoveAllListeners();
|
||||
button.onClick.AddListener(action);
|
||||
}
|
||||
|
||||
public static void SetSingleOnValueChangedCallback(this Toggle toggle, UnityAction<bool> action)
|
||||
{
|
||||
toggle.onValueChanged.RemoveAllListeners();
|
||||
toggle.onValueChanged.AddListener(action);
|
||||
}
|
||||
|
||||
public static void SetSingleOnValueChangedCallback(this InputField inputField, UnityAction<string> action)
|
||||
{
|
||||
inputField.onValueChanged.RemoveAllListeners();
|
||||
inputField.onValueChanged.AddListener(action);
|
||||
}
|
||||
|
||||
public static void SetSingleOnEndEditCallback(this InputField inputField, UnityAction<string> action)
|
||||
{
|
||||
inputField.onEndEdit.RemoveAllListeners();
|
||||
inputField.onEndEdit.AddListener(action);
|
||||
}
|
||||
|
||||
public static void SetSingleOnValueChangedCallback(this Dropdown inputField, UnityAction<int> action)
|
||||
{
|
||||
inputField.onValueChanged.RemoveAllListeners();
|
||||
inputField.onValueChanged.AddListener(action);
|
||||
}
|
||||
|
||||
public static void SetSingleOnValueChangedCallback(this Slider slider, UnityAction<float> action)
|
||||
{
|
||||
slider.onValueChanged.RemoveAllListeners();
|
||||
slider.onValueChanged.AddListener(action);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 61bfa3948d4c1d34bb79ea542ab7217f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user