Merge pull request #1 from microsoft/upmPackage
Upm package formatting and new functionality
This commit is contained in:
Коммит
c1ad26f82d
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 12a6224d5ee7bf543a0e8f0a4e649b8b
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Close_01.wav
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Close_01.wav
Двоичный файл не отображается.
|
@ -1,22 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 6a3776b0c601bde47abac312e969b2ec
|
|
||||||
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:
|
|
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Close_02.wav
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Close_02.wav
Двоичный файл не отображается.
|
@ -1,22 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 57efa9e8cd377fb439de8d4aef14c55e
|
|
||||||
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:
|
|
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Close_03.wav
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Close_03.wav
Двоичный файл не отображается.
|
@ -1,22 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: b48798d283806774f9d13fe0c900f0c0
|
|
||||||
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:
|
|
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Close_04.wav
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Close_04.wav
Двоичный файл не отображается.
|
@ -1,22 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 97f015b418081d54dabc23854ac24f21
|
|
||||||
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:
|
|
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Close_05.wav
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Close_05.wav
Двоичный файл не отображается.
|
@ -1,22 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 5ad63cb2c22ab134098a0e7854e1311e
|
|
||||||
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:
|
|
Двоичные данные
Assets/AudioManager/Examples/AudioClips/HoverBump_01.wav
Двоичные данные
Assets/AudioManager/Examples/AudioClips/HoverBump_01.wav
Двоичный файл не отображается.
|
@ -1,22 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 810e6dca8ef71344cbc890b34671250f
|
|
||||||
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:
|
|
Двоичные данные
Assets/AudioManager/Examples/AudioClips/HoverBump_02.wav
Двоичные данные
Assets/AudioManager/Examples/AudioClips/HoverBump_02.wav
Двоичный файл не отображается.
|
@ -1,22 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: bc7078a21c54a5f43abe62c0892d09ac
|
|
||||||
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:
|
|
Двоичные данные
Assets/AudioManager/Examples/AudioClips/HoverBump_03.wav
Двоичные данные
Assets/AudioManager/Examples/AudioClips/HoverBump_03.wav
Двоичный файл не отображается.
|
@ -1,22 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: eb1ecc6af91d07446aae1b3f303005d3
|
|
||||||
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:
|
|
Двоичные данные
Assets/AudioManager/Examples/AudioClips/HoverBump_04.wav
Двоичные данные
Assets/AudioManager/Examples/AudioClips/HoverBump_04.wav
Двоичный файл не отображается.
|
@ -1,22 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: d2984ecc43800284c8ce6b9cf4979a1f
|
|
||||||
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:
|
|
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Pop_01.wav
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Pop_01.wav
Двоичный файл не отображается.
|
@ -1,22 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: ff1cfe55b3fd386498dcb18e986acc34
|
|
||||||
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:
|
|
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Pop_02.wav
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Pop_02.wav
Двоичный файл не отображается.
|
@ -1,22 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: c01b9eb07d6d92245b376b002ce15581
|
|
||||||
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:
|
|
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Pop_03.wav
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Pop_03.wav
Двоичный файл не отображается.
|
@ -1,22 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 0ba1d994397160b4fb15379cc06d3d28
|
|
||||||
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:
|
|
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Pop_04.wav
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Pop_04.wav
Двоичный файл не отображается.
|
@ -1,22 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: a3e78a024797c8548851dd0438a4f7d1
|
|
||||||
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:
|
|
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Pop_05.wav
Двоичные данные
Assets/AudioManager/Examples/AudioClips/Pop_05.wav
Двоичный файл не отображается.
|
@ -1,22 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 90010d72328cde74c828e489a0309387
|
|
||||||
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:
|
|
|
@ -1,311 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!29 &1
|
|
||||||
OcclusionCullingSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_OcclusionBakeSettings:
|
|
||||||
smallestOccluder: 5
|
|
||||||
smallestHole: 0.25
|
|
||||||
backfaceThreshold: 100
|
|
||||||
m_SceneGUID: 00000000000000000000000000000000
|
|
||||||
m_OcclusionCullingData: {fileID: 0}
|
|
||||||
--- !u!104 &2
|
|
||||||
RenderSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 9
|
|
||||||
m_Fog: 0
|
|
||||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
|
||||||
m_FogMode: 3
|
|
||||||
m_FogDensity: 0.01
|
|
||||||
m_LinearFogStart: 0
|
|
||||||
m_LinearFogEnd: 300
|
|
||||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
|
||||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
|
||||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
|
||||||
m_AmbientIntensity: 1
|
|
||||||
m_AmbientMode: 0
|
|
||||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
|
||||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_HaloStrength: 0.5
|
|
||||||
m_FlareStrength: 1
|
|
||||||
m_FlareFadeSpeed: 3
|
|
||||||
m_HaloTexture: {fileID: 0}
|
|
||||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
|
||||||
m_DefaultReflectionMode: 0
|
|
||||||
m_DefaultReflectionResolution: 128
|
|
||||||
m_ReflectionBounces: 1
|
|
||||||
m_ReflectionIntensity: 1
|
|
||||||
m_CustomReflection: {fileID: 0}
|
|
||||||
m_Sun: {fileID: 170076734}
|
|
||||||
m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
|
|
||||||
m_UseRadianceAmbientProbe: 0
|
|
||||||
--- !u!157 &3
|
|
||||||
LightmapSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 11
|
|
||||||
m_GIWorkflowMode: 0
|
|
||||||
m_GISettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_BounceScale: 1
|
|
||||||
m_IndirectOutputScale: 1
|
|
||||||
m_AlbedoBoost: 1
|
|
||||||
m_EnvironmentLightingMode: 0
|
|
||||||
m_EnableBakedLightmaps: 1
|
|
||||||
m_EnableRealtimeLightmaps: 0
|
|
||||||
m_LightmapEditorSettings:
|
|
||||||
serializedVersion: 10
|
|
||||||
m_Resolution: 2
|
|
||||||
m_BakeResolution: 10
|
|
||||||
m_AtlasSize: 512
|
|
||||||
m_AO: 0
|
|
||||||
m_AOMaxDistance: 1
|
|
||||||
m_CompAOExponent: 1
|
|
||||||
m_CompAOExponentDirect: 0
|
|
||||||
m_Padding: 2
|
|
||||||
m_LightmapParameters: {fileID: 0}
|
|
||||||
m_LightmapsBakeMode: 1
|
|
||||||
m_TextureCompression: 1
|
|
||||||
m_FinalGather: 0
|
|
||||||
m_FinalGatherFiltering: 1
|
|
||||||
m_FinalGatherRayCount: 256
|
|
||||||
m_ReflectionCompression: 2
|
|
||||||
m_MixedBakeMode: 2
|
|
||||||
m_BakeBackend: 1
|
|
||||||
m_PVRSampling: 1
|
|
||||||
m_PVRDirectSampleCount: 32
|
|
||||||
m_PVRSampleCount: 256
|
|
||||||
m_PVRBounces: 2
|
|
||||||
m_PVRFilterTypeDirect: 0
|
|
||||||
m_PVRFilterTypeIndirect: 0
|
|
||||||
m_PVRFilterTypeAO: 0
|
|
||||||
m_PVRFilteringMode: 1
|
|
||||||
m_PVRCulling: 1
|
|
||||||
m_PVRFilteringGaussRadiusDirect: 1
|
|
||||||
m_PVRFilteringGaussRadiusIndirect: 5
|
|
||||||
m_PVRFilteringGaussRadiusAO: 2
|
|
||||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
|
||||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
|
||||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
|
||||||
m_ShowResolutionOverlay: 1
|
|
||||||
m_LightingDataAsset: {fileID: 0}
|
|
||||||
m_UseShadowmask: 1
|
|
||||||
--- !u!196 &4
|
|
||||||
NavMeshSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_BuildSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
agentTypeID: 0
|
|
||||||
agentRadius: 0.5
|
|
||||||
agentHeight: 2
|
|
||||||
agentSlope: 45
|
|
||||||
agentClimb: 0.4
|
|
||||||
ledgeDropHeight: 0
|
|
||||||
maxJumpAcrossDistance: 0
|
|
||||||
minRegionArea: 2
|
|
||||||
manualCellSize: 0
|
|
||||||
cellSize: 0.16666667
|
|
||||||
manualTileSize: 0
|
|
||||||
tileSize: 256
|
|
||||||
accuratePlacement: 0
|
|
||||||
debug:
|
|
||||||
m_Flags: 0
|
|
||||||
m_NavMeshData: {fileID: 0}
|
|
||||||
--- !u!1 &170076733
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 170076735}
|
|
||||||
- component: {fileID: 170076734}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Directional Light
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!108 &170076734
|
|
||||||
Light:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 170076733}
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 8
|
|
||||||
m_Type: 1
|
|
||||||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
|
|
||||||
m_Intensity: 1
|
|
||||||
m_Range: 10
|
|
||||||
m_SpotAngle: 30
|
|
||||||
m_CookieSize: 10
|
|
||||||
m_Shadows:
|
|
||||||
m_Type: 2
|
|
||||||
m_Resolution: -1
|
|
||||||
m_CustomResolution: -1
|
|
||||||
m_Strength: 1
|
|
||||||
m_Bias: 0.05
|
|
||||||
m_NormalBias: 0.4
|
|
||||||
m_NearPlane: 0.2
|
|
||||||
m_Cookie: {fileID: 0}
|
|
||||||
m_DrawHalo: 0
|
|
||||||
m_Flare: {fileID: 0}
|
|
||||||
m_RenderMode: 0
|
|
||||||
m_CullingMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
m_Lightmapping: 1
|
|
||||||
m_LightShadowCasterMode: 0
|
|
||||||
m_AreaSize: {x: 1, y: 1}
|
|
||||||
m_BounceIntensity: 1
|
|
||||||
m_ColorTemperature: 6570
|
|
||||||
m_UseColorTemperature: 0
|
|
||||||
m_ShadowRadius: 0
|
|
||||||
m_ShadowAngle: 0
|
|
||||||
--- !u!4 &170076735
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 170076733}
|
|
||||||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
|
|
||||||
m_LocalPosition: {x: 0, y: 3, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_RootOrder: 1
|
|
||||||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
|
|
||||||
--- !u!1 &534669902
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 534669905}
|
|
||||||
- component: {fileID: 534669904}
|
|
||||||
- component: {fileID: 534669903}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Main Camera
|
|
||||||
m_TagString: MainCamera
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!81 &534669903
|
|
||||||
AudioListener:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 534669902}
|
|
||||||
m_Enabled: 1
|
|
||||||
--- !u!20 &534669904
|
|
||||||
Camera:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 534669902}
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 2
|
|
||||||
m_ClearFlags: 1
|
|
||||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
|
||||||
m_projectionMatrixMode: 1
|
|
||||||
m_SensorSize: {x: 36, y: 24}
|
|
||||||
m_LensShift: {x: 0, y: 0}
|
|
||||||
m_GateFitMode: 2
|
|
||||||
m_FocalLength: 50
|
|
||||||
m_NormalizedViewPortRect:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
width: 1
|
|
||||||
height: 1
|
|
||||||
near clip plane: 0.3
|
|
||||||
far clip plane: 1000
|
|
||||||
field of view: 60
|
|
||||||
orthographic: 0
|
|
||||||
orthographic size: 5
|
|
||||||
m_Depth: -1
|
|
||||||
m_CullingMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
m_RenderingPath: -1
|
|
||||||
m_TargetTexture: {fileID: 0}
|
|
||||||
m_TargetDisplay: 0
|
|
||||||
m_TargetEye: 3
|
|
||||||
m_HDR: 1
|
|
||||||
m_AllowMSAA: 1
|
|
||||||
m_AllowDynamicResolution: 0
|
|
||||||
m_ForceIntoRT: 0
|
|
||||||
m_OcclusionCulling: 1
|
|
||||||
m_StereoConvergence: 10
|
|
||||||
m_StereoSeparation: 0.022
|
|
||||||
--- !u!4 &534669905
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 534669902}
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 1, z: -10}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_RootOrder: 0
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!1 &722408568
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 722408569}
|
|
||||||
- component: {fileID: 722408570}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: AudioTester
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!4 &722408569
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 722408568}
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_RootOrder: 2
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!114 &722408570
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 722408568}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: da600e0031fc1c44eba2e58a94541e97, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
testKey: 102
|
|
||||||
testEvent: {fileID: 114152458844612320, guid: f29ce946b43dd2242b0bf4d8b57d9aee,
|
|
||||||
type: 2}
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: f29ce946b43dd2242b0bf4d8b57d9aee
|
|
||||||
NativeFormatImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 11400000
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 03cd4d99c78e6914e84481d0ea476a66
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,21 +0,0 @@
|
||||||
// Copyright (c) Microsoft Corporation.
|
|
||||||
// Licensed under the MIT License.
|
|
||||||
|
|
||||||
using Microsoft.MixedReality.Toolkit.Audio;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
public class AudioManagerDemo : MonoBehaviour
|
|
||||||
{
|
|
||||||
[SerializeField]
|
|
||||||
private KeyCode testKey = KeyCode.F;
|
|
||||||
[SerializeField]
|
|
||||||
private AudioEvent testEvent = null;
|
|
||||||
|
|
||||||
private void Update()
|
|
||||||
{
|
|
||||||
if (Input.GetKeyDown(testKey))
|
|
||||||
{
|
|
||||||
AudioManager.PlayEvent(testEvent, gameObject);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 711e853b8bbc4324aa65dff71a1b74df
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,259 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!29 &1
|
|
||||||
OcclusionCullingSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_OcclusionBakeSettings:
|
|
||||||
smallestOccluder: 5
|
|
||||||
smallestHole: 0.25
|
|
||||||
backfaceThreshold: 100
|
|
||||||
m_SceneGUID: 00000000000000000000000000000000
|
|
||||||
m_OcclusionCullingData: {fileID: 0}
|
|
||||||
--- !u!104 &2
|
|
||||||
RenderSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 9
|
|
||||||
m_Fog: 0
|
|
||||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
|
||||||
m_FogMode: 3
|
|
||||||
m_FogDensity: 0.01
|
|
||||||
m_LinearFogStart: 0
|
|
||||||
m_LinearFogEnd: 300
|
|
||||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
|
||||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
|
||||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
|
||||||
m_AmbientIntensity: 1
|
|
||||||
m_AmbientMode: 0
|
|
||||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
|
||||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_HaloStrength: 0.5
|
|
||||||
m_FlareStrength: 1
|
|
||||||
m_FlareFadeSpeed: 3
|
|
||||||
m_HaloTexture: {fileID: 0}
|
|
||||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
|
||||||
m_DefaultReflectionMode: 0
|
|
||||||
m_DefaultReflectionResolution: 128
|
|
||||||
m_ReflectionBounces: 1
|
|
||||||
m_ReflectionIntensity: 1
|
|
||||||
m_CustomReflection: {fileID: 0}
|
|
||||||
m_Sun: {fileID: 170076734}
|
|
||||||
m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
|
|
||||||
m_UseRadianceAmbientProbe: 0
|
|
||||||
--- !u!157 &3
|
|
||||||
LightmapSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 11
|
|
||||||
m_GIWorkflowMode: 0
|
|
||||||
m_GISettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_BounceScale: 1
|
|
||||||
m_IndirectOutputScale: 1
|
|
||||||
m_AlbedoBoost: 1
|
|
||||||
m_TemporalCoherenceThreshold: 1
|
|
||||||
m_EnvironmentLightingMode: 0
|
|
||||||
m_EnableBakedLightmaps: 1
|
|
||||||
m_EnableRealtimeLightmaps: 0
|
|
||||||
m_LightmapEditorSettings:
|
|
||||||
serializedVersion: 10
|
|
||||||
m_Resolution: 2
|
|
||||||
m_BakeResolution: 10
|
|
||||||
m_AtlasSize: 512
|
|
||||||
m_AO: 0
|
|
||||||
m_AOMaxDistance: 1
|
|
||||||
m_CompAOExponent: 1
|
|
||||||
m_CompAOExponentDirect: 0
|
|
||||||
m_Padding: 2
|
|
||||||
m_LightmapParameters: {fileID: 0}
|
|
||||||
m_LightmapsBakeMode: 1
|
|
||||||
m_TextureCompression: 1
|
|
||||||
m_FinalGather: 0
|
|
||||||
m_FinalGatherFiltering: 1
|
|
||||||
m_FinalGatherRayCount: 256
|
|
||||||
m_ReflectionCompression: 2
|
|
||||||
m_MixedBakeMode: 2
|
|
||||||
m_BakeBackend: 1
|
|
||||||
m_PVRSampling: 1
|
|
||||||
m_PVRDirectSampleCount: 32
|
|
||||||
m_PVRSampleCount: 256
|
|
||||||
m_PVRBounces: 2
|
|
||||||
m_PVRFilterTypeDirect: 0
|
|
||||||
m_PVRFilterTypeIndirect: 0
|
|
||||||
m_PVRFilterTypeAO: 0
|
|
||||||
m_PVRFilteringMode: 1
|
|
||||||
m_PVRCulling: 1
|
|
||||||
m_PVRFilteringGaussRadiusDirect: 1
|
|
||||||
m_PVRFilteringGaussRadiusIndirect: 5
|
|
||||||
m_PVRFilteringGaussRadiusAO: 2
|
|
||||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
|
||||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
|
||||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
|
||||||
m_ShowResolutionOverlay: 1
|
|
||||||
m_LightingDataAsset: {fileID: 0}
|
|
||||||
m_UseShadowmask: 1
|
|
||||||
--- !u!196 &4
|
|
||||||
NavMeshSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_BuildSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
agentTypeID: 0
|
|
||||||
agentRadius: 0.5
|
|
||||||
agentHeight: 2
|
|
||||||
agentSlope: 45
|
|
||||||
agentClimb: 0.4
|
|
||||||
ledgeDropHeight: 0
|
|
||||||
maxJumpAcrossDistance: 0
|
|
||||||
minRegionArea: 2
|
|
||||||
manualCellSize: 0
|
|
||||||
cellSize: 0.16666667
|
|
||||||
manualTileSize: 0
|
|
||||||
tileSize: 256
|
|
||||||
accuratePlacement: 0
|
|
||||||
debug:
|
|
||||||
m_Flags: 0
|
|
||||||
m_NavMeshData: {fileID: 0}
|
|
||||||
--- !u!1 &170076733
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInternal: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 170076735}
|
|
||||||
- component: {fileID: 170076734}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Directional Light
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!108 &170076734
|
|
||||||
Light:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInternal: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 170076733}
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 8
|
|
||||||
m_Type: 1
|
|
||||||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
|
|
||||||
m_Intensity: 1
|
|
||||||
m_Range: 10
|
|
||||||
m_SpotAngle: 30
|
|
||||||
m_CookieSize: 10
|
|
||||||
m_Shadows:
|
|
||||||
m_Type: 2
|
|
||||||
m_Resolution: -1
|
|
||||||
m_CustomResolution: -1
|
|
||||||
m_Strength: 1
|
|
||||||
m_Bias: 0.05
|
|
||||||
m_NormalBias: 0.4
|
|
||||||
m_NearPlane: 0.2
|
|
||||||
m_Cookie: {fileID: 0}
|
|
||||||
m_DrawHalo: 0
|
|
||||||
m_Flare: {fileID: 0}
|
|
||||||
m_RenderMode: 0
|
|
||||||
m_CullingMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
m_Lightmapping: 1
|
|
||||||
m_LightShadowCasterMode: 0
|
|
||||||
m_AreaSize: {x: 1, y: 1}
|
|
||||||
m_BounceIntensity: 1
|
|
||||||
m_ColorTemperature: 6570
|
|
||||||
m_UseColorTemperature: 0
|
|
||||||
m_ShadowRadius: 0
|
|
||||||
m_ShadowAngle: 0
|
|
||||||
--- !u!4 &170076735
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInternal: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 170076733}
|
|
||||||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
|
|
||||||
m_LocalPosition: {x: 0, y: 3, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_RootOrder: 1
|
|
||||||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
|
|
||||||
--- !u!1 &534669902
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInternal: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 534669905}
|
|
||||||
- component: {fileID: 534669904}
|
|
||||||
- component: {fileID: 534669903}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Main Camera
|
|
||||||
m_TagString: MainCamera
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!81 &534669903
|
|
||||||
AudioListener:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInternal: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 534669902}
|
|
||||||
m_Enabled: 1
|
|
||||||
--- !u!20 &534669904
|
|
||||||
Camera:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInternal: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 534669902}
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 2
|
|
||||||
m_ClearFlags: 1
|
|
||||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
|
||||||
m_projectionMatrixMode: 1
|
|
||||||
m_SensorSize: {x: 36, y: 24}
|
|
||||||
m_LensShift: {x: 0, y: 0}
|
|
||||||
m_GateFitMode: 2
|
|
||||||
m_FocalLength: 50
|
|
||||||
m_NormalizedViewPortRect:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
width: 1
|
|
||||||
height: 1
|
|
||||||
near clip plane: 0.3
|
|
||||||
far clip plane: 1000
|
|
||||||
field of view: 60
|
|
||||||
orthographic: 0
|
|
||||||
orthographic size: 5
|
|
||||||
m_Depth: -1
|
|
||||||
m_CullingMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
m_RenderingPath: -1
|
|
||||||
m_TargetTexture: {fileID: 0}
|
|
||||||
m_TargetDisplay: 0
|
|
||||||
m_TargetEye: 3
|
|
||||||
m_HDR: 1
|
|
||||||
m_AllowMSAA: 1
|
|
||||||
m_AllowDynamicResolution: 0
|
|
||||||
m_ForceIntoRT: 0
|
|
||||||
m_OcclusionCulling: 1
|
|
||||||
m_StereoConvergence: 10
|
|
||||||
m_StereoSeparation: 0.022
|
|
||||||
--- !u!4 &534669905
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInternal: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 534669902}
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 1, z: -10}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_RootOrder: 0
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
|
@ -4,8 +4,6 @@
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
|
|
||||||
namespace Microsoft.MixedReality.Toolkit.Audio
|
namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -38,6 +36,4 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
|
@ -6,7 +6,6 @@ using UnityEngine;
|
||||||
using UnityEngine.Audio;
|
using UnityEngine.Audio;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
|
|
||||||
namespace Microsoft.MixedReality.Toolkit.Audio
|
namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
{
|
{
|
||||||
|
@ -89,7 +88,7 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Names for the available editor types
|
/// Names for the available editor types
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private readonly string[] editorTypeNames = { "Events", "Parameters", "Batch Edit" };
|
private readonly string[] editorTypeNames = { "Events", "Parameters", "Batch Edit", "Switches" };
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The color to display a button for an event that is not currently being edited
|
/// The color to display a button for an event that is not currently being edited
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -134,7 +133,8 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
{
|
{
|
||||||
Events,
|
Events,
|
||||||
Parameters,
|
Parameters,
|
||||||
BatchEdit
|
BatchEdit,
|
||||||
|
Switches
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -197,6 +197,7 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
newNodeMenu.AddItem(new GUIContent("Delete Event"), false, ConfirmDeleteEvent);
|
newNodeMenu.AddItem(new GUIContent("Delete Event"), false, ConfirmDeleteEvent);
|
||||||
newNodeMenu.AddItem(new GUIContent("Preview Event"), false, PreviewEvent);
|
newNodeMenu.AddItem(new GUIContent("Preview Event"), false, PreviewEvent);
|
||||||
newNodeMenu.AddItem(new GUIContent("Stop Preview"), false, StopPreview);
|
newNodeMenu.AddItem(new GUIContent("Stop Preview"), false, StopPreview);
|
||||||
|
newNodeMenu.AddItem(new GUIContent("Sort Events"), false, SortEventList);
|
||||||
newNodeMenu.ShowAsContext();
|
newNodeMenu.ShowAsContext();
|
||||||
}
|
}
|
||||||
GUILayout.EndHorizontal();
|
GUILayout.EndHorizontal();
|
||||||
|
@ -217,6 +218,9 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
case EditorTypes.Parameters:
|
case EditorTypes.Parameters:
|
||||||
DrawParameterList();
|
DrawParameterList();
|
||||||
break;
|
break;
|
||||||
|
case EditorTypes.Switches:
|
||||||
|
DrawSwitchList();
|
||||||
|
break;
|
||||||
case EditorTypes.BatchEdit:
|
case EditorTypes.BatchEdit:
|
||||||
DrawBatchEditor();
|
DrawBatchEditor();
|
||||||
break;
|
break;
|
||||||
|
@ -317,6 +321,46 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
GUILayout.EndArea();
|
GUILayout.EndArea();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void DrawSwitchList()
|
||||||
|
{
|
||||||
|
this.parameterListRect.height = this.position.height / 2;
|
||||||
|
GUILayout.BeginArea(this.parameterListRect);
|
||||||
|
this.parameterListScrollPosition = EditorGUILayout.BeginScrollView(this.parameterListScrollPosition);
|
||||||
|
|
||||||
|
if (this.audioBank == null)
|
||||||
|
{
|
||||||
|
EditorGUILayout.EndScrollView();
|
||||||
|
GUILayout.EndArea();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILayout.Button("Add Switch"))
|
||||||
|
{
|
||||||
|
this.audioBank.AddSwitch();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.audioBank.EditorSwitches != null)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < this.audioBank.EditorSwitches.Count; i++)
|
||||||
|
{
|
||||||
|
AudioSwitch tempSwitch = this.audioBank.EditorSwitches[i];
|
||||||
|
if (tempSwitch == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
tempSwitch.DrawSwitchEditor();
|
||||||
|
if (GUILayout.Button("Delete Switch"))
|
||||||
|
{
|
||||||
|
this.audioBank.DeleteSwitch(tempSwitch);
|
||||||
|
}
|
||||||
|
EditorGUILayout.Separator();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EditorGUILayout.EndScrollView();
|
||||||
|
GUILayout.EndArea();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Draw the interface for editing multiple AudioEvents
|
/// Draw the interface for editing multiple AudioEvents
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -611,6 +655,14 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SortEventList()
|
||||||
|
{
|
||||||
|
if (this.audioBank != null)
|
||||||
|
{
|
||||||
|
this.audioBank.SortEvents();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#region Mouse
|
#region Mouse
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -801,8 +853,13 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
newNodeMenu.AddItem(new GUIContent("Add Random Selector"), false, AddNodeAtPosition<AudioRandomSelector>, position);
|
newNodeMenu.AddItem(new GUIContent("Add Random Selector"), false, AddNodeAtPosition<AudioRandomSelector>, position);
|
||||||
newNodeMenu.AddItem(new GUIContent("Add Sequence Selector"), false, AddNodeAtPosition<AudioSequenceSelector>, position);
|
newNodeMenu.AddItem(new GUIContent("Add Sequence Selector"), false, AddNodeAtPosition<AudioSequenceSelector>, position);
|
||||||
newNodeMenu.AddItem(new GUIContent("Add Language Selector"), false, AddNodeAtPosition<AudioLanguageSelector>, position);
|
newNodeMenu.AddItem(new GUIContent("Add Language Selector"), false, AddNodeAtPosition<AudioLanguageSelector>, position);
|
||||||
|
newNodeMenu.AddItem(new GUIContent("Add Switch Selector"), false, AddNodeAtPosition<AudioSwitchSelector>, position);
|
||||||
|
newNodeMenu.AddItem(new GUIContent("Add Blend Container"), false, AddNodeAtPosition<AudioBlendContainer>, position);
|
||||||
|
newNodeMenu.AddItem(new GUIContent("Add Blend File"), false, AddNodeAtPosition<AudioBlendFile>, position);
|
||||||
|
newNodeMenu.AddItem(new GUIContent("Add Snapshot Transition"), false, AddNodeAtPosition<AudioSnapshotTransition>, position);
|
||||||
newNodeMenu.AddItem(new GUIContent("Add Delay"), false, AddNodeAtPosition<AudioDelay>, position);
|
newNodeMenu.AddItem(new GUIContent("Add Delay"), false, AddNodeAtPosition<AudioDelay>, position);
|
||||||
newNodeMenu.AddItem(new GUIContent("Add Debug Message"), false, AddNodeAtPosition<AudioDebugMessage>, position);
|
newNodeMenu.AddItem(new GUIContent("Add Debug Message"), false, AddNodeAtPosition<AudioDebugMessage>, position);
|
||||||
|
newNodeMenu.AddItem(new GUIContent("Add Null File"), false, AddNodeAtPosition<AudioNullFile>, position);
|
||||||
newNodeMenu.AddItem(new GUIContent("Set Output Position"), false, SetOutputPosition, position);
|
newNodeMenu.AddItem(new GUIContent("Set Output Position"), false, SetOutputPosition, position);
|
||||||
newNodeMenu.ShowAsContext();
|
newNodeMenu.ShowAsContext();
|
||||||
}
|
}
|
||||||
|
@ -886,7 +943,7 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
{
|
{
|
||||||
AudioFile tempNode = AddNodeAtPosition<AudioFile>(tempPos);
|
AudioFile tempNode = AddNodeAtPosition<AudioFile>(tempPos);
|
||||||
tempNode.File = clips[i];
|
tempNode.File = clips[i];
|
||||||
tempPos.y += 200;
|
tempPos.y += 120;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1055,6 +1112,4 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
|
@ -6,8 +6,6 @@ using UnityEditor;
|
||||||
using UnityEngine.Audio;
|
using UnityEngine.Audio;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
|
|
||||||
namespace Microsoft.MixedReality.Toolkit.Audio
|
namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -35,19 +33,18 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// The vertical position of the next bus to be displayed in the window
|
/// The vertical position of the next bus to be displayed in the window
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private float busY = 0;
|
private float busY = 0;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The horizontal position of the next event to be displayed in the window
|
/// The horizontal position of the next event to be displayed in the window
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private const float eventX = 20;
|
private const float eventX = 220;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The horizontal position of the next emitter to be displayed in the window
|
/// The horizontal position of the next emitter to be displayed in the window
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private const float emitterX = 260;
|
private const float emitterX = eventX + 220;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The horizontal position of the next bus to be displayed in the window
|
/// The horizontal position of the next bus to be displayed in the window
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private const float busX = 500;
|
private const float busX = emitterX + 220;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The height of the GUI window for all nodes
|
/// The height of the GUI window for all nodes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -61,6 +58,14 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private const float WindowYInterval = 120;
|
private const float WindowYInterval = 120;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Window for listing previous events
|
||||||
|
/// </summary>
|
||||||
|
private Rect eventListRect = new Rect(0, 20, 300, 400);
|
||||||
|
/// <summary>
|
||||||
|
/// The scroll position of the event list
|
||||||
|
/// </summary>
|
||||||
|
private Vector2 eventListScrollPosition = new Vector2();
|
||||||
|
/// <summary>
|
||||||
/// The maximum number of saved previous frames in the profiler
|
/// The maximum number of saved previous frames in the profiler
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private const int MaxFrames = 300;
|
private const int MaxFrames = 300;
|
||||||
|
@ -87,6 +92,8 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
|
|
||||||
private void OnGUI()
|
private void OnGUI()
|
||||||
{
|
{
|
||||||
|
DrawEventList();
|
||||||
|
|
||||||
if (this.profilerFrames.Count > 0)
|
if (this.profilerFrames.Count > 0)
|
||||||
{
|
{
|
||||||
this.currentFrame = EditorGUILayout.IntSlider(this.currentFrame, 0, this.profilerFrames.Count - 1);
|
this.currentFrame = EditorGUILayout.IntSlider(this.currentFrame, 0, this.profilerFrames.Count - 1);
|
||||||
|
@ -112,16 +119,25 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void CollectProfilerEvents()
|
private void CollectProfilerEvents()
|
||||||
{
|
{
|
||||||
List<ActiveEvent> activeEvents = AudioManager.GetActiveEvents();
|
List<ActiveEvent> activeEvents = AudioManager.ActiveEvents;
|
||||||
ProfilerEvent[] currentEvents = new ProfilerEvent[activeEvents.Count];
|
ProfilerEvent[] currentEvents = new ProfilerEvent[activeEvents.Count];
|
||||||
for (int i = 0; i < currentEvents.Length; i++)
|
for (int i = 0; i < currentEvents.Length; i++)
|
||||||
{
|
{
|
||||||
ActiveEvent tempActiveEvent = activeEvents[i];
|
ActiveEvent tempActiveEvent = activeEvents[i];
|
||||||
|
if (tempActiveEvent.sources.Count == 0)
|
||||||
|
{
|
||||||
|
//Debug.LogFormat("No sources for event {0}", tempActiveEvent.name);
|
||||||
|
//continue;
|
||||||
|
}
|
||||||
ProfilerEvent tempProfilerEvent = new ProfilerEvent();
|
ProfilerEvent tempProfilerEvent = new ProfilerEvent();
|
||||||
tempProfilerEvent.eventName = tempActiveEvent.rootEvent.name;
|
tempProfilerEvent.eventName = tempActiveEvent.name;
|
||||||
tempProfilerEvent.clip = tempActiveEvent.source.clip;
|
if (tempActiveEvent.sources != null && tempActiveEvent.sources.Count > 0)
|
||||||
tempProfilerEvent.emitterObject = tempActiveEvent.source.gameObject;
|
{
|
||||||
tempProfilerEvent.bus = tempActiveEvent.source.outputAudioMixerGroup;
|
tempProfilerEvent.clip = tempActiveEvent.sources[0].source.clip;
|
||||||
|
tempProfilerEvent.emitterObject = tempActiveEvent.sources[0].source.gameObject;
|
||||||
|
tempProfilerEvent.bus = tempActiveEvent.rootEvent.Output.mixerGroup;
|
||||||
|
}
|
||||||
|
tempProfilerEvent.activeEvent = tempActiveEvent;
|
||||||
currentEvents[i] = tempProfilerEvent;
|
currentEvents[i] = tempProfilerEvent;
|
||||||
}
|
}
|
||||||
this.profilerFrames.Add(currentEvents);
|
this.profilerFrames.Add(currentEvents);
|
||||||
|
@ -132,6 +148,22 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void DrawEventList()
|
||||||
|
{
|
||||||
|
this.eventListRect.height = this.position.height;
|
||||||
|
GUILayout.BeginArea(this.eventListRect);
|
||||||
|
this.eventListScrollPosition = EditorGUILayout.BeginScrollView(this.eventListScrollPosition);
|
||||||
|
|
||||||
|
for (int i = 0; i < AudioManager.PreviousEvents.Count; i++)
|
||||||
|
{
|
||||||
|
ActiveEvent tempEvent = AudioManager.PreviousEvents[i];
|
||||||
|
GUILayout.Label(tempEvent.timeStarted + " : " + tempEvent.name + " - " + tempEvent.status.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
EditorGUILayout.EndScrollView();
|
||||||
|
GUILayout.EndArea();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Draw the nodes for the specified frame
|
/// Draw the nodes for the specified frame
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -149,16 +181,19 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
{
|
{
|
||||||
bool addedEmitter = false;
|
bool addedEmitter = false;
|
||||||
ProfilerEvent tempEvent = profilerEvents[i];
|
ProfilerEvent tempEvent = profilerEvents[i];
|
||||||
|
//this.currentProfiledEvent = tempEvent;
|
||||||
if (tempEvent == null)
|
if (tempEvent == null)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
GUI.Window(i, new Rect(eventX, this.eventY, WindowWidth, WindowHeight), DrawWindow, tempEvent.eventName);
|
//GUI.Window(i, new Rect(eventX, this.eventY, WindowWidth, WindowHeight), DrawWindow, tempEvent.eventName);
|
||||||
|
tempEvent.activeEvent.DrawNode(i, new Rect(eventX, this.eventY, WindowWidth, WindowHeight));
|
||||||
if (!emitters.Contains(tempEvent.emitterObject))
|
if (!emitters.Contains(tempEvent.emitterObject))
|
||||||
{
|
{
|
||||||
emitters.Add(tempEvent.emitterObject);
|
emitters.Add(tempEvent.emitterObject);
|
||||||
GUI.Window(i + 200, new Rect(emitterX, this.emitterY, WindowWidth, WindowHeight), DrawWindow, tempEvent.emitterObject.name);
|
string emitterName = tempEvent.emitterObject == null ? "No emitter" : tempEvent.emitterObject.name;
|
||||||
|
GUI.Window(i + 200, new Rect(emitterX, this.emitterY, WindowWidth, WindowHeight), DrawWindow, emitterName);
|
||||||
DrawCurve(new Vector2(eventX + WindowWidth, this.eventY), new Vector2(emitterX, this.emitterY));
|
DrawCurve(new Vector2(eventX + WindowWidth, this.eventY), new Vector2(emitterX, this.emitterY));
|
||||||
addedEmitter = true;
|
addedEmitter = true;
|
||||||
}
|
}
|
||||||
|
@ -205,6 +240,7 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// <param name="id">Index of the window to draw</param>
|
/// <param name="id">Index of the window to draw</param>
|
||||||
private void DrawWindow(int id)
|
private void DrawWindow(int id)
|
||||||
{
|
{
|
||||||
|
//EditorGUILayout.TextField("Volume:" + this.currentProfiledEvent.activeEvent.source.volume.ToString());
|
||||||
GUI.DragWindow();
|
GUI.DragWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -222,6 +258,4 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
Handles.DrawBezier(startPosition, endPosition, startTangent, endTangent, Color.white, null, 2);
|
Handles.DrawBezier(startPosition, endPosition, startTangent, endTangent, Color.white, null, 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
|
@ -27,5 +27,9 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// The audio bus the event is routed to
|
/// The audio bus the event is routed to
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public AudioMixerGroup bus;
|
public AudioMixerGroup bus;
|
||||||
|
/// <summary>
|
||||||
|
/// The Active Event reference for the playing sound
|
||||||
|
/// </summary>
|
||||||
|
public ActiveEvent activeEvent;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"name": "com.microsoft.edt.lib.audiomanager.editor",
|
||||||
|
"references": [
|
||||||
|
"GUID:60c6551998711ca4b9d346347b638d74"
|
||||||
|
],
|
||||||
|
"includePlatforms": [
|
||||||
|
"Editor"
|
||||||
|
],
|
||||||
|
"excludePlatforms": [],
|
||||||
|
"allowUnsafeCode": false,
|
||||||
|
"overrideReferences": false,
|
||||||
|
"precompiledReferences": [],
|
||||||
|
"autoReferenced": true,
|
||||||
|
"defineConstraints": [],
|
||||||
|
"versionDefines": [],
|
||||||
|
"noEngineReferences": false
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: db208f37fcd199d4795be7bcc62cc7a3
|
guid: eab1b4e90a4752a45bc67ff4328c748a
|
||||||
DefaultImporter:
|
AssemblyDefinitionImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
|
@ -1,40 +0,0 @@
|
||||||
{
|
|
||||||
"dependencies": {
|
|
||||||
"com.unity.ads": "2.0.8",
|
|
||||||
"com.unity.analytics": "3.2.3",
|
|
||||||
"com.unity.collab-proxy": "1.2.15",
|
|
||||||
"com.unity.package-manager-ui": "2.0.13",
|
|
||||||
"com.unity.purchasing": "2.0.3",
|
|
||||||
"com.unity.textmeshpro": "1.4.1",
|
|
||||||
"com.unity.modules.ai": "1.0.0",
|
|
||||||
"com.unity.modules.animation": "1.0.0",
|
|
||||||
"com.unity.modules.assetbundle": "1.0.0",
|
|
||||||
"com.unity.modules.audio": "1.0.0",
|
|
||||||
"com.unity.modules.cloth": "1.0.0",
|
|
||||||
"com.unity.modules.director": "1.0.0",
|
|
||||||
"com.unity.modules.imageconversion": "1.0.0",
|
|
||||||
"com.unity.modules.imgui": "1.0.0",
|
|
||||||
"com.unity.modules.jsonserialize": "1.0.0",
|
|
||||||
"com.unity.modules.particlesystem": "1.0.0",
|
|
||||||
"com.unity.modules.physics": "1.0.0",
|
|
||||||
"com.unity.modules.physics2d": "1.0.0",
|
|
||||||
"com.unity.modules.screencapture": "1.0.0",
|
|
||||||
"com.unity.modules.terrain": "1.0.0",
|
|
||||||
"com.unity.modules.terrainphysics": "1.0.0",
|
|
||||||
"com.unity.modules.tilemap": "1.0.0",
|
|
||||||
"com.unity.modules.ui": "1.0.0",
|
|
||||||
"com.unity.modules.uielements": "1.0.0",
|
|
||||||
"com.unity.modules.umbra": "1.0.0",
|
|
||||||
"com.unity.modules.unityanalytics": "1.0.0",
|
|
||||||
"com.unity.modules.unitywebrequest": "1.0.0",
|
|
||||||
"com.unity.modules.unitywebrequestassetbundle": "1.0.0",
|
|
||||||
"com.unity.modules.unitywebrequestaudio": "1.0.0",
|
|
||||||
"com.unity.modules.unitywebrequesttexture": "1.0.0",
|
|
||||||
"com.unity.modules.unitywebrequestwww": "1.0.0",
|
|
||||||
"com.unity.modules.vehicles": "1.0.0",
|
|
||||||
"com.unity.modules.video": "1.0.0",
|
|
||||||
"com.unity.modules.vr": "1.0.0",
|
|
||||||
"com.unity.modules.wind": "1.0.0",
|
|
||||||
"com.unity.modules.xr": "1.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!11 &1
|
|
||||||
AudioManager:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_Volume: 1
|
|
||||||
Rolloff Scale: 1
|
|
||||||
Doppler Factor: 1
|
|
||||||
Default Speaker Mode: 2
|
|
||||||
m_SampleRate: 0
|
|
||||||
m_DSPBufferSize: 1024
|
|
||||||
m_VirtualVoiceCount: 512
|
|
||||||
m_RealVoiceCount: 32
|
|
||||||
m_SpatializerPlugin:
|
|
||||||
m_AmbisonicDecoderPlugin:
|
|
||||||
m_DisableAudio: 0
|
|
||||||
m_VirtualizeEffects: 1
|
|
|
@ -1,6 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!236 &1
|
|
||||||
ClusterInputManager:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_Inputs: []
|
|
|
@ -1,30 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!55 &1
|
|
||||||
PhysicsManager:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 8
|
|
||||||
m_Gravity: {x: 0, y: -9.81, z: 0}
|
|
||||||
m_DefaultMaterial: {fileID: 0}
|
|
||||||
m_BounceThreshold: 2
|
|
||||||
m_SleepThreshold: 0.005
|
|
||||||
m_DefaultContactOffset: 0.01
|
|
||||||
m_DefaultSolverIterations: 6
|
|
||||||
m_DefaultSolverVelocityIterations: 1
|
|
||||||
m_QueriesHitBackfaces: 0
|
|
||||||
m_QueriesHitTriggers: 1
|
|
||||||
m_EnableAdaptiveForce: 0
|
|
||||||
m_ClothInterCollisionDistance: 0
|
|
||||||
m_ClothInterCollisionStiffness: 0
|
|
||||||
m_ContactsGeneration: 1
|
|
||||||
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
||||||
m_AutoSimulation: 1
|
|
||||||
m_AutoSyncTransforms: 0
|
|
||||||
m_ReuseCollisionCallbacks: 1
|
|
||||||
m_ClothInterCollisionSettingsToggle: 0
|
|
||||||
m_ContactPairsMode: 0
|
|
||||||
m_BroadphaseType: 0
|
|
||||||
m_WorldBounds:
|
|
||||||
m_Center: {x: 0, y: 0, z: 0}
|
|
||||||
m_Extent: {x: 250, y: 250, z: 250}
|
|
||||||
m_WorldSubdivisions: 8
|
|
|
@ -1,8 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!1045 &1
|
|
||||||
EditorBuildSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Scenes: []
|
|
||||||
m_configObjects: {}
|
|
|
@ -1,21 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!159 &1
|
|
||||||
EditorSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 7
|
|
||||||
m_ExternalVersionControlSupport: Visible Meta Files
|
|
||||||
m_SerializationMode: 2
|
|
||||||
m_LineEndingsForNewScripts: 2
|
|
||||||
m_DefaultBehaviorMode: 0
|
|
||||||
m_SpritePackerMode: 0
|
|
||||||
m_SpritePackerPaddingPower: 1
|
|
||||||
m_EtcTextureCompressorBehavior: 1
|
|
||||||
m_EtcTextureFastCompressor: 1
|
|
||||||
m_EtcTextureNormalCompressor: 2
|
|
||||||
m_EtcTextureBestCompressor: 4
|
|
||||||
m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd
|
|
||||||
m_ProjectGenerationRootNamespace:
|
|
||||||
m_UserGeneratedProjectSuffix:
|
|
||||||
m_CollabEditorSettings:
|
|
||||||
inProgressEnabled: 1
|
|
|
@ -1,62 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!30 &1
|
|
||||||
GraphicsSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 12
|
|
||||||
m_Deferred:
|
|
||||||
m_Mode: 1
|
|
||||||
m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_DeferredReflections:
|
|
||||||
m_Mode: 1
|
|
||||||
m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_ScreenSpaceShadows:
|
|
||||||
m_Mode: 1
|
|
||||||
m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_LegacyDeferred:
|
|
||||||
m_Mode: 1
|
|
||||||
m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_DepthNormals:
|
|
||||||
m_Mode: 1
|
|
||||||
m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_MotionVectors:
|
|
||||||
m_Mode: 1
|
|
||||||
m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_LightHalo:
|
|
||||||
m_Mode: 1
|
|
||||||
m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_LensFlare:
|
|
||||||
m_Mode: 1
|
|
||||||
m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_AlwaysIncludedShaders:
|
|
||||||
- {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
- {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
- {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
- {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
- {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
- {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
- {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_PreloadedShaders: []
|
|
||||||
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
|
|
||||||
type: 0}
|
|
||||||
m_CustomRenderPipeline: {fileID: 0}
|
|
||||||
m_TransparencySortMode: 0
|
|
||||||
m_TransparencySortAxis: {x: 0, y: 0, z: 1}
|
|
||||||
m_DefaultRenderingPath: 1
|
|
||||||
m_DefaultMobileRenderingPath: 1
|
|
||||||
m_TierSettings: []
|
|
||||||
m_LightmapStripping: 0
|
|
||||||
m_FogStripping: 0
|
|
||||||
m_InstancingStripping: 0
|
|
||||||
m_LightmapKeepPlain: 1
|
|
||||||
m_LightmapKeepDirCombined: 1
|
|
||||||
m_LightmapKeepDynamicPlain: 1
|
|
||||||
m_LightmapKeepDynamicDirCombined: 1
|
|
||||||
m_LightmapKeepShadowMask: 1
|
|
||||||
m_LightmapKeepSubtractive: 1
|
|
||||||
m_FogKeepLinear: 1
|
|
||||||
m_FogKeepExp: 1
|
|
||||||
m_FogKeepExp2: 1
|
|
||||||
m_AlbedoSwatchInfos: []
|
|
||||||
m_LightsUseLinearIntensity: 0
|
|
||||||
m_LightsUseColorTemperature: 0
|
|
|
@ -1,295 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!13 &1
|
|
||||||
InputManager:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Axes:
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Horizontal
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton: left
|
|
||||||
positiveButton: right
|
|
||||||
altNegativeButton: a
|
|
||||||
altPositiveButton: d
|
|
||||||
gravity: 3
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 3
|
|
||||||
snap: 1
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Vertical
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton: down
|
|
||||||
positiveButton: up
|
|
||||||
altNegativeButton: s
|
|
||||||
altPositiveButton: w
|
|
||||||
gravity: 3
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 3
|
|
||||||
snap: 1
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Fire1
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: left ctrl
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: mouse 0
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Fire2
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: left alt
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: mouse 1
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Fire3
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: left shift
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: mouse 2
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Jump
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: space
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Mouse X
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton:
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 0
|
|
||||||
dead: 0
|
|
||||||
sensitivity: 0.1
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 1
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Mouse Y
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton:
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 0
|
|
||||||
dead: 0
|
|
||||||
sensitivity: 0.1
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 1
|
|
||||||
axis: 1
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Mouse ScrollWheel
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton:
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 0
|
|
||||||
dead: 0
|
|
||||||
sensitivity: 0.1
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 1
|
|
||||||
axis: 2
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Horizontal
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton:
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 0
|
|
||||||
dead: 0.19
|
|
||||||
sensitivity: 1
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 2
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Vertical
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton:
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 0
|
|
||||||
dead: 0.19
|
|
||||||
sensitivity: 1
|
|
||||||
snap: 0
|
|
||||||
invert: 1
|
|
||||||
type: 2
|
|
||||||
axis: 1
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Fire1
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: joystick button 0
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Fire2
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: joystick button 1
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Fire3
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: joystick button 2
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Jump
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: joystick button 3
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton:
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Submit
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: return
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: joystick button 0
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Submit
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: enter
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: space
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
m_Name: Cancel
|
|
||||||
descriptiveName:
|
|
||||||
descriptiveNegativeName:
|
|
||||||
negativeButton:
|
|
||||||
positiveButton: escape
|
|
||||||
altNegativeButton:
|
|
||||||
altPositiveButton: joystick button 1
|
|
||||||
gravity: 1000
|
|
||||||
dead: 0.001
|
|
||||||
sensitivity: 1000
|
|
||||||
snap: 0
|
|
||||||
invert: 0
|
|
||||||
type: 0
|
|
||||||
axis: 0
|
|
||||||
joyNum: 0
|
|
|
@ -1,91 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!126 &1
|
|
||||||
NavMeshProjectSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
areas:
|
|
||||||
- name: Walkable
|
|
||||||
cost: 1
|
|
||||||
- name: Not Walkable
|
|
||||||
cost: 1
|
|
||||||
- name: Jump
|
|
||||||
cost: 2
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
- name:
|
|
||||||
cost: 1
|
|
||||||
m_LastAgentTypeID: -887442657
|
|
||||||
m_Settings:
|
|
||||||
- serializedVersion: 2
|
|
||||||
agentTypeID: 0
|
|
||||||
agentRadius: 0.5
|
|
||||||
agentHeight: 2
|
|
||||||
agentSlope: 45
|
|
||||||
agentClimb: 0.75
|
|
||||||
ledgeDropHeight: 0
|
|
||||||
maxJumpAcrossDistance: 0
|
|
||||||
minRegionArea: 2
|
|
||||||
manualCellSize: 0
|
|
||||||
cellSize: 0.16666667
|
|
||||||
manualTileSize: 0
|
|
||||||
tileSize: 256
|
|
||||||
accuratePlacement: 0
|
|
||||||
debug:
|
|
||||||
m_Flags: 0
|
|
||||||
m_SettingNames:
|
|
||||||
- Humanoid
|
|
|
@ -1,8 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!149 &1
|
|
||||||
NetworkManager:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_DebugLevel: 0
|
|
||||||
m_Sendrate: 15
|
|
||||||
m_AssetToPrefab: {}
|
|
|
@ -1,38 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!19 &1
|
|
||||||
Physics2DSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 4
|
|
||||||
m_Gravity: {x: 0, y: -9.81}
|
|
||||||
m_DefaultMaterial: {fileID: 0}
|
|
||||||
m_VelocityIterations: 8
|
|
||||||
m_PositionIterations: 3
|
|
||||||
m_VelocityThreshold: 1
|
|
||||||
m_MaxLinearCorrection: 0.2
|
|
||||||
m_MaxAngularCorrection: 8
|
|
||||||
m_MaxTranslationSpeed: 100
|
|
||||||
m_MaxRotationSpeed: 360
|
|
||||||
m_BaumgarteScale: 0.2
|
|
||||||
m_BaumgarteTimeOfImpactScale: 0.75
|
|
||||||
m_TimeToSleep: 0.5
|
|
||||||
m_LinearSleepTolerance: 0.01
|
|
||||||
m_AngularSleepTolerance: 2
|
|
||||||
m_DefaultContactOffset: 0.01
|
|
||||||
m_AutoSimulation: 1
|
|
||||||
m_QueriesHitTriggers: 1
|
|
||||||
m_QueriesStartInColliders: 1
|
|
||||||
m_ChangeStopsCallbacks: 0
|
|
||||||
m_CallbacksOnDisable: 1
|
|
||||||
m_ReuseCollisionCallbacks: 1
|
|
||||||
m_AutoSyncTransforms: 0
|
|
||||||
m_AlwaysShowColliders: 0
|
|
||||||
m_ShowColliderSleep: 1
|
|
||||||
m_ShowColliderContacts: 0
|
|
||||||
m_ShowColliderAABB: 0
|
|
||||||
m_ContactArrowScale: 0.2
|
|
||||||
m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
|
|
||||||
m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
|
|
||||||
m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
|
|
||||||
m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
|
|
||||||
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
|
@ -1,27 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!1386491679 &1
|
|
||||||
PresetManager:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_DefaultList:
|
|
||||||
- type:
|
|
||||||
m_NativeTypeID: 108
|
|
||||||
m_ManagedTypePPtr: {fileID: 0}
|
|
||||||
m_ManagedTypeFallback:
|
|
||||||
defaultPresets:
|
|
||||||
- m_Preset: {fileID: 2655988077585873504, guid: c1cf8506f04ef2c4a88b64b6c4202eea,
|
|
||||||
type: 2}
|
|
||||||
- type:
|
|
||||||
m_NativeTypeID: 1020
|
|
||||||
m_ManagedTypePPtr: {fileID: 0}
|
|
||||||
m_ManagedTypeFallback:
|
|
||||||
defaultPresets:
|
|
||||||
- m_Preset: {fileID: 2655988077585873504, guid: 0cd792cc87e492d43b4e95b205fc5cc6,
|
|
||||||
type: 2}
|
|
||||||
- type:
|
|
||||||
m_NativeTypeID: 1006
|
|
||||||
m_ManagedTypePPtr: {fileID: 0}
|
|
||||||
m_ManagedTypeFallback:
|
|
||||||
defaultPresets:
|
|
||||||
- m_Preset: {fileID: 2655988077585873504, guid: 7a99f8aa944efe94cb9bd74562b7d5f9,
|
|
||||||
type: 2}
|
|
|
@ -1,633 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!129 &1
|
|
||||||
PlayerSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 18
|
|
||||||
productGUID: a24b608b009df89438045a5fe6cc5398
|
|
||||||
AndroidProfiler: 0
|
|
||||||
AndroidFilterTouchesWhenObscured: 0
|
|
||||||
AndroidEnableSustainedPerformanceMode: 0
|
|
||||||
defaultScreenOrientation: 4
|
|
||||||
targetDevice: 2
|
|
||||||
useOnDemandResources: 0
|
|
||||||
accelerometerFrequency: 60
|
|
||||||
companyName: DefaultCompany
|
|
||||||
productName: UnityAudioManager
|
|
||||||
defaultCursor: {fileID: 0}
|
|
||||||
cursorHotspot: {x: 0, y: 0}
|
|
||||||
m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}
|
|
||||||
m_ShowUnitySplashScreen: 1
|
|
||||||
m_ShowUnitySplashLogo: 1
|
|
||||||
m_SplashScreenOverlayOpacity: 1
|
|
||||||
m_SplashScreenAnimation: 1
|
|
||||||
m_SplashScreenLogoStyle: 1
|
|
||||||
m_SplashScreenDrawMode: 0
|
|
||||||
m_SplashScreenBackgroundAnimationZoom: 1
|
|
||||||
m_SplashScreenLogoAnimationZoom: 1
|
|
||||||
m_SplashScreenBackgroundLandscapeAspect: 1
|
|
||||||
m_SplashScreenBackgroundPortraitAspect: 1
|
|
||||||
m_SplashScreenBackgroundLandscapeUvs:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
width: 1
|
|
||||||
height: 1
|
|
||||||
m_SplashScreenBackgroundPortraitUvs:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
width: 1
|
|
||||||
height: 1
|
|
||||||
m_SplashScreenLogos: []
|
|
||||||
m_VirtualRealitySplashScreen: {fileID: 0}
|
|
||||||
m_HolographicTrackingLossScreen: {fileID: 0}
|
|
||||||
defaultScreenWidth: 1024
|
|
||||||
defaultScreenHeight: 768
|
|
||||||
defaultScreenWidthWeb: 960
|
|
||||||
defaultScreenHeightWeb: 600
|
|
||||||
m_StereoRenderingPath: 0
|
|
||||||
m_ActiveColorSpace: 0
|
|
||||||
m_MTRendering: 1
|
|
||||||
m_StackTraceTypes: 010000000100000001000000010000000100000001000000
|
|
||||||
iosShowActivityIndicatorOnLoading: -1
|
|
||||||
androidShowActivityIndicatorOnLoading: -1
|
|
||||||
displayResolutionDialog: 1
|
|
||||||
iosUseCustomAppBackgroundBehavior: 0
|
|
||||||
iosAllowHTTPDownload: 1
|
|
||||||
allowedAutorotateToPortrait: 1
|
|
||||||
allowedAutorotateToPortraitUpsideDown: 1
|
|
||||||
allowedAutorotateToLandscapeRight: 1
|
|
||||||
allowedAutorotateToLandscapeLeft: 1
|
|
||||||
useOSAutorotation: 1
|
|
||||||
use32BitDisplayBuffer: 1
|
|
||||||
preserveFramebufferAlpha: 0
|
|
||||||
disableDepthAndStencilBuffers: 0
|
|
||||||
androidStartInFullscreen: 1
|
|
||||||
androidRenderOutsideSafeArea: 0
|
|
||||||
androidBlitType: 0
|
|
||||||
defaultIsNativeResolution: 1
|
|
||||||
macRetinaSupport: 1
|
|
||||||
runInBackground: 1
|
|
||||||
captureSingleScreen: 0
|
|
||||||
muteOtherAudioSources: 0
|
|
||||||
Prepare IOS For Recording: 0
|
|
||||||
Force IOS Speakers When Recording: 0
|
|
||||||
deferSystemGesturesMode: 0
|
|
||||||
hideHomeButton: 0
|
|
||||||
submitAnalytics: 1
|
|
||||||
usePlayerLog: 1
|
|
||||||
bakeCollisionMeshes: 0
|
|
||||||
forceSingleInstance: 0
|
|
||||||
resizableWindow: 0
|
|
||||||
useMacAppStoreValidation: 0
|
|
||||||
macAppStoreCategory: public.app-category.games
|
|
||||||
gpuSkinning: 1
|
|
||||||
graphicsJobs: 0
|
|
||||||
xboxPIXTextureCapture: 0
|
|
||||||
xboxEnableAvatar: 0
|
|
||||||
xboxEnableKinect: 0
|
|
||||||
xboxEnableKinectAutoTracking: 0
|
|
||||||
xboxEnableFitness: 0
|
|
||||||
visibleInBackground: 1
|
|
||||||
allowFullscreenSwitch: 1
|
|
||||||
graphicsJobMode: 0
|
|
||||||
fullscreenMode: 1
|
|
||||||
xboxSpeechDB: 0
|
|
||||||
xboxEnableHeadOrientation: 0
|
|
||||||
xboxEnableGuest: 0
|
|
||||||
xboxEnablePIXSampling: 0
|
|
||||||
metalFramebufferOnly: 0
|
|
||||||
xboxOneResolution: 0
|
|
||||||
xboxOneSResolution: 0
|
|
||||||
xboxOneXResolution: 3
|
|
||||||
xboxOneMonoLoggingLevel: 0
|
|
||||||
xboxOneLoggingLevel: 1
|
|
||||||
xboxOneDisableEsram: 0
|
|
||||||
xboxOneEnableTypeOptimization: 0
|
|
||||||
xboxOnePresentImmediateThreshold: 0
|
|
||||||
switchQueueCommandMemory: 0
|
|
||||||
switchQueueControlMemory: 16384
|
|
||||||
switchQueueComputeMemory: 262144
|
|
||||||
switchNVNShaderPoolsGranularity: 33554432
|
|
||||||
switchNVNDefaultPoolsGranularity: 16777216
|
|
||||||
switchNVNOtherPoolsGranularity: 16777216
|
|
||||||
vulkanEnableSetSRGBWrite: 0
|
|
||||||
m_SupportedAspectRatios:
|
|
||||||
4:3: 1
|
|
||||||
5:4: 1
|
|
||||||
16:10: 1
|
|
||||||
16:9: 1
|
|
||||||
Others: 1
|
|
||||||
bundleVersion: 0.1
|
|
||||||
preloadedAssets: []
|
|
||||||
metroInputSource: 0
|
|
||||||
wsaTransparentSwapchain: 0
|
|
||||||
m_HolographicPauseOnTrackingLoss: 1
|
|
||||||
xboxOneDisableKinectGpuReservation: 1
|
|
||||||
xboxOneEnable7thCore: 1
|
|
||||||
isWsaHolographicRemotingEnabled: 0
|
|
||||||
vrSettings:
|
|
||||||
cardboard:
|
|
||||||
depthFormat: 0
|
|
||||||
enableTransitionView: 0
|
|
||||||
daydream:
|
|
||||||
depthFormat: 0
|
|
||||||
useSustainedPerformanceMode: 0
|
|
||||||
enableVideoLayer: 0
|
|
||||||
useProtectedVideoMemory: 0
|
|
||||||
minimumSupportedHeadTracking: 0
|
|
||||||
maximumSupportedHeadTracking: 1
|
|
||||||
hololens:
|
|
||||||
depthFormat: 1
|
|
||||||
depthBufferSharingEnabled: 1
|
|
||||||
oculus:
|
|
||||||
sharedDepthBuffer: 1
|
|
||||||
dashSupport: 1
|
|
||||||
lowOverheadMode: 0
|
|
||||||
protectedContext: 0
|
|
||||||
v2Signing: 0
|
|
||||||
enable360StereoCapture: 0
|
|
||||||
protectGraphicsMemory: 0
|
|
||||||
enableFrameTimingStats: 0
|
|
||||||
useHDRDisplay: 0
|
|
||||||
m_ColorGamuts: 00000000
|
|
||||||
targetPixelDensity: 30
|
|
||||||
resolutionScalingMode: 0
|
|
||||||
androidSupportedAspectRatio: 1
|
|
||||||
androidMaxAspectRatio: 2.1
|
|
||||||
applicationIdentifier: {}
|
|
||||||
buildNumber: {}
|
|
||||||
AndroidBundleVersionCode: 1
|
|
||||||
AndroidMinSdkVersion: 16
|
|
||||||
AndroidTargetSdkVersion: 0
|
|
||||||
AndroidPreferredInstallLocation: 1
|
|
||||||
aotOptions:
|
|
||||||
stripEngineCode: 1
|
|
||||||
iPhoneStrippingLevel: 0
|
|
||||||
iPhoneScriptCallOptimization: 0
|
|
||||||
ForceInternetPermission: 0
|
|
||||||
ForceSDCardPermission: 0
|
|
||||||
CreateWallpaper: 0
|
|
||||||
APKExpansionFiles: 0
|
|
||||||
keepLoadedShadersAlive: 0
|
|
||||||
StripUnusedMeshComponents: 1
|
|
||||||
VertexChannelCompressionMask: 4054
|
|
||||||
iPhoneSdkVersion: 988
|
|
||||||
iOSTargetOSVersionString: 9.0
|
|
||||||
tvOSSdkVersion: 0
|
|
||||||
tvOSRequireExtendedGameController: 0
|
|
||||||
tvOSTargetOSVersionString: 9.0
|
|
||||||
uIPrerenderedIcon: 0
|
|
||||||
uIRequiresPersistentWiFi: 0
|
|
||||||
uIRequiresFullScreen: 1
|
|
||||||
uIStatusBarHidden: 1
|
|
||||||
uIExitOnSuspend: 0
|
|
||||||
uIStatusBarStyle: 0
|
|
||||||
iPhoneSplashScreen: {fileID: 0}
|
|
||||||
iPhoneHighResSplashScreen: {fileID: 0}
|
|
||||||
iPhoneTallHighResSplashScreen: {fileID: 0}
|
|
||||||
iPhone47inSplashScreen: {fileID: 0}
|
|
||||||
iPhone55inPortraitSplashScreen: {fileID: 0}
|
|
||||||
iPhone55inLandscapeSplashScreen: {fileID: 0}
|
|
||||||
iPhone58inPortraitSplashScreen: {fileID: 0}
|
|
||||||
iPhone58inLandscapeSplashScreen: {fileID: 0}
|
|
||||||
iPadPortraitSplashScreen: {fileID: 0}
|
|
||||||
iPadHighResPortraitSplashScreen: {fileID: 0}
|
|
||||||
iPadLandscapeSplashScreen: {fileID: 0}
|
|
||||||
iPadHighResLandscapeSplashScreen: {fileID: 0}
|
|
||||||
appleTVSplashScreen: {fileID: 0}
|
|
||||||
appleTVSplashScreen2x: {fileID: 0}
|
|
||||||
tvOSSmallIconLayers: []
|
|
||||||
tvOSSmallIconLayers2x: []
|
|
||||||
tvOSLargeIconLayers: []
|
|
||||||
tvOSLargeIconLayers2x: []
|
|
||||||
tvOSTopShelfImageLayers: []
|
|
||||||
tvOSTopShelfImageLayers2x: []
|
|
||||||
tvOSTopShelfImageWideLayers: []
|
|
||||||
tvOSTopShelfImageWideLayers2x: []
|
|
||||||
iOSLaunchScreenType: 0
|
|
||||||
iOSLaunchScreenPortrait: {fileID: 0}
|
|
||||||
iOSLaunchScreenLandscape: {fileID: 0}
|
|
||||||
iOSLaunchScreenBackgroundColor:
|
|
||||||
serializedVersion: 2
|
|
||||||
rgba: 0
|
|
||||||
iOSLaunchScreenFillPct: 100
|
|
||||||
iOSLaunchScreenSize: 100
|
|
||||||
iOSLaunchScreenCustomXibPath:
|
|
||||||
iOSLaunchScreeniPadType: 0
|
|
||||||
iOSLaunchScreeniPadImage: {fileID: 0}
|
|
||||||
iOSLaunchScreeniPadBackgroundColor:
|
|
||||||
serializedVersion: 2
|
|
||||||
rgba: 0
|
|
||||||
iOSLaunchScreeniPadFillPct: 100
|
|
||||||
iOSLaunchScreeniPadSize: 100
|
|
||||||
iOSLaunchScreeniPadCustomXibPath:
|
|
||||||
iOSUseLaunchScreenStoryboard: 0
|
|
||||||
iOSLaunchScreenCustomStoryboardPath:
|
|
||||||
iOSDeviceRequirements: []
|
|
||||||
iOSURLSchemes: []
|
|
||||||
iOSBackgroundModes: 0
|
|
||||||
iOSMetalForceHardShadows: 0
|
|
||||||
metalEditorSupport: 1
|
|
||||||
metalAPIValidation: 1
|
|
||||||
iOSRenderExtraFrameOnPause: 0
|
|
||||||
appleDeveloperTeamID:
|
|
||||||
iOSManualSigningProvisioningProfileID:
|
|
||||||
tvOSManualSigningProvisioningProfileID:
|
|
||||||
iOSManualSigningProvisioningProfileType: 0
|
|
||||||
tvOSManualSigningProvisioningProfileType: 0
|
|
||||||
appleEnableAutomaticSigning: 0
|
|
||||||
iOSRequireARKit: 0
|
|
||||||
iOSAutomaticallyDetectAndAddCapabilities: 1
|
|
||||||
appleEnableProMotion: 0
|
|
||||||
clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea
|
|
||||||
templatePackageId: com.unity.template.3d@1.3.0
|
|
||||||
templateDefaultScene: Assets/Scenes/SampleScene.unity
|
|
||||||
AndroidTargetArchitectures: 5
|
|
||||||
AndroidSplashScreenScale: 0
|
|
||||||
androidSplashScreen: {fileID: 0}
|
|
||||||
AndroidKeystoreName:
|
|
||||||
AndroidKeyaliasName:
|
|
||||||
AndroidBuildApkPerCpuArchitecture: 0
|
|
||||||
AndroidTVCompatibility: 1
|
|
||||||
AndroidIsGame: 1
|
|
||||||
AndroidEnableTango: 0
|
|
||||||
androidEnableBanner: 1
|
|
||||||
androidUseLowAccuracyLocation: 0
|
|
||||||
m_AndroidBanners:
|
|
||||||
- width: 320
|
|
||||||
height: 180
|
|
||||||
banner: {fileID: 0}
|
|
||||||
androidGamepadSupportLevel: 0
|
|
||||||
resolutionDialogBanner: {fileID: 0}
|
|
||||||
m_BuildTargetIcons: []
|
|
||||||
m_BuildTargetPlatformIcons: []
|
|
||||||
m_BuildTargetBatching:
|
|
||||||
- m_BuildTarget: Standalone
|
|
||||||
m_StaticBatching: 1
|
|
||||||
m_DynamicBatching: 0
|
|
||||||
- m_BuildTarget: tvOS
|
|
||||||
m_StaticBatching: 1
|
|
||||||
m_DynamicBatching: 0
|
|
||||||
- m_BuildTarget: Android
|
|
||||||
m_StaticBatching: 1
|
|
||||||
m_DynamicBatching: 0
|
|
||||||
- m_BuildTarget: iPhone
|
|
||||||
m_StaticBatching: 1
|
|
||||||
m_DynamicBatching: 0
|
|
||||||
- m_BuildTarget: WebGL
|
|
||||||
m_StaticBatching: 0
|
|
||||||
m_DynamicBatching: 0
|
|
||||||
m_BuildTargetGraphicsAPIs:
|
|
||||||
- m_BuildTarget: AndroidPlayer
|
|
||||||
m_APIs: 0b00000008000000
|
|
||||||
m_Automatic: 1
|
|
||||||
- m_BuildTarget: iOSSupport
|
|
||||||
m_APIs: 10000000
|
|
||||||
m_Automatic: 1
|
|
||||||
- m_BuildTarget: AppleTVSupport
|
|
||||||
m_APIs: 10000000
|
|
||||||
m_Automatic: 0
|
|
||||||
- m_BuildTarget: WebGLSupport
|
|
||||||
m_APIs: 0b000000
|
|
||||||
m_Automatic: 1
|
|
||||||
m_BuildTargetVRSettings:
|
|
||||||
- m_BuildTarget: Standalone
|
|
||||||
m_Enabled: 0
|
|
||||||
m_Devices:
|
|
||||||
- Oculus
|
|
||||||
- OpenVR
|
|
||||||
m_BuildTargetEnableVuforiaSettings: []
|
|
||||||
openGLRequireES31: 0
|
|
||||||
openGLRequireES31AEP: 0
|
|
||||||
m_TemplateCustomTags: {}
|
|
||||||
mobileMTRendering:
|
|
||||||
Android: 1
|
|
||||||
iPhone: 1
|
|
||||||
tvOS: 1
|
|
||||||
m_BuildTargetGroupLightmapEncodingQuality: []
|
|
||||||
m_BuildTargetGroupLightmapSettings: []
|
|
||||||
playModeTestRunnerEnabled: 0
|
|
||||||
runPlayModeTestAsEditModeTest: 0
|
|
||||||
actionOnDotNetUnhandledException: 1
|
|
||||||
enableInternalProfiler: 0
|
|
||||||
logObjCUncaughtExceptions: 1
|
|
||||||
enableCrashReportAPI: 0
|
|
||||||
cameraUsageDescription:
|
|
||||||
locationUsageDescription:
|
|
||||||
microphoneUsageDescription:
|
|
||||||
switchNetLibKey:
|
|
||||||
switchSocketMemoryPoolSize: 6144
|
|
||||||
switchSocketAllocatorPoolSize: 128
|
|
||||||
switchSocketConcurrencyLimit: 14
|
|
||||||
switchScreenResolutionBehavior: 2
|
|
||||||
switchUseCPUProfiler: 0
|
|
||||||
switchApplicationID: 0x01004b9000490000
|
|
||||||
switchNSODependencies:
|
|
||||||
switchTitleNames_0:
|
|
||||||
switchTitleNames_1:
|
|
||||||
switchTitleNames_2:
|
|
||||||
switchTitleNames_3:
|
|
||||||
switchTitleNames_4:
|
|
||||||
switchTitleNames_5:
|
|
||||||
switchTitleNames_6:
|
|
||||||
switchTitleNames_7:
|
|
||||||
switchTitleNames_8:
|
|
||||||
switchTitleNames_9:
|
|
||||||
switchTitleNames_10:
|
|
||||||
switchTitleNames_11:
|
|
||||||
switchTitleNames_12:
|
|
||||||
switchTitleNames_13:
|
|
||||||
switchTitleNames_14:
|
|
||||||
switchPublisherNames_0:
|
|
||||||
switchPublisherNames_1:
|
|
||||||
switchPublisherNames_2:
|
|
||||||
switchPublisherNames_3:
|
|
||||||
switchPublisherNames_4:
|
|
||||||
switchPublisherNames_5:
|
|
||||||
switchPublisherNames_6:
|
|
||||||
switchPublisherNames_7:
|
|
||||||
switchPublisherNames_8:
|
|
||||||
switchPublisherNames_9:
|
|
||||||
switchPublisherNames_10:
|
|
||||||
switchPublisherNames_11:
|
|
||||||
switchPublisherNames_12:
|
|
||||||
switchPublisherNames_13:
|
|
||||||
switchPublisherNames_14:
|
|
||||||
switchIcons_0: {fileID: 0}
|
|
||||||
switchIcons_1: {fileID: 0}
|
|
||||||
switchIcons_2: {fileID: 0}
|
|
||||||
switchIcons_3: {fileID: 0}
|
|
||||||
switchIcons_4: {fileID: 0}
|
|
||||||
switchIcons_5: {fileID: 0}
|
|
||||||
switchIcons_6: {fileID: 0}
|
|
||||||
switchIcons_7: {fileID: 0}
|
|
||||||
switchIcons_8: {fileID: 0}
|
|
||||||
switchIcons_9: {fileID: 0}
|
|
||||||
switchIcons_10: {fileID: 0}
|
|
||||||
switchIcons_11: {fileID: 0}
|
|
||||||
switchIcons_12: {fileID: 0}
|
|
||||||
switchIcons_13: {fileID: 0}
|
|
||||||
switchIcons_14: {fileID: 0}
|
|
||||||
switchSmallIcons_0: {fileID: 0}
|
|
||||||
switchSmallIcons_1: {fileID: 0}
|
|
||||||
switchSmallIcons_2: {fileID: 0}
|
|
||||||
switchSmallIcons_3: {fileID: 0}
|
|
||||||
switchSmallIcons_4: {fileID: 0}
|
|
||||||
switchSmallIcons_5: {fileID: 0}
|
|
||||||
switchSmallIcons_6: {fileID: 0}
|
|
||||||
switchSmallIcons_7: {fileID: 0}
|
|
||||||
switchSmallIcons_8: {fileID: 0}
|
|
||||||
switchSmallIcons_9: {fileID: 0}
|
|
||||||
switchSmallIcons_10: {fileID: 0}
|
|
||||||
switchSmallIcons_11: {fileID: 0}
|
|
||||||
switchSmallIcons_12: {fileID: 0}
|
|
||||||
switchSmallIcons_13: {fileID: 0}
|
|
||||||
switchSmallIcons_14: {fileID: 0}
|
|
||||||
switchManualHTML:
|
|
||||||
switchAccessibleURLs:
|
|
||||||
switchLegalInformation:
|
|
||||||
switchMainThreadStackSize: 1048576
|
|
||||||
switchPresenceGroupId:
|
|
||||||
switchLogoHandling: 0
|
|
||||||
switchReleaseVersion: 0
|
|
||||||
switchDisplayVersion: 1.0.0
|
|
||||||
switchStartupUserAccount: 0
|
|
||||||
switchTouchScreenUsage: 0
|
|
||||||
switchSupportedLanguagesMask: 0
|
|
||||||
switchLogoType: 0
|
|
||||||
switchApplicationErrorCodeCategory:
|
|
||||||
switchUserAccountSaveDataSize: 0
|
|
||||||
switchUserAccountSaveDataJournalSize: 0
|
|
||||||
switchApplicationAttribute: 0
|
|
||||||
switchCardSpecSize: -1
|
|
||||||
switchCardSpecClock: -1
|
|
||||||
switchRatingsMask: 0
|
|
||||||
switchRatingsInt_0: 0
|
|
||||||
switchRatingsInt_1: 0
|
|
||||||
switchRatingsInt_2: 0
|
|
||||||
switchRatingsInt_3: 0
|
|
||||||
switchRatingsInt_4: 0
|
|
||||||
switchRatingsInt_5: 0
|
|
||||||
switchRatingsInt_6: 0
|
|
||||||
switchRatingsInt_7: 0
|
|
||||||
switchRatingsInt_8: 0
|
|
||||||
switchRatingsInt_9: 0
|
|
||||||
switchRatingsInt_10: 0
|
|
||||||
switchRatingsInt_11: 0
|
|
||||||
switchRatingsInt_12: 0
|
|
||||||
switchLocalCommunicationIds_0:
|
|
||||||
switchLocalCommunicationIds_1:
|
|
||||||
switchLocalCommunicationIds_2:
|
|
||||||
switchLocalCommunicationIds_3:
|
|
||||||
switchLocalCommunicationIds_4:
|
|
||||||
switchLocalCommunicationIds_5:
|
|
||||||
switchLocalCommunicationIds_6:
|
|
||||||
switchLocalCommunicationIds_7:
|
|
||||||
switchParentalControl: 0
|
|
||||||
switchAllowsScreenshot: 1
|
|
||||||
switchAllowsVideoCapturing: 1
|
|
||||||
switchAllowsRuntimeAddOnContentInstall: 0
|
|
||||||
switchDataLossConfirmation: 0
|
|
||||||
switchUserAccountLockEnabled: 0
|
|
||||||
switchSystemResourceMemory: 16777216
|
|
||||||
switchSupportedNpadStyles: 3
|
|
||||||
switchNativeFsCacheSize: 32
|
|
||||||
switchIsHoldTypeHorizontal: 0
|
|
||||||
switchSupportedNpadCount: 8
|
|
||||||
switchSocketConfigEnabled: 0
|
|
||||||
switchTcpInitialSendBufferSize: 32
|
|
||||||
switchTcpInitialReceiveBufferSize: 64
|
|
||||||
switchTcpAutoSendBufferSizeMax: 256
|
|
||||||
switchTcpAutoReceiveBufferSizeMax: 256
|
|
||||||
switchUdpSendBufferSize: 9
|
|
||||||
switchUdpReceiveBufferSize: 42
|
|
||||||
switchSocketBufferEfficiency: 4
|
|
||||||
switchSocketInitializeEnabled: 1
|
|
||||||
switchNetworkInterfaceManagerInitializeEnabled: 1
|
|
||||||
switchPlayerConnectionEnabled: 1
|
|
||||||
ps4NPAgeRating: 12
|
|
||||||
ps4NPTitleSecret:
|
|
||||||
ps4NPTrophyPackPath:
|
|
||||||
ps4ParentalLevel: 11
|
|
||||||
ps4ContentID: ED1633-NPXX51362_00-0000000000000000
|
|
||||||
ps4Category: 0
|
|
||||||
ps4MasterVersion: 01.00
|
|
||||||
ps4AppVersion: 01.00
|
|
||||||
ps4AppType: 0
|
|
||||||
ps4ParamSfxPath:
|
|
||||||
ps4VideoOutPixelFormat: 0
|
|
||||||
ps4VideoOutInitialWidth: 1920
|
|
||||||
ps4VideoOutBaseModeInitialWidth: 1920
|
|
||||||
ps4VideoOutReprojectionRate: 60
|
|
||||||
ps4PronunciationXMLPath:
|
|
||||||
ps4PronunciationSIGPath:
|
|
||||||
ps4BackgroundImagePath:
|
|
||||||
ps4StartupImagePath:
|
|
||||||
ps4StartupImagesFolder:
|
|
||||||
ps4IconImagesFolder:
|
|
||||||
ps4SaveDataImagePath:
|
|
||||||
ps4SdkOverride:
|
|
||||||
ps4BGMPath:
|
|
||||||
ps4ShareFilePath:
|
|
||||||
ps4ShareOverlayImagePath:
|
|
||||||
ps4PrivacyGuardImagePath:
|
|
||||||
ps4NPtitleDatPath:
|
|
||||||
ps4RemotePlayKeyAssignment: -1
|
|
||||||
ps4RemotePlayKeyMappingDir:
|
|
||||||
ps4PlayTogetherPlayerCount: 0
|
|
||||||
ps4EnterButtonAssignment: 1
|
|
||||||
ps4ApplicationParam1: 0
|
|
||||||
ps4ApplicationParam2: 0
|
|
||||||
ps4ApplicationParam3: 0
|
|
||||||
ps4ApplicationParam4: 0
|
|
||||||
ps4DownloadDataSize: 0
|
|
||||||
ps4GarlicHeapSize: 2048
|
|
||||||
ps4ProGarlicHeapSize: 2560
|
|
||||||
ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ
|
|
||||||
ps4pnSessions: 1
|
|
||||||
ps4pnPresence: 1
|
|
||||||
ps4pnFriends: 1
|
|
||||||
ps4pnGameCustomData: 1
|
|
||||||
playerPrefsSupport: 0
|
|
||||||
enableApplicationExit: 0
|
|
||||||
resetTempFolder: 1
|
|
||||||
restrictedAudioUsageRights: 0
|
|
||||||
ps4UseResolutionFallback: 0
|
|
||||||
ps4ReprojectionSupport: 0
|
|
||||||
ps4UseAudio3dBackend: 0
|
|
||||||
ps4SocialScreenEnabled: 0
|
|
||||||
ps4ScriptOptimizationLevel: 0
|
|
||||||
ps4Audio3dVirtualSpeakerCount: 14
|
|
||||||
ps4attribCpuUsage: 0
|
|
||||||
ps4PatchPkgPath:
|
|
||||||
ps4PatchLatestPkgPath:
|
|
||||||
ps4PatchChangeinfoPath:
|
|
||||||
ps4PatchDayOne: 0
|
|
||||||
ps4attribUserManagement: 0
|
|
||||||
ps4attribMoveSupport: 0
|
|
||||||
ps4attrib3DSupport: 0
|
|
||||||
ps4attribShareSupport: 0
|
|
||||||
ps4attribExclusiveVR: 0
|
|
||||||
ps4disableAutoHideSplash: 0
|
|
||||||
ps4videoRecordingFeaturesUsed: 0
|
|
||||||
ps4contentSearchFeaturesUsed: 0
|
|
||||||
ps4attribEyeToEyeDistanceSettingVR: 0
|
|
||||||
ps4IncludedModules: []
|
|
||||||
monoEnv:
|
|
||||||
splashScreenBackgroundSourceLandscape: {fileID: 0}
|
|
||||||
splashScreenBackgroundSourcePortrait: {fileID: 0}
|
|
||||||
spritePackerPolicy:
|
|
||||||
webGLMemorySize: 256
|
|
||||||
webGLExceptionSupport: 1
|
|
||||||
webGLNameFilesAsHashes: 0
|
|
||||||
webGLDataCaching: 1
|
|
||||||
webGLDebugSymbols: 0
|
|
||||||
webGLEmscriptenArgs:
|
|
||||||
webGLModulesDirectory:
|
|
||||||
webGLTemplate: APPLICATION:Default
|
|
||||||
webGLAnalyzeBuildSize: 0
|
|
||||||
webGLUseEmbeddedResources: 0
|
|
||||||
webGLCompressionFormat: 1
|
|
||||||
webGLLinkerTarget: 1
|
|
||||||
webGLThreadsSupport: 0
|
|
||||||
scriptingDefineSymbols: {}
|
|
||||||
platformArchitecture: {}
|
|
||||||
scriptingBackend: {}
|
|
||||||
il2cppCompilerConfiguration: {}
|
|
||||||
managedStrippingLevel: {}
|
|
||||||
incrementalIl2cppBuild: {}
|
|
||||||
allowUnsafeCode: 0
|
|
||||||
additionalIl2CppArgs:
|
|
||||||
scriptingRuntimeVersion: 1
|
|
||||||
apiCompatibilityLevelPerPlatform: {}
|
|
||||||
m_RenderingPath: 1
|
|
||||||
m_MobileRenderingPath: 1
|
|
||||||
metroPackageName: Template_3D
|
|
||||||
metroPackageVersion:
|
|
||||||
metroCertificatePath:
|
|
||||||
metroCertificatePassword:
|
|
||||||
metroCertificateSubject:
|
|
||||||
metroCertificateIssuer:
|
|
||||||
metroCertificateNotAfter: 0000000000000000
|
|
||||||
metroApplicationDescription: Template_3D
|
|
||||||
wsaImages: {}
|
|
||||||
metroTileShortName:
|
|
||||||
metroTileShowName: 0
|
|
||||||
metroMediumTileShowName: 0
|
|
||||||
metroLargeTileShowName: 0
|
|
||||||
metroWideTileShowName: 0
|
|
||||||
metroSupportStreamingInstall: 0
|
|
||||||
metroLastRequiredScene: 0
|
|
||||||
metroDefaultTileSize: 1
|
|
||||||
metroTileForegroundText: 2
|
|
||||||
metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
|
|
||||||
metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628,
|
|
||||||
a: 1}
|
|
||||||
metroSplashScreenUseBackgroundColor: 0
|
|
||||||
platformCapabilities: {}
|
|
||||||
metroTargetDeviceFamilies: {}
|
|
||||||
metroFTAName:
|
|
||||||
metroFTAFileTypes: []
|
|
||||||
metroProtocolName:
|
|
||||||
metroCompilationOverrides: 1
|
|
||||||
XboxOneProductId:
|
|
||||||
XboxOneUpdateKey:
|
|
||||||
XboxOneSandboxId:
|
|
||||||
XboxOneContentId:
|
|
||||||
XboxOneTitleId:
|
|
||||||
XboxOneSCId:
|
|
||||||
XboxOneGameOsOverridePath:
|
|
||||||
XboxOnePackagingOverridePath:
|
|
||||||
XboxOneAppManifestOverridePath:
|
|
||||||
XboxOneVersion: 1.0.0.0
|
|
||||||
XboxOnePackageEncryption: 0
|
|
||||||
XboxOnePackageUpdateGranularity: 2
|
|
||||||
XboxOneDescription:
|
|
||||||
XboxOneLanguage:
|
|
||||||
- enus
|
|
||||||
XboxOneCapability: []
|
|
||||||
XboxOneGameRating: {}
|
|
||||||
XboxOneIsContentPackage: 0
|
|
||||||
XboxOneEnableGPUVariability: 1
|
|
||||||
XboxOneSockets: {}
|
|
||||||
XboxOneSplashScreen: {fileID: 0}
|
|
||||||
XboxOneAllowedProductIds: []
|
|
||||||
XboxOnePersistentLocalStorageSize: 0
|
|
||||||
XboxOneXTitleMemory: 8
|
|
||||||
xboxOneScriptCompiler: 1
|
|
||||||
XboxOneOverrideIdentityName:
|
|
||||||
vrEditorSettings:
|
|
||||||
daydream:
|
|
||||||
daydreamIconForeground: {fileID: 0}
|
|
||||||
daydreamIconBackground: {fileID: 0}
|
|
||||||
cloudServicesEnabled:
|
|
||||||
UNet: 1
|
|
||||||
luminIcon:
|
|
||||||
m_Name:
|
|
||||||
m_ModelFolderPath:
|
|
||||||
m_PortalFolderPath:
|
|
||||||
luminCert:
|
|
||||||
m_CertPath:
|
|
||||||
m_PrivateKeyPath:
|
|
||||||
luminIsChannelApp: 0
|
|
||||||
luminVersion:
|
|
||||||
m_VersionCode: 1
|
|
||||||
m_VersionName:
|
|
||||||
facebookSdkVersion: 7.9.4
|
|
||||||
facebookAppId:
|
|
||||||
facebookCookies: 1
|
|
||||||
facebookLogging: 1
|
|
||||||
facebookStatus: 1
|
|
||||||
facebookXfbml: 0
|
|
||||||
facebookFrictionlessRequests: 1
|
|
||||||
apiCompatibilityLevel: 6
|
|
||||||
cloudProjectId:
|
|
||||||
framebufferDepthMemorylessMode: 0
|
|
||||||
projectName:
|
|
||||||
organizationId:
|
|
||||||
cloudEnabled: 0
|
|
||||||
enableNativePlatformBackendsForNewInputSystem: 0
|
|
||||||
disableOldInputManagerSupport: 0
|
|
||||||
legacyClampBlendShapeWeights: 0
|
|
|
@ -1 +0,0 @@
|
||||||
m_EditorVersion: 2018.4.23f1
|
|
|
@ -1,190 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!47 &1
|
|
||||||
QualitySettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 5
|
|
||||||
m_CurrentQuality: 4
|
|
||||||
m_QualitySettings:
|
|
||||||
- serializedVersion: 2
|
|
||||||
name: Very Low
|
|
||||||
pixelLightCount: 0
|
|
||||||
shadows: 0
|
|
||||||
shadowResolution: 0
|
|
||||||
shadowProjection: 1
|
|
||||||
shadowCascades: 1
|
|
||||||
shadowDistance: 15
|
|
||||||
shadowNearPlaneOffset: 3
|
|
||||||
shadowCascade2Split: 0.33333334
|
|
||||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
|
||||||
shadowmaskMode: 0
|
|
||||||
blendWeights: 1
|
|
||||||
textureQuality: 1
|
|
||||||
anisotropicTextures: 0
|
|
||||||
antiAliasing: 0
|
|
||||||
softParticles: 0
|
|
||||||
softVegetation: 0
|
|
||||||
realtimeReflectionProbes: 0
|
|
||||||
billboardsFaceCameraPosition: 0
|
|
||||||
vSyncCount: 0
|
|
||||||
lodBias: 0.3
|
|
||||||
maximumLODLevel: 0
|
|
||||||
particleRaycastBudget: 4
|
|
||||||
asyncUploadTimeSlice: 2
|
|
||||||
asyncUploadBufferSize: 16
|
|
||||||
resolutionScalingFixedDPIFactor: 1
|
|
||||||
excludedTargetPlatforms: []
|
|
||||||
- serializedVersion: 2
|
|
||||||
name: Low
|
|
||||||
pixelLightCount: 0
|
|
||||||
shadows: 0
|
|
||||||
shadowResolution: 0
|
|
||||||
shadowProjection: 1
|
|
||||||
shadowCascades: 1
|
|
||||||
shadowDistance: 20
|
|
||||||
shadowNearPlaneOffset: 3
|
|
||||||
shadowCascade2Split: 0.33333334
|
|
||||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
|
||||||
shadowmaskMode: 0
|
|
||||||
blendWeights: 2
|
|
||||||
textureQuality: 0
|
|
||||||
anisotropicTextures: 0
|
|
||||||
antiAliasing: 0
|
|
||||||
softParticles: 0
|
|
||||||
softVegetation: 0
|
|
||||||
realtimeReflectionProbes: 0
|
|
||||||
billboardsFaceCameraPosition: 0
|
|
||||||
vSyncCount: 0
|
|
||||||
lodBias: 0.4
|
|
||||||
maximumLODLevel: 0
|
|
||||||
particleRaycastBudget: 16
|
|
||||||
asyncUploadTimeSlice: 2
|
|
||||||
asyncUploadBufferSize: 16
|
|
||||||
resolutionScalingFixedDPIFactor: 1
|
|
||||||
excludedTargetPlatforms: []
|
|
||||||
- serializedVersion: 2
|
|
||||||
name: Medium
|
|
||||||
pixelLightCount: 1
|
|
||||||
shadows: 1
|
|
||||||
shadowResolution: 0
|
|
||||||
shadowProjection: 1
|
|
||||||
shadowCascades: 1
|
|
||||||
shadowDistance: 20
|
|
||||||
shadowNearPlaneOffset: 3
|
|
||||||
shadowCascade2Split: 0.33333334
|
|
||||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
|
||||||
shadowmaskMode: 0
|
|
||||||
blendWeights: 2
|
|
||||||
textureQuality: 0
|
|
||||||
anisotropicTextures: 1
|
|
||||||
antiAliasing: 0
|
|
||||||
softParticles: 0
|
|
||||||
softVegetation: 0
|
|
||||||
realtimeReflectionProbes: 0
|
|
||||||
billboardsFaceCameraPosition: 0
|
|
||||||
vSyncCount: 1
|
|
||||||
lodBias: 0.7
|
|
||||||
maximumLODLevel: 0
|
|
||||||
particleRaycastBudget: 64
|
|
||||||
asyncUploadTimeSlice: 2
|
|
||||||
asyncUploadBufferSize: 16
|
|
||||||
resolutionScalingFixedDPIFactor: 1
|
|
||||||
excludedTargetPlatforms: []
|
|
||||||
- serializedVersion: 2
|
|
||||||
name: High
|
|
||||||
pixelLightCount: 2
|
|
||||||
shadows: 2
|
|
||||||
shadowResolution: 1
|
|
||||||
shadowProjection: 1
|
|
||||||
shadowCascades: 2
|
|
||||||
shadowDistance: 40
|
|
||||||
shadowNearPlaneOffset: 3
|
|
||||||
shadowCascade2Split: 0.33333334
|
|
||||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
|
||||||
shadowmaskMode: 1
|
|
||||||
blendWeights: 2
|
|
||||||
textureQuality: 0
|
|
||||||
anisotropicTextures: 1
|
|
||||||
antiAliasing: 2
|
|
||||||
softParticles: 0
|
|
||||||
softVegetation: 1
|
|
||||||
realtimeReflectionProbes: 1
|
|
||||||
billboardsFaceCameraPosition: 1
|
|
||||||
vSyncCount: 1
|
|
||||||
lodBias: 1
|
|
||||||
maximumLODLevel: 0
|
|
||||||
particleRaycastBudget: 256
|
|
||||||
asyncUploadTimeSlice: 2
|
|
||||||
asyncUploadBufferSize: 16
|
|
||||||
resolutionScalingFixedDPIFactor: 1
|
|
||||||
excludedTargetPlatforms: []
|
|
||||||
- serializedVersion: 2
|
|
||||||
name: Very High
|
|
||||||
pixelLightCount: 3
|
|
||||||
shadows: 2
|
|
||||||
shadowResolution: 2
|
|
||||||
shadowProjection: 1
|
|
||||||
shadowCascades: 2
|
|
||||||
shadowDistance: 40
|
|
||||||
shadowNearPlaneOffset: 3
|
|
||||||
shadowCascade2Split: 0.33333334
|
|
||||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
|
||||||
shadowmaskMode: 1
|
|
||||||
blendWeights: 4
|
|
||||||
textureQuality: 0
|
|
||||||
anisotropicTextures: 1
|
|
||||||
antiAliasing: 4
|
|
||||||
softParticles: 1
|
|
||||||
softVegetation: 1
|
|
||||||
realtimeReflectionProbes: 1
|
|
||||||
billboardsFaceCameraPosition: 1
|
|
||||||
vSyncCount: 1
|
|
||||||
lodBias: 1.5
|
|
||||||
maximumLODLevel: 0
|
|
||||||
particleRaycastBudget: 1024
|
|
||||||
asyncUploadTimeSlice: 2
|
|
||||||
asyncUploadBufferSize: 16
|
|
||||||
resolutionScalingFixedDPIFactor: 1
|
|
||||||
excludedTargetPlatforms: []
|
|
||||||
- serializedVersion: 2
|
|
||||||
name: Ultra
|
|
||||||
pixelLightCount: 4
|
|
||||||
shadows: 2
|
|
||||||
shadowResolution: 2
|
|
||||||
shadowProjection: 1
|
|
||||||
shadowCascades: 4
|
|
||||||
shadowDistance: 150
|
|
||||||
shadowNearPlaneOffset: 3
|
|
||||||
shadowCascade2Split: 0.33333334
|
|
||||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
|
||||||
shadowmaskMode: 1
|
|
||||||
blendWeights: 4
|
|
||||||
textureQuality: 0
|
|
||||||
anisotropicTextures: 1
|
|
||||||
antiAliasing: 4
|
|
||||||
softParticles: 1
|
|
||||||
softVegetation: 1
|
|
||||||
realtimeReflectionProbes: 1
|
|
||||||
billboardsFaceCameraPosition: 1
|
|
||||||
vSyncCount: 1
|
|
||||||
lodBias: 2
|
|
||||||
maximumLODLevel: 0
|
|
||||||
particleRaycastBudget: 4096
|
|
||||||
asyncUploadTimeSlice: 2
|
|
||||||
asyncUploadBufferSize: 16
|
|
||||||
resolutionScalingFixedDPIFactor: 1
|
|
||||||
excludedTargetPlatforms: []
|
|
||||||
m_PerPlatformDefaultQuality:
|
|
||||||
Android: 2
|
|
||||||
Nintendo 3DS: 5
|
|
||||||
Nintendo Switch: 5
|
|
||||||
PS4: 5
|
|
||||||
PSP2: 2
|
|
||||||
Standalone: 5
|
|
||||||
Tizen: 2
|
|
||||||
WebGL: 3
|
|
||||||
WiiU: 5
|
|
||||||
Windows Store Apps: 5
|
|
||||||
XboxOne: 5
|
|
||||||
iPhone: 2
|
|
||||||
tvOS: 2
|
|
|
@ -1,43 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!78 &1
|
|
||||||
TagManager:
|
|
||||||
serializedVersion: 2
|
|
||||||
tags: []
|
|
||||||
layers:
|
|
||||||
- Default
|
|
||||||
- TransparentFX
|
|
||||||
- Ignore Raycast
|
|
||||||
-
|
|
||||||
- Water
|
|
||||||
- UI
|
|
||||||
-
|
|
||||||
-
|
|
||||||
- PostProcessing
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
m_SortingLayers:
|
|
||||||
- name: Default
|
|
||||||
uniqueID: 0
|
|
||||||
locked: 0
|
|
|
@ -1,9 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!5 &1
|
|
||||||
TimeManager:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
Fixed Timestep: 0.02
|
|
||||||
Maximum Allowed Timestep: 0.1
|
|
||||||
m_TimeScale: 1
|
|
||||||
Maximum Particle Timestep: 0.03
|
|
|
@ -1,34 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!310 &1
|
|
||||||
UnityConnectSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 1
|
|
||||||
m_Enabled: 0
|
|
||||||
m_TestMode: 0
|
|
||||||
m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
|
|
||||||
m_EventUrl: https://cdp.cloud.unity3d.com/v1/events
|
|
||||||
m_ConfigUrl: https://config.uca.cloud.unity3d.com
|
|
||||||
m_TestInitMode: 0
|
|
||||||
CrashReportingSettings:
|
|
||||||
m_EventUrl: https://perf-events.cloud.unity3d.com
|
|
||||||
m_Enabled: 0
|
|
||||||
m_LogBufferSize: 10
|
|
||||||
m_CaptureEditorExceptions: 1
|
|
||||||
UnityPurchasingSettings:
|
|
||||||
m_Enabled: 0
|
|
||||||
m_TestMode: 0
|
|
||||||
UnityAnalyticsSettings:
|
|
||||||
m_Enabled: 0
|
|
||||||
m_TestMode: 0
|
|
||||||
m_InitializeOnStartup: 1
|
|
||||||
UnityAdsSettings:
|
|
||||||
m_Enabled: 0
|
|
||||||
m_InitializeOnStartup: 1
|
|
||||||
m_TestMode: 0
|
|
||||||
m_IosGameId:
|
|
||||||
m_AndroidGameId:
|
|
||||||
m_GameIds: {}
|
|
||||||
m_GameId:
|
|
||||||
PerformanceReportingSettings:
|
|
||||||
m_Enabled: 0
|
|
|
@ -1,11 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!937362698 &1
|
|
||||||
VFXManager:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_IndirectShader: {fileID: 0}
|
|
||||||
m_CopyBufferShader: {fileID: 0}
|
|
||||||
m_SortShader: {fileID: 0}
|
|
||||||
m_RenderPipeSettingsPath:
|
|
||||||
m_FixedTimeStep: 0.016666668
|
|
||||||
m_MaxDeltaTime: 0.05
|
|
|
@ -1,5 +1,5 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: fb43ba78ec5f75b47ba922a20f60ae54
|
guid: 5a51bb11551bdf846be32eae43f98986
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
|
@ -1,15 +1,26 @@
|
||||||
// Copyright (c) Microsoft Corporation.
|
// Copyright (c) Microsoft Corporation.
|
||||||
// Licensed under the MIT License.
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using System;
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
using UnityEditor;
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace Microsoft.MixedReality.Toolkit.Audio
|
namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The runtime event of an Audio Event that is currently playing
|
/// The runtime event of an Audio Event that is currently playing
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[System.Serializable]
|
||||||
public class ActiveEvent
|
public class ActiveEvent
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The name of the audio event to be played
|
||||||
|
/// </summary>
|
||||||
|
public string name = "";
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The AudioEvent that is being played
|
/// The AudioEvent that is being played
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -17,11 +28,24 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The AudioSource to play the AudioEvent on
|
/// The AudioSource to play the AudioEvent on
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public AudioSource source { get; private set; }
|
public List<EventSource> sources { get; private set; } = new List<EventSource>();
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The AudioClip to play from the event
|
/// The latest status of the event
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public AudioClip clip;
|
public EventStatus status = EventStatus.Initialized;
|
||||||
|
/// <summary>
|
||||||
|
/// The AudioParameters in use by the event
|
||||||
|
/// </summary>
|
||||||
|
private ActiveParameter[] activeParameters;
|
||||||
|
public string timeStarted = "";
|
||||||
|
/// <summary>
|
||||||
|
/// The Transform to use to calculate the user's gaze position
|
||||||
|
/// </summary>
|
||||||
|
private Transform gazeReference;
|
||||||
|
/// <summary>
|
||||||
|
/// The transform that the sound should follow in the scene
|
||||||
|
/// </summary>
|
||||||
|
internal Transform emitterTransform = null;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The text associated with the event, usually for subtitles
|
/// The text associated with the event, usually for subtitles
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -43,10 +67,6 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private float eventPitch = 1;
|
private float eventPitch = 1;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The amount of time in seconds that the event has been active
|
|
||||||
/// </summary>
|
|
||||||
private float elapsedTime = 0;
|
|
||||||
/// <summary>
|
|
||||||
/// The amount of time in seconds that the event will fade in or out
|
/// The amount of time in seconds that the event will fade in or out
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private float targetFadeTime = 0;
|
private float targetFadeTime = 0;
|
||||||
|
@ -55,9 +75,13 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private float currentFadeTime = 0;
|
private float currentFadeTime = 0;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// The amount of time in seconds since the event started
|
||||||
|
/// </summary>
|
||||||
|
private float elapsedTime = 0;
|
||||||
|
/// <summary>
|
||||||
/// The previous volume the event was at before starting a fade
|
/// The previous volume the event was at before starting a fade
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private float originVolume = 0;
|
private float fadeOriginVolume = 0;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether the event is currently fading out to be stopped
|
/// Whether the event is currently fading out to be stopped
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -67,22 +91,12 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private bool hasPlayed = false;
|
private bool hasPlayed = false;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Added to catch a case on the end of playback where Unity resets source.time = 0
|
|
||||||
/// </summary>
|
|
||||||
private bool hasTimeAdvanced = false;
|
|
||||||
/// <summary>
|
|
||||||
/// Whether the event is using the user's gaze for a parameter
|
/// Whether the event is using the user's gaze for a parameter
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private bool useGaze = false;
|
private bool useGaze = false;
|
||||||
/// <summary>
|
|
||||||
/// The AudioParameters in use by the event
|
|
||||||
/// </summary>
|
|
||||||
private ActiveParameter[] activeParameters;
|
|
||||||
/// <summary>
|
|
||||||
/// The Transform to use to calculate the user's gaze position
|
|
||||||
/// </summary>
|
|
||||||
private Transform gazeReference;
|
|
||||||
private bool callbackActivated = false;
|
private bool callbackActivated = false;
|
||||||
|
private bool hasTimeAdvanced = false;
|
||||||
|
internal bool hasSnapshotTransition = false;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The time left on the event unless it is stopped or the pitch changes
|
/// The time left on the event unless it is stopped or the pitch changes
|
||||||
|
@ -91,11 +105,11 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether the event has been muted
|
/// Whether the event has been muted
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool Muted { get; private set; }
|
public bool Muted { get; private set; } = false;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether the event has been soloed
|
/// Whether the event has been soloed
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool Soloed { get; private set; }
|
public bool Soloed { get; private set; } = false;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Delegate for event completion callback
|
/// Delegate for event completion callback
|
||||||
|
@ -112,17 +126,13 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="eventToPlay">The AudioEvent to play</param>
|
/// <param name="eventToPlay">The AudioEvent to play</param>
|
||||||
/// <param name="source">The AudioSource use for the AudioEvent</param>
|
/// <param name="source">The AudioSource use for the AudioEvent</param>
|
||||||
public ActiveEvent(AudioEvent eventToPlay, AudioSource source)
|
public ActiveEvent(AudioEvent eventToPlay, Transform emitterTransform)
|
||||||
{
|
{
|
||||||
this.rootEvent = eventToPlay;
|
this.rootEvent = eventToPlay;
|
||||||
this.source = source;
|
this.name = eventToPlay.name;
|
||||||
this.Soloed = false;
|
this.emitterTransform = emitterTransform;
|
||||||
this.Muted = false;
|
|
||||||
this.activeParameters = new ActiveParameter[this.rootEvent.Parameters.Count];
|
InitializeParameters();
|
||||||
for (int i = 0; i < this.activeParameters.Length; i++)
|
|
||||||
{
|
|
||||||
this.activeParameters[i] = new ActiveParameter(this.rootEvent.Parameters[i]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -130,46 +140,22 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Play()
|
public void Play()
|
||||||
{
|
{
|
||||||
|
this.timeStarted = Time.time.ToString();
|
||||||
this.rootEvent.SetActiveEventProperties(this);
|
this.rootEvent.SetActiveEventProperties(this);
|
||||||
if (this.clip == null)
|
|
||||||
|
if (this.sources.Count == 0 && !this.hasSnapshotTransition)
|
||||||
{
|
{
|
||||||
Debug.LogFormat("Audio event \"{0}\" has no audio clip!", this.rootEvent.name);
|
this.status = EventStatus.Error;
|
||||||
|
AudioManager.AddPreviousEvent(this);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.rootEvent.FadeIn > 0)
|
SetStartingSourceProperties();
|
||||||
{
|
|
||||||
this.source.volume = 0;
|
|
||||||
this.eventVolume = 0;
|
|
||||||
this.originVolume = 0;
|
|
||||||
this.currentFadeTime = 0;
|
|
||||||
this.targetFadeTime = this.rootEvent.FadeIn;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.source.volume = this.targetVolume;
|
|
||||||
this.eventVolume = this.targetVolume;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.source.pitch = this.eventPitch;
|
this.status = EventStatus.Played;
|
||||||
this.source.clip = this.clip;
|
|
||||||
this.EstimatedRemainingTime = this.clip.length / this.eventPitch;
|
|
||||||
if (this.initialDelay == 0)
|
|
||||||
{
|
|
||||||
this.hasPlayed = true;
|
|
||||||
this.source.Play();
|
|
||||||
}
|
|
||||||
|
|
||||||
this.useGaze = HasGazeProperty();
|
AudioManager.ActiveEvents.Add(this);
|
||||||
if (this.useGaze)
|
AudioManager.AddPreviousEvent(this);
|
||||||
{
|
|
||||||
this.gazeReference = Camera.main.transform;
|
|
||||||
UpdateGaze();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ApplyParameters();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -177,23 +163,24 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Update()
|
public void Update()
|
||||||
{
|
{
|
||||||
if (this.source == null)
|
if (this.rootEvent == null)
|
||||||
{
|
{
|
||||||
|
Debug.LogWarningFormat(this.emitterTransform, "AudioManager: Can't find audio event for {0}!", this.name);
|
||||||
StopImmediate();
|
StopImmediate();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.hasTimeAdvanced && this.source.time > 0)
|
|
||||||
{
|
|
||||||
this.hasTimeAdvanced = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.elapsedTime += Time.deltaTime;
|
this.elapsedTime += Time.deltaTime;
|
||||||
|
|
||||||
if (!this.hasPlayed && this.elapsedTime >= this.initialDelay)
|
if (!this.hasPlayed && this.elapsedTime >= this.initialDelay)
|
||||||
{
|
{
|
||||||
this.hasPlayed = true;
|
this.hasPlayed = true;
|
||||||
this.source.Play();
|
PlayAllSources();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.emitterTransform != null)
|
||||||
|
{
|
||||||
|
SetAllSourcePositions(this.emitterTransform.position);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.hasPlayed && this.currentFadeTime < this.targetFadeTime)
|
if (this.hasPlayed && this.currentFadeTime < this.targetFadeTime)
|
||||||
|
@ -201,10 +188,10 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
UpdateFade();
|
UpdateFade();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.source.loop)
|
if (!this.rootEvent.Output.loop)
|
||||||
{
|
{
|
||||||
UpdateRemainingTime();
|
UpdateRemainingTime();
|
||||||
if (this.hasPlayed && !this.source.isPlaying)
|
if (this.hasPlayed && !IsAnySourcePlaying())
|
||||||
{
|
{
|
||||||
StopImmediate();
|
StopImmediate();
|
||||||
}
|
}
|
||||||
|
@ -224,15 +211,14 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Stop()
|
public void Stop()
|
||||||
{
|
{
|
||||||
//Debug.LogFormat("{0}: Stopping {1}", Time.time, this.rootEvent.name);
|
if (this.rootEvent.FadeOut <= 0)
|
||||||
if (this.rootEvent.FadeOut <= 0 || this.source == null)
|
|
||||||
{
|
{
|
||||||
StopImmediate();
|
StopImmediate();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.targetVolume = 0;
|
this.targetVolume = 0;
|
||||||
this.originVolume = this.source.volume;
|
this.fadeOriginVolume = this.sources[0].source.volume;
|
||||||
this.targetFadeTime = this.rootEvent.FadeOut;
|
this.targetFadeTime = this.rootEvent.FadeOut;
|
||||||
this.currentFadeTime = 0;
|
this.currentFadeTime = 0;
|
||||||
this.fadeStopQueued = true;
|
this.fadeStopQueued = true;
|
||||||
|
@ -250,12 +236,11 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
CompletionCallback();
|
CompletionCallback();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.source != null)
|
this.status = EventStatus.Stopped;
|
||||||
{
|
|
||||||
this.source.Stop();
|
|
||||||
}
|
|
||||||
|
|
||||||
AudioManager.RemoveActiveEvent(this);
|
StopAllSources();
|
||||||
|
|
||||||
|
AudioManager.DelayRemoveActiveEvent(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -282,6 +267,35 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool AddEventSource(AudioClip clip, AudioParameter parameter = null, AnimationCurve responseCurve = null, float startTime = 0)
|
||||||
|
{
|
||||||
|
if (this.rootEvent == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarningFormat(this.emitterTransform, "AudioManager: Can't find audio event for {0}!", this.name);
|
||||||
|
StopImmediate();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
EventSource newSource = new EventSource();
|
||||||
|
newSource.source = AudioManager.GetUnusedSource();
|
||||||
|
|
||||||
|
if (newSource.source == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarningFormat(this.emitterTransform, "AudioManager: Can't find unused audio source for event {0}!", this.name);
|
||||||
|
StopImmediate();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
newSource.source.loop = this.rootEvent.Output.loop;
|
||||||
|
newSource.source.clip = clip;
|
||||||
|
newSource.parameter = parameter;
|
||||||
|
newSource.responseCurve = responseCurve;
|
||||||
|
newSource.startTime = startTime;
|
||||||
|
sources.Add(newSource);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Internal AudioManager use: initializes the volume based on the event's AudioOutput
|
/// Internal AudioManager use: initializes the volume based on the event's AudioOutput
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -306,6 +320,12 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// <param name="newPitch">Pitch value between -1 and 3</param>
|
/// <param name="newPitch">Pitch value between -1 and 3</param>
|
||||||
public void SetPitch(float newPitch)
|
public void SetPitch(float newPitch)
|
||||||
{
|
{
|
||||||
|
if (newPitch <= 0)
|
||||||
|
{
|
||||||
|
Debug.LogWarningFormat("Invalid pitch set in event {0}", this.rootEvent.name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
this.eventPitch = newPitch;
|
this.eventPitch = newPitch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -318,8 +338,128 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
this.eventPitch += pitchDelta;
|
this.eventPitch += pitchDelta;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetEmitterPosition(Vector3 newPos)
|
||||||
|
{
|
||||||
|
if (this.sources.Count > 0)
|
||||||
|
{
|
||||||
|
this.sources[0].source.transform.position = newPos;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.LogWarningFormat(this.emitterTransform, "No audio emitter for active event {0}", this.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Source Property Settings
|
||||||
|
|
||||||
|
private void SetStartingSourceProperties()
|
||||||
|
{
|
||||||
|
if (this.rootEvent.FadeIn > 0)
|
||||||
|
{
|
||||||
|
SetallSourceVolumes(0);
|
||||||
|
this.eventVolume = 0;
|
||||||
|
this.fadeOriginVolume = 0;
|
||||||
|
this.currentFadeTime = 0;
|
||||||
|
this.targetFadeTime = this.rootEvent.FadeIn;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetallSourceVolumes(this.targetVolume);
|
||||||
|
this.eventVolume = this.targetVolume;
|
||||||
|
}
|
||||||
|
|
||||||
|
SetAllSourcePitches(this.eventPitch);
|
||||||
|
|
||||||
|
this.useGaze = HasGazeProperty();
|
||||||
|
if (this.useGaze)
|
||||||
|
{
|
||||||
|
this.gazeReference = Camera.main.transform;
|
||||||
|
UpdateGaze();
|
||||||
|
}
|
||||||
|
|
||||||
|
ApplyParameters();
|
||||||
|
|
||||||
|
if (this.initialDelay == 0)
|
||||||
|
{
|
||||||
|
this.hasPlayed = true;
|
||||||
|
PlayAllSources();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetallSourceVolumes(float newVolume)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < this.sources.Count; i++)
|
||||||
|
{
|
||||||
|
this.sources[i].source.volume = newVolume;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetAllSourcePitches(float newPitch)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < this.sources.Count; i++)
|
||||||
|
{
|
||||||
|
this.sources[i].source.pitch = newPitch;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PlayAllSources()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < this.sources.Count; i++)
|
||||||
|
{
|
||||||
|
this.sources[i].source.Play();
|
||||||
|
this.sources[i].source.time = this.sources[i].startTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void StopAllSources()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < this.sources.Count; i++)
|
||||||
|
{
|
||||||
|
EventSource tempSource = this.sources[i];
|
||||||
|
if (tempSource != null && tempSource.source != null)
|
||||||
|
{
|
||||||
|
tempSource.source.Stop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetAllSourcePositions(Vector3 position)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < this.sources.Count; i++)
|
||||||
|
{
|
||||||
|
this.sources[i].source.transform.position = position;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool IsAnySourcePlaying()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < this.sources.Count; i++)
|
||||||
|
{
|
||||||
|
if (this.sources[i].source.isPlaying)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region Private Functions
|
#region Private Functions
|
||||||
|
|
||||||
|
private void InitializeParameters()
|
||||||
|
{
|
||||||
|
this.activeParameters = new ActiveParameter[this.rootEvent.Parameters.Count];
|
||||||
|
for (int i = 0; i < this.activeParameters.Length; i++)
|
||||||
|
{
|
||||||
|
if (this.rootEvent.Parameters[i] != null)
|
||||||
|
{
|
||||||
|
this.activeParameters[i] = new ActiveParameter(this.rootEvent.Parameters[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Internal AudioManager use: Sync changes to the parameters on all ActiveEvents
|
/// Internal AudioManager use: Sync changes to the parameters on all ActiveEvents
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -328,6 +468,11 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
for (int i = 0; i < this.activeParameters.Length; i++)
|
for (int i = 0; i < this.activeParameters.Length; i++)
|
||||||
{
|
{
|
||||||
AudioEventParameter tempParam = this.activeParameters[i].rootParameter;
|
AudioEventParameter tempParam = this.activeParameters[i].rootParameter;
|
||||||
|
if (tempParam == null || tempParam.parameter == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (tempParam.CurrentValue != tempParam.parameter.CurrentValue)
|
if (tempParam.CurrentValue != tempParam.parameter.CurrentValue)
|
||||||
{
|
{
|
||||||
tempParam.SyncParameter();
|
tempParam.SyncParameter();
|
||||||
|
@ -356,8 +501,17 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.source.volume = tempVolume;
|
for (int i = 0; i < this.sources.Count; i++)
|
||||||
this.source.pitch = tempPitch;
|
{
|
||||||
|
EventSource tempSource = this.sources[i];
|
||||||
|
tempSource.source.volume = tempVolume;
|
||||||
|
tempSource.source.pitch = tempPitch;
|
||||||
|
if (tempSource.parameter != null)
|
||||||
|
{
|
||||||
|
float volumeScale = tempSource.responseCurve.Evaluate(tempSource.parameter.CurrentValue);
|
||||||
|
tempSource.source.volume = this.eventVolume * volumeScale;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -367,13 +521,13 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
{
|
{
|
||||||
float percentageFaded = (this.currentFadeTime / this.targetFadeTime);
|
float percentageFaded = (this.currentFadeTime / this.targetFadeTime);
|
||||||
|
|
||||||
if (this.targetVolume > this.originVolume)
|
if (this.targetVolume > this.fadeOriginVolume)
|
||||||
{
|
{
|
||||||
this.eventVolume = this.originVolume + ((this.targetVolume - this.originVolume) * percentageFaded);
|
this.eventVolume = this.fadeOriginVolume + ((this.targetVolume - this.fadeOriginVolume) * percentageFaded);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.eventVolume = this.originVolume - ((this.originVolume - this.targetVolume) * percentageFaded);
|
this.eventVolume = this.fadeOriginVolume - ((this.fadeOriginVolume - this.targetVolume) * percentageFaded);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.currentFadeTime += Time.deltaTime;
|
this.currentFadeTime += Time.deltaTime;
|
||||||
|
@ -388,7 +542,7 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.source.volume = this.eventVolume;
|
SetallSourceVolumes(this.eventVolume);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -396,9 +550,30 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void UpdateRemainingTime()
|
private void UpdateRemainingTime()
|
||||||
{
|
{
|
||||||
this.EstimatedRemainingTime = (this.source.clip.length - this.source.time) / this.source.pitch;
|
if (this.rootEvent == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarningFormat(this.emitterTransform, "AudioManager: Can't find audio event for {0}!", this.name);
|
||||||
|
StopImmediate();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (this.hasTimeAdvanced && this.source.time == 0)
|
AudioSource mainSource = this.sources[0].source;
|
||||||
|
if (mainSource == null || mainSource.clip == null || mainSource.clip.length <= 0)
|
||||||
|
{
|
||||||
|
StopImmediate();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.rootEvent.Output.loop)
|
||||||
|
{
|
||||||
|
this.EstimatedRemainingTime = 500;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.EstimatedRemainingTime = (mainSource.clip.length - mainSource.time) / mainSource.pitch;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.hasTimeAdvanced && mainSource.time == 0)
|
||||||
{
|
{
|
||||||
StopImmediate();
|
StopImmediate();
|
||||||
}
|
}
|
||||||
|
@ -418,6 +593,13 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
for (int i = 0; i < this.rootEvent.Parameters.Count; i++)
|
for (int i = 0; i < this.rootEvent.Parameters.Count; i++)
|
||||||
{
|
{
|
||||||
AudioParameter tempParam = this.rootEvent.Parameters[i].parameter;
|
AudioParameter tempParam = this.rootEvent.Parameters[i].parameter;
|
||||||
|
|
||||||
|
if (tempParam == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarningFormat("Audio event '{0}' has a null parameter!", this.rootEvent.name);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (tempParam.UseGaze)
|
if (tempParam.UseGaze)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
@ -432,13 +614,14 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void UpdateGaze()
|
private void UpdateGaze()
|
||||||
{
|
{
|
||||||
|
AudioSource mainSource = this.sources[0].source;
|
||||||
float gazeAngle = 0;
|
float gazeAngle = 0;
|
||||||
if (this.gazeReference == null)
|
if (this.gazeReference == null)
|
||||||
{
|
{
|
||||||
this.gazeReference = Camera.main.transform;
|
this.gazeReference = Camera.main.transform;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector3 posDelta = this.gazeReference.position - this.source.transform.position;
|
Vector3 posDelta = this.gazeReference.position - mainSource.transform.position;
|
||||||
gazeAngle = Mathf.Abs(180 - Vector3.Angle(this.gazeReference.forward, posDelta));
|
gazeAngle = Mathf.Abs(180 - Vector3.Angle(this.gazeReference.forward, posDelta));
|
||||||
|
|
||||||
for (int i = 0; i < this.activeParameters.Length; i++)
|
for (int i = 0; i < this.activeParameters.Length; i++)
|
||||||
|
@ -482,8 +665,7 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void ToggleMute()
|
public void ToggleMute()
|
||||||
{
|
{
|
||||||
this.Muted = !this.Muted;
|
SetMute(!this.Muted);
|
||||||
this.source.mute = this.Muted;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -493,7 +675,10 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
public void SetMute(bool toggle)
|
public void SetMute(bool toggle)
|
||||||
{
|
{
|
||||||
this.Muted = toggle;
|
this.Muted = toggle;
|
||||||
this.source.mute = this.Muted;
|
for (int i = 0; i < this.sources.Count; i++)
|
||||||
|
{
|
||||||
|
this.sources[i].source.mute = toggle;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -520,7 +705,7 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void ApplySolo()
|
public void ApplySolo()
|
||||||
{
|
{
|
||||||
this.source.mute = !this.Soloed;
|
SetMute(!this.Soloed);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -529,9 +714,56 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
public void ClearSolo()
|
public void ClearSolo()
|
||||||
{
|
{
|
||||||
this.Soloed = false;
|
this.Soloed = false;
|
||||||
this.source.mute = this.Muted;
|
SetMute(this.Muted);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#if UNITY_EDITOR
|
||||||
|
|
||||||
|
public void DisplayProperties()
|
||||||
|
{
|
||||||
|
if (this.sources.Count == 0 || this.sources[0] == null || this.sources[0].source == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (emitterTransform != null)
|
||||||
|
{
|
||||||
|
EditorGUILayout.LabelField("Emitter:" + emitterTransform.gameObject.name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
EditorGUILayout.LabelField("Emitter:" + this.sources[0].source.gameObject.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void DrawWindow(int id)
|
||||||
|
{
|
||||||
|
GUI.DragWindow();
|
||||||
|
DisplayProperties();
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void DrawNode(int id, Rect window)
|
||||||
|
{
|
||||||
|
GUI.Window(id, window, DrawWindow, this.name);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
public class EventSource
|
||||||
|
{
|
||||||
|
public AudioSource source = new AudioSource();
|
||||||
|
public AudioParameter parameter = null;
|
||||||
|
public AnimationCurve responseCurve = null;
|
||||||
|
public float startTime = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum EventStatus
|
||||||
|
{
|
||||||
|
Initialized,
|
||||||
|
Played,
|
||||||
|
Stopped,
|
||||||
|
Error
|
||||||
|
}
|
||||||
|
}
|
|
@ -26,6 +26,9 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private List<AudioParameter> parameters = new List<AudioParameter>();
|
private List<AudioParameter> parameters = new List<AudioParameter>();
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private List<AudioSwitch> switches = new List<AudioSwitch>();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The public accessor for the events in the bank
|
/// The public accessor for the events in the bank
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -61,6 +64,11 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
get { return this.parameters; }
|
get { return this.parameters; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<AudioSwitch> EditorSwitches
|
||||||
|
{
|
||||||
|
get { return this.switches; }
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// EDITOR: Create a new event and add it to the array of events in the bank
|
/// EDITOR: Create a new event and add it to the array of events in the bank
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -115,6 +123,28 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
ScriptableObject.DestroyImmediate(parameterToDelete, true);
|
ScriptableObject.DestroyImmediate(parameterToDelete, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AudioSwitch AddSwitch()
|
||||||
|
{
|
||||||
|
AudioSwitch newSwitch = ScriptableObject.CreateInstance<AudioSwitch>();
|
||||||
|
newSwitch.name = "New Audio Switch";
|
||||||
|
newSwitch.InitializeSwitch();
|
||||||
|
AssetDatabase.AddObjectToAsset(newSwitch, this);
|
||||||
|
this.switches.Add(newSwitch);
|
||||||
|
EditorUtility.SetDirty(this);
|
||||||
|
AssetDatabase.SaveAssets();
|
||||||
|
return newSwitch;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void DeleteSwitch(AudioSwitch switchToDelete)
|
||||||
|
{
|
||||||
|
this.switches.Remove(switchToDelete);
|
||||||
|
ScriptableObject.DestroyImmediate(switchToDelete, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SortEvents()
|
||||||
|
{
|
||||||
|
this.audioEvents.Sort(new AudioEventComparer());
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
// Copyright (c) Microsoft Corporation.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
|
using UnityEngine;
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
using UnityEditor;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
|
{
|
||||||
|
public class AudioBlendContainer : AudioNode
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Randomly select a connected node
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="activeEvent">The existing runtime audio event</param>
|
||||||
|
public override void ProcessNode(ActiveEvent activeEvent)
|
||||||
|
{
|
||||||
|
if (this.input.ConnectedNodes == null || this.input.ConnectedNodes.Length == 0)
|
||||||
|
{
|
||||||
|
Debug.LogWarningFormat("No connected nodes for {0}", this.name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < this.input.ConnectedNodes.Length; i++)
|
||||||
|
{
|
||||||
|
ProcessConnectedNode(i, activeEvent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// EDITOR: Set the initial values for the node's properties
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="position">The position of the node on the graph</param>
|
||||||
|
public override void InitializeNode(Vector2 position)
|
||||||
|
{
|
||||||
|
this.name = "Blend Container";
|
||||||
|
this.nodeRect.height = 50;
|
||||||
|
this.nodeRect.width = 150;
|
||||||
|
this.nodeRect.position = position;
|
||||||
|
AddInput();
|
||||||
|
AddOutput();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: da600e0031fc1c44eba2e58a94541e97
|
guid: b0ff48ff47e3dbd44b049486f647913c
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
|
@ -0,0 +1,116 @@
|
||||||
|
// Copyright (c) Microsoft Corporation.
|
||||||
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
|
using UnityEngine;
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
using UnityEditor;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
|
{
|
||||||
|
public class AudioBlendFile : AudioNode
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The audio clip to be set on the AudioSource if this node is processed
|
||||||
|
/// </summary>
|
||||||
|
[SerializeField]
|
||||||
|
private AudioClip file = null;
|
||||||
|
[SerializeField]
|
||||||
|
private AudioParameter parameter = null;
|
||||||
|
[SerializeField]
|
||||||
|
private AnimationCurve responseCurve = new AnimationCurve();
|
||||||
|
/// <summary>
|
||||||
|
/// The minimum start position of the node
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 1)]
|
||||||
|
public float minStartTime = 0;
|
||||||
|
/// <summary>
|
||||||
|
/// The maximum start position of the node
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 1)]
|
||||||
|
public float maxStartTime = 0;
|
||||||
|
/// <summary>
|
||||||
|
/// The Start time for the audio file to stay playing at
|
||||||
|
/// </summary>
|
||||||
|
public float startTime { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Apply all modifications to the ActiveEvent before it gets played
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="activeEvent">The runtime event being prepared for playback</param>
|
||||||
|
public override void ProcessNode(ActiveEvent activeEvent)
|
||||||
|
{
|
||||||
|
if (this.file == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarningFormat("No file in node {0}", this.name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
RandomStartTime();
|
||||||
|
activeEvent.AddEventSource(this.file, this.parameter, this.responseCurve, this.startTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// If the min and max start time are not the same, then generate a random value between min and max start time.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public void RandomStartTime()
|
||||||
|
{
|
||||||
|
if (this.minStartTime != this.maxStartTime)
|
||||||
|
{
|
||||||
|
this.startTime = UnityEngine.Random.Range(minStartTime, maxStartTime);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.startTime = minStartTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.startTime = file.length * startTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
|
||||||
|
public AudioClip File
|
||||||
|
{
|
||||||
|
get { return this.file; }
|
||||||
|
set { this.file = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The width in pixels for the node's window in the graph
|
||||||
|
/// </summary>
|
||||||
|
private const float NodeWidth = 300;
|
||||||
|
private const float NodeHeight = 110;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// EDITOR: Initialize the node's properties when it is first created
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="position">The position of the new node in the graph</param>
|
||||||
|
public override void InitializeNode(Vector2 position)
|
||||||
|
{
|
||||||
|
this.name = "Blend File";
|
||||||
|
this.nodeRect.position = position;
|
||||||
|
this.nodeRect.width = NodeWidth;
|
||||||
|
this.nodeRect.height = NodeHeight;
|
||||||
|
AddOutput();
|
||||||
|
EditorUtility.SetDirty(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// EDITOR: Display the node's properties in the graph
|
||||||
|
/// </summary>
|
||||||
|
protected override void DrawProperties()
|
||||||
|
{
|
||||||
|
this.file = EditorGUILayout.ObjectField(this.file, typeof(AudioClip), false) as AudioClip;
|
||||||
|
if (this.file != null && this.name != this.file.name)
|
||||||
|
{
|
||||||
|
this.name = this.file.name;
|
||||||
|
}
|
||||||
|
this.parameter = EditorGUILayout.ObjectField(this.parameter, typeof(AudioParameter), false) as AudioParameter;
|
||||||
|
this.responseCurve = EditorGUILayout.CurveField("Blend Curve", this.responseCurve);
|
||||||
|
EditorGUILayout.MinMaxSlider("Start Time", ref this.minStartTime, ref this.maxStartTime, 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7dc155598a1eb0249b8a6c2db878956d
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -25,7 +25,7 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// <param name="activeEvent"></param>
|
/// <param name="activeEvent"></param>
|
||||||
public override void ProcessNode(ActiveEvent activeEvent)
|
public override void ProcessNode(ActiveEvent activeEvent)
|
||||||
{
|
{
|
||||||
Debug.Log(this.message, activeEvent.source);
|
Debug.Log(this.message, activeEvent.emitterTransform);
|
||||||
|
|
||||||
ProcessConnectedNode(0, activeEvent);
|
ProcessConnectedNode(0, activeEvent);
|
||||||
}
|
}
|
|
@ -75,6 +75,33 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
set { group = value; }
|
set { group = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool ValidateAudioFiles()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < this.nodes.Count; i++)
|
||||||
|
{
|
||||||
|
AudioFile tempNode = this.nodes[i] as AudioFile;
|
||||||
|
|
||||||
|
if (tempNode != null)
|
||||||
|
{
|
||||||
|
if (tempNode.File != null)
|
||||||
|
{
|
||||||
|
if (tempNode.File.length <= 0)
|
||||||
|
{
|
||||||
|
Debug.LogErrorFormat("Invalid clip length in node {0}, event: {1}", tempNode.name, this.name);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.LogErrorFormat("Null clip in node {0}, event: {1}", tempNode.name, this.name);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Internal AudioManager use: play the event using a pre-existing ActiveEvent
|
/// Internal AudioManager use: play the event using a pre-existing ActiveEvent
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -271,17 +298,25 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (this.parameters == null)
|
return this.parameters;
|
||||||
{
|
|
||||||
return new List<AudioEventParameter>();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return this.parameters;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public sealed class AudioEventComparer : IComparer<AudioEvent>
|
||||||
|
{
|
||||||
|
public int Compare(AudioEvent x, AudioEvent y)
|
||||||
|
{
|
||||||
|
if (object.ReferenceEquals(x, y))
|
||||||
|
return 0;
|
||||||
|
else if (x == null)
|
||||||
|
return -1;
|
||||||
|
else if (y == null)
|
||||||
|
return -1;
|
||||||
|
else
|
||||||
|
return string.Compare(x.name, y.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,135 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using Microsoft.MixedReality.Toolkit.Audio;
|
||||||
|
|
||||||
|
public class AudioEventRouter : MonoBehaviour
|
||||||
|
{
|
||||||
|
public AudioTrigger[] triggers;
|
||||||
|
private List<ActiveEvent> activeOnEnabledEvents = new List<ActiveEvent>();
|
||||||
|
private const float MIN_LOOP_TIME = 1.0f;
|
||||||
|
private const float MAX_LOOP_TIME = 1000.0f;
|
||||||
|
|
||||||
|
public void OnEnable()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < this.triggers.Length; i++)
|
||||||
|
{
|
||||||
|
AudioTrigger tempTrigger = this.triggers[i];
|
||||||
|
if (tempTrigger.triggerOnEvent == UnityTrigger.OnEnable)
|
||||||
|
{
|
||||||
|
if (tempTrigger.loopTrigger)
|
||||||
|
{
|
||||||
|
StartLoopingTrigger(i);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.activeOnEnabledEvents.Add(PlayTraceableTrigger(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnDisable()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < this.triggers.Length; i++)
|
||||||
|
{
|
||||||
|
AudioTrigger tempTrigger = this.triggers[i];
|
||||||
|
if (tempTrigger.triggerOnEvent == UnityTrigger.OnDisable)
|
||||||
|
{
|
||||||
|
PlayAudioTrigger(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
StopEnabledEvents();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void PlayAudioEvent(AudioEvent eventToPlay)
|
||||||
|
{
|
||||||
|
AudioManager.PlayEvent(eventToPlay, this.gameObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void PlayAudioTrigger(int triggerNum)
|
||||||
|
{
|
||||||
|
PlayTraceableTrigger(triggerNum);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StartLoopingTrigger(int triggerNum)
|
||||||
|
{
|
||||||
|
StartCoroutine(PlayLoopingTrigger(triggerNum));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StopEvents(AudioEvent eventToStop)
|
||||||
|
{
|
||||||
|
AudioManager.StopAll(eventToStop);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StopEvents(int groupNumber)
|
||||||
|
{
|
||||||
|
AudioManager.StopAll(groupNumber);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StopEnabledEvents()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < this.activeOnEnabledEvents.Count; i++)
|
||||||
|
{
|
||||||
|
ActiveEvent tempEvent = this.activeOnEnabledEvents[i];
|
||||||
|
if (tempEvent != null)
|
||||||
|
{
|
||||||
|
tempEvent.Stop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.activeOnEnabledEvents.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
private ActiveEvent PlayTraceableTrigger(int triggerNum)
|
||||||
|
{
|
||||||
|
AudioTrigger tempTrigger = triggers[triggerNum];
|
||||||
|
if (!tempTrigger.usePosition && tempTrigger.soundEmitter == null)
|
||||||
|
{
|
||||||
|
return AudioManager.PlayEvent(tempTrigger.eventToTrigger, this.gameObject);
|
||||||
|
}
|
||||||
|
else if (tempTrigger.usePosition)
|
||||||
|
{
|
||||||
|
return AudioManager.PlayEvent(tempTrigger.eventToTrigger, tempTrigger.soundPosition);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return AudioManager.PlayEvent(tempTrigger.eventToTrigger, tempTrigger.soundEmitter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator PlayLoopingTrigger(int triggerNum)
|
||||||
|
{
|
||||||
|
AudioTrigger loopTrigger = triggers[triggerNum];
|
||||||
|
loopTrigger.loopTimeMin = Mathf.Clamp(loopTrigger.loopTimeMin, MIN_LOOP_TIME, MAX_LOOP_TIME);
|
||||||
|
loopTrigger.loopTimeMax = Mathf.Clamp(loopTrigger.loopTimeMax, MIN_LOOP_TIME, MAX_LOOP_TIME);
|
||||||
|
while (this.enabled)
|
||||||
|
{
|
||||||
|
PlayAudioTrigger(triggerNum);
|
||||||
|
float timeUntilNextLoop = Random.Range(loopTrigger.loopTimeMin, loopTrigger.loopTimeMax);
|
||||||
|
yield return new WaitForSeconds(timeUntilNextLoop);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[System.Serializable]
|
||||||
|
public class AudioTrigger
|
||||||
|
{
|
||||||
|
public AudioEvent eventToTrigger = null;
|
||||||
|
public bool usePosition = false;
|
||||||
|
public Vector3 soundPosition = Vector3.zero;
|
||||||
|
public GameObject soundEmitter = null;
|
||||||
|
public UnityTrigger triggerOnEvent = UnityTrigger.None;
|
||||||
|
public bool loopTrigger = false;
|
||||||
|
public float loopTimeMin = 0f;
|
||||||
|
public float loopTimeMax = 0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum UnityTrigger
|
||||||
|
{
|
||||||
|
None,
|
||||||
|
OnEnable,
|
||||||
|
OnDisable,
|
||||||
|
OnSliderUpdate
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 486d0524fdbbb1546bb889ca3f4fd2fd
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -2,6 +2,7 @@
|
||||||
// Licensed under the MIT License.
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using System;
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
#endif
|
#endif
|
||||||
|
@ -18,6 +19,13 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private AudioClip file = null;
|
private AudioClip file = null;
|
||||||
|
|
||||||
|
public AudioClip File
|
||||||
|
{
|
||||||
|
get { return this.file; }
|
||||||
|
set { this.file = value; }
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The amount of volume change to apply if this node is processed
|
/// The amount of volume change to apply if this node is processed
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -28,6 +36,20 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SerializeField, Range(-1, 1)]
|
[SerializeField, Range(-1, 1)]
|
||||||
private float pitchOffset = 0;
|
private float pitchOffset = 0;
|
||||||
|
/// <summary>
|
||||||
|
/// The minimum start position of the node
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 1)]
|
||||||
|
public float minStartTime = 0;
|
||||||
|
/// <summary>
|
||||||
|
/// The maximum start position of the node
|
||||||
|
/// </summary>
|
||||||
|
[Range(0, 1)]
|
||||||
|
public float maxStartTime = 0;
|
||||||
|
/// <summary>
|
||||||
|
/// The Start time for the audio file to stay playing at
|
||||||
|
/// </summary>
|
||||||
|
public float startTime { get; private set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Apply all modifications to the ActiveEvent before it gets played
|
/// Apply all modifications to the ActiveEvent before it gets played
|
||||||
|
@ -37,27 +59,46 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
{
|
{
|
||||||
if (this.file == null)
|
if (this.file == null)
|
||||||
{
|
{
|
||||||
Debug.LogWarningFormat("No file in node {0}", this.name);
|
Debug.LogWarningFormat("No file in node {0}, Event: {1}", this.name, activeEvent.rootEvent.name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (this.file.length <= 0)
|
||||||
|
{
|
||||||
|
Debug.LogWarningFormat("Invalid file length for node {0}, Event: {1}", this.name, activeEvent.rootEvent.name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
activeEvent.ModulateVolume(this.volumeOffset);
|
activeEvent.ModulateVolume(this.volumeOffset);
|
||||||
activeEvent.ModulatePitch(this.pitchOffset);
|
activeEvent.ModulatePitch(this.pitchOffset);
|
||||||
activeEvent.clip = this.file;
|
RandomStartTime();
|
||||||
|
activeEvent.AddEventSource(this.file, null, null, startTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// If the min and max start time are not the same, then generate a random value between min and max start time.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public void RandomStartTime()
|
||||||
|
{
|
||||||
|
if (minStartTime != maxStartTime)
|
||||||
|
{
|
||||||
|
startTime = UnityEngine.Random.Range(minStartTime, maxStartTime);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
startTime = minStartTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
startTime = file.length * startTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
|
|
||||||
public AudioClip File
|
|
||||||
{
|
|
||||||
get { return this.file; }
|
|
||||||
set { this.file = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The width in pixels for the node's window in the graph
|
/// The width in pixels for the node's window in the graph
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private const float NodeWidth = 300;
|
private const float NodeWidth = 300;
|
||||||
|
private const float NodeHeight = 110;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// EDITOR: Initialize the node's properties when it is first created
|
/// EDITOR: Initialize the node's properties when it is first created
|
||||||
|
@ -68,6 +109,7 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
this.name = "Audio File";
|
this.name = "Audio File";
|
||||||
this.nodeRect.position = position;
|
this.nodeRect.position = position;
|
||||||
this.nodeRect.width = NodeWidth;
|
this.nodeRect.width = NodeWidth;
|
||||||
|
this.nodeRect.height = NodeHeight;
|
||||||
AddOutput();
|
AddOutput();
|
||||||
EditorUtility.SetDirty(this);
|
EditorUtility.SetDirty(this);
|
||||||
}
|
}
|
||||||
|
@ -84,6 +126,7 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
}
|
}
|
||||||
this.volumeOffset = EditorGUILayout.Slider("Volume Offset", this.volumeOffset, -1, 1);
|
this.volumeOffset = EditorGUILayout.Slider("Volume Offset", this.volumeOffset, -1, 1);
|
||||||
this.pitchOffset = EditorGUILayout.Slider("Pitch Offset", this.pitchOffset, -1, 1);
|
this.pitchOffset = EditorGUILayout.Slider("Pitch Offset", this.pitchOffset, -1, 1);
|
||||||
|
EditorGUILayout.MinMaxSlider("Start Time", ref this.minStartTime, ref this.maxStartTime, 0, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -36,7 +36,7 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug.LogErrorFormat(activeEvent.rootEvent, "AudioManager: Event \"{0}\" not localized for language: {1}", activeEvent.rootEvent.name, AudioManager.CurrentLanguage);
|
Debug.LogErrorFormat("AudioManager: Event \"{0}\" not localized for language: {1}", activeEvent.name, AudioManager.CurrentLanguage);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace Microsoft.MixedReality.Toolkit.Audio
|
namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
|
@ -17,13 +18,21 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private static AudioManager Instance;
|
private static AudioManager Instance;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Flag for creating instances, set to false during shutdown
|
||||||
|
/// </summary>
|
||||||
|
private static bool AllowCreateInstance = true;
|
||||||
|
/// <summary>
|
||||||
/// The currently-playing events at runtime
|
/// The currently-playing events at runtime
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private static List<ActiveEvent> ActiveEvents = new List<ActiveEvent>();
|
public static List<ActiveEvent> ActiveEvents { get; private set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The AudioSource components that have been added by a previously-played event
|
/// The AudioSource components that have been added by a previously-played event
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private static List<AudioSource> AvailableSources = new List<AudioSource>();
|
private static readonly List<AudioSource> AvailableSources = new List<AudioSource>();
|
||||||
|
/// <summary>
|
||||||
|
/// List of the previously started events
|
||||||
|
/// </summary>
|
||||||
|
private static readonly List<ActiveEvent> previousEvents = new List<ActiveEvent>();
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The language that all voice events should play in
|
/// The language that all voice events should play in
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -32,6 +41,36 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// The full list of languages available
|
/// The full list of languages available
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string[] Languages;
|
public static string[] Languages;
|
||||||
|
/// <summary>
|
||||||
|
/// The default number of AudioSources to create in the pool
|
||||||
|
/// </summary>
|
||||||
|
private static int DefaultSourcesCount = 80;
|
||||||
|
/// <summary>
|
||||||
|
/// The total list of AudioSources for the manager to use
|
||||||
|
/// </summary>
|
||||||
|
private static readonly List<AudioSource> SourcePool = new List<AudioSource>();
|
||||||
|
private static bool debugMode = false;
|
||||||
|
public static bool DebugMode => debugMode;
|
||||||
|
private const int MaxPreviousEvents = 300;
|
||||||
|
public static List<ActiveEvent> PreviousEvents => previousEvents;
|
||||||
|
|
||||||
|
float lastTime = 0f;
|
||||||
|
|
||||||
|
private readonly struct ActiveEventRemovalTimestamp
|
||||||
|
{
|
||||||
|
public readonly float RemovalTime;
|
||||||
|
public readonly ActiveEvent ActiveEvent;
|
||||||
|
|
||||||
|
public ActiveEventRemovalTimestamp(float removalTime, ActiveEvent activeEvent)
|
||||||
|
{
|
||||||
|
RemovalTime = removalTime;
|
||||||
|
ActiveEvent = activeEvent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// We could get fancy and sort, but this list is usually pretty small, and the sort call can be expensive
|
||||||
|
private readonly List<ActiveEventRemovalTimestamp> delayedEventsToRemove = new();
|
||||||
|
|
||||||
|
|
||||||
#region Interface
|
#region Interface
|
||||||
|
|
||||||
|
@ -43,45 +82,27 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// <returns>The reference for the runtime event that can be modified or stopped explicitly</returns>
|
/// <returns>The reference for the runtime event that can be modified or stopped explicitly</returns>
|
||||||
public static ActiveEvent PlayEvent(AudioEvent eventToPlay, GameObject emitterObject)
|
public static ActiveEvent PlayEvent(AudioEvent eventToPlay, GameObject emitterObject)
|
||||||
{
|
{
|
||||||
if (eventToPlay == null)
|
if (!ValidateManager() || !ValidateEvent(eventToPlay))
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
ValidateManager();
|
ActiveEvent tempEvent = new ActiveEvent(eventToPlay, emitterObject.transform);
|
||||||
|
|
||||||
if (eventToPlay.InstanceLimit > 0 && CountActiveInstances(eventToPlay) >= eventToPlay.InstanceLimit)
|
|
||||||
{
|
|
||||||
//Debug.LogFormat("AudioManager: Instance limit reached for {0}.", eventToPlay.name);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (eventToPlay.Group != 0)
|
|
||||||
{
|
|
||||||
StopGroupInstances(eventToPlay.Group);
|
|
||||||
}
|
|
||||||
|
|
||||||
AudioSource tempSource = GetUnusedSource(emitterObject);
|
|
||||||
if (tempSource == null)
|
|
||||||
{
|
|
||||||
tempSource = emitterObject.AddComponent<AudioSource>();
|
|
||||||
tempSource.playOnAwake = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
AvailableSources.Remove(tempSource);
|
|
||||||
}
|
|
||||||
|
|
||||||
ActiveEvent tempEvent = new ActiveEvent(eventToPlay, tempSource);
|
|
||||||
tempEvent.Play();
|
tempEvent.Play();
|
||||||
if (AvailableSources.Contains(tempSource))
|
|
||||||
|
return tempEvent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ActiveEvent PlayEvent(AudioEvent eventToPlay, Vector3 position)
|
||||||
|
{
|
||||||
|
if (!ValidateManager() || !ValidateEvent(eventToPlay))
|
||||||
{
|
{
|
||||||
AvailableSources.Remove(tempSource);
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tempEvent.clip != null)
|
ActiveEvent tempEvent = new ActiveEvent(eventToPlay, null);
|
||||||
{
|
tempEvent.Play();
|
||||||
ActiveEvents.Add(tempEvent);
|
tempEvent.SetAllSourcePositions(position);
|
||||||
}
|
|
||||||
|
|
||||||
return tempEvent;
|
return tempEvent;
|
||||||
}
|
}
|
||||||
|
@ -94,34 +115,30 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// <returns>The reference for the runtime event that can be modified or stopped explicitly</returns>
|
/// <returns>The reference for the runtime event that can be modified or stopped explicitly</returns>
|
||||||
public static ActiveEvent PlayEvent(AudioEvent eventToPlay, AudioSource emitter)
|
public static ActiveEvent PlayEvent(AudioEvent eventToPlay, AudioSource emitter)
|
||||||
{
|
{
|
||||||
ValidateManager();
|
Debug.LogWarningFormat("AudioManager: deprecated function called on event {0} - play on an AudioSource no longer supported");
|
||||||
|
if (!ValidateManager() || !ValidateEvent(eventToPlay))
|
||||||
if (eventToPlay.InstanceLimit > 0 && CountActiveInstances(eventToPlay) >= eventToPlay.InstanceLimit)
|
|
||||||
{
|
{
|
||||||
Debug.LogFormat("AudioManager: Instance limit reached for {0}.", eventToPlay.name);
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (eventToPlay.Group != 0)
|
|
||||||
{
|
|
||||||
StopGroupInstances(eventToPlay.Group);
|
|
||||||
}
|
|
||||||
|
|
||||||
ActiveEvent tempEvent = new ActiveEvent(eventToPlay, emitter);
|
ActiveEvent tempEvent = new ActiveEvent(eventToPlay, emitter.transform);
|
||||||
eventToPlay.SetActiveEventProperties(tempEvent);
|
tempEvent.Play();
|
||||||
|
|
||||||
ActiveEvents.Add(tempEvent);
|
|
||||||
if (AvailableSources.Contains(emitter))
|
|
||||||
{
|
|
||||||
//Debug.LogFormat("Removing available source {0}", emitter.GetInstanceID());
|
|
||||||
AvailableSources.Remove(emitter);
|
|
||||||
}
|
|
||||||
|
|
||||||
return tempEvent;
|
return tempEvent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Stop all active instances of an audio event
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="eventsToStop">The event to stop all instances of</param>
|
||||||
public static void StopAll(AudioEvent eventsToStop)
|
public static void StopAll(AudioEvent eventsToStop)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < ActiveEvents.Count; i++)
|
if (!ValidateManager())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = ActiveEvents.Count - 1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
ActiveEvent tempEvent = ActiveEvents[i];
|
ActiveEvent tempEvent = ActiveEvents[i];
|
||||||
if (tempEvent.rootEvent == eventsToStop)
|
if (tempEvent.rootEvent == eventsToStop)
|
||||||
|
@ -132,12 +149,24 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Accessor for the list of ActiveEvents
|
/// Stop all active instances of a group
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>The list of ActiveEvents</returns>
|
/// <param name="groupNum">The group number to stop all instances of</param>
|
||||||
public static List<ActiveEvent> GetActiveEvents()
|
public static void StopAll(int groupNum)
|
||||||
{
|
{
|
||||||
return ActiveEvents;
|
if (!ValidateManager())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = ActiveEvents.Count - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
ActiveEvent tempEvent = ActiveEvents[i];
|
||||||
|
if (tempEvent.rootEvent.Group == groupNum)
|
||||||
|
{
|
||||||
|
tempEvent.Stop();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -146,15 +175,35 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// <param name="stoppedEvent">The event that is no longer playing to remove from the ActiveEvent list</param>
|
/// <param name="stoppedEvent">The event that is no longer playing to remove from the ActiveEvent list</param>
|
||||||
public static void RemoveActiveEvent(ActiveEvent stoppedEvent)
|
public static void RemoveActiveEvent(ActiveEvent stoppedEvent)
|
||||||
{
|
{
|
||||||
if (!AvailableSources.Contains(stoppedEvent.source))
|
if (!ValidateManager())
|
||||||
{
|
{
|
||||||
AvailableSources.Add(stoppedEvent.source);
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<EventSource> sources = stoppedEvent.sources;
|
||||||
|
for (int i = 0; i < sources.Count; i++)
|
||||||
|
{
|
||||||
|
AudioSource tempSource = sources[i].source;
|
||||||
|
if (!AvailableSources.Contains(tempSource))
|
||||||
|
{
|
||||||
|
AvailableSources.Add(tempSource);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ActiveEvents.Remove(stoppedEvent);
|
ActiveEvents.Remove(stoppedEvent);
|
||||||
stoppedEvent = null;
|
stoppedEvent = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void AddPreviousEvent(ActiveEvent newEvent)
|
||||||
|
{
|
||||||
|
previousEvents.Add(newEvent);
|
||||||
|
|
||||||
|
while (previousEvents.Count > MaxPreviousEvents)
|
||||||
|
{
|
||||||
|
previousEvents.RemoveAt(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get the list of all cultures for compatible languges
|
/// Get the list of all cultures for compatible languges
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -168,16 +217,63 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void SetDebugMode(bool toggle)
|
||||||
|
{
|
||||||
|
debugMode = toggle;
|
||||||
|
ClearSourceText();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DelayRemoveActiveEvent(ActiveEvent eventToRemove, float delay = 1)
|
||||||
|
{
|
||||||
|
if (!ValidateManager())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Instance.delayedEventsToRemove.Add(new ActiveEventRemovalTimestamp(Time.time + delay, eventToRemove));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IEnumerator RemoveActiveEventCoroutine(ActiveEvent eventToRemove, float delay)
|
||||||
|
{
|
||||||
|
yield return new WaitForSeconds(delay);
|
||||||
|
AudioManager.RemoveActiveEvent(eventToRemove);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Private Functions
|
#region Private Functions
|
||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
|
// First check and remove delayed events
|
||||||
|
if (lastTime > Time.time)
|
||||||
|
{
|
||||||
|
// Time.time has rolled over, lets kludge it and remove all (This should be rare)
|
||||||
|
Debug.LogWarning("Time Rollover, clearing all delayed events");
|
||||||
|
foreach (var eventToRemove in delayedEventsToRemove)
|
||||||
|
{
|
||||||
|
RemoveActiveEvent(eventToRemove.ActiveEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
delayedEventsToRemove.Clear();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (int i = delayedEventsToRemove.Count - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
if (delayedEventsToRemove[i].RemovalTime < Time.time)
|
||||||
|
{
|
||||||
|
RemoveActiveEvent(delayedEventsToRemove[i].ActiveEvent);
|
||||||
|
delayedEventsToRemove.RemoveAt(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastTime = Time.time;
|
||||||
|
|
||||||
for (int i = 0; i < ActiveEvents.Count; i++)
|
for (int i = 0; i < ActiveEvents.Count; i++)
|
||||||
{
|
{
|
||||||
ActiveEvent tempEvent = ActiveEvents[i];
|
ActiveEvent tempEvent = ActiveEvents[i];
|
||||||
if (tempEvent != null && tempEvent.source != null)
|
if (tempEvent != null && tempEvent.sources.Count != 0)
|
||||||
{
|
{
|
||||||
tempEvent.Update();
|
tempEvent.Update();
|
||||||
}
|
}
|
||||||
|
@ -189,15 +285,59 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private static void CreateInstance()
|
private static void CreateInstance()
|
||||||
{
|
{
|
||||||
if (Instance != null)
|
if (Instance != null || !AllowCreateInstance)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
CurrentLanguage = 0;
|
CurrentLanguage = 0;
|
||||||
|
ActiveEvents = new List<ActiveEvent>();
|
||||||
GameObject instanceObject = new GameObject("AudioManager");
|
GameObject instanceObject = new GameObject("AudioManager");
|
||||||
Instance = instanceObject.AddComponent<AudioManager>();
|
Instance = instanceObject.AddComponent<AudioManager>();
|
||||||
DontDestroyOnLoad(instanceObject);
|
DontDestroyOnLoad(instanceObject);
|
||||||
|
CreateSources();
|
||||||
|
Application.quitting += HandleQuitting;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// On shutdown we cannot create an instance
|
||||||
|
/// </summary>
|
||||||
|
private static void HandleQuitting()
|
||||||
|
{
|
||||||
|
AllowCreateInstance = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create the pool of AudioSources
|
||||||
|
/// </summary>
|
||||||
|
private static void CreateSources()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < DefaultSourcesCount; i++)
|
||||||
|
{
|
||||||
|
GameObject sourceGO = new GameObject("AudioSource" + i);
|
||||||
|
sourceGO.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
|
||||||
|
sourceGO.transform.SetParent(Instance.transform);
|
||||||
|
AudioSource tempSource = sourceGO.AddComponent<AudioSource>();
|
||||||
|
tempSource.playOnAwake = false;
|
||||||
|
SourcePool.Add(tempSource);
|
||||||
|
AvailableSources.Add(tempSource);
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
TextMesh newText = sourceGO.AddComponent<TextMesh>();
|
||||||
|
newText.characterSize = 0.2f;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void ClearSourceText()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < AvailableSources.Count; i++)
|
||||||
|
{
|
||||||
|
TextMesh tempText = AvailableSources[i].GetComponent<TextMesh>();
|
||||||
|
if (tempText != null)
|
||||||
|
{
|
||||||
|
tempText.text = string.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -231,7 +371,7 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
ActiveEvent tempEvent = ActiveEvents[i];
|
ActiveEvent tempEvent = ActiveEvents[i];
|
||||||
if (tempEvent.rootEvent.Group == groupNum)
|
if (tempEvent.rootEvent.Group == groupNum)
|
||||||
{
|
{
|
||||||
Debug.LogFormat("Stopping: {0}", tempEvent.rootEvent.name);
|
Debug.LogFormat("Stopping: {0}", tempEvent.name);
|
||||||
tempEvent.StopImmediate();
|
tempEvent.StopImmediate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -242,21 +382,20 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="emitterObject">The GameObject the AudioSource needs to be attached to</param>
|
/// <param name="emitterObject">The GameObject the AudioSource needs to be attached to</param>
|
||||||
/// <returns>An AudioSource reference if one exists, otherwise null</returns>
|
/// <returns>An AudioSource reference if one exists, otherwise null</returns>
|
||||||
private static AudioSource GetUnusedSource(GameObject emitterObject)
|
public static AudioSource GetUnusedSource()
|
||||||
{
|
{
|
||||||
ClearNullAudioSources();
|
ClearNullAudioSources();
|
||||||
|
|
||||||
for (int i = 0; i < AvailableSources.Count; i++)
|
if (AvailableSources.Count > 0)
|
||||||
{
|
{
|
||||||
AudioSource tempSource = AvailableSources[i];
|
AudioSource tempSource = AvailableSources[0];
|
||||||
if (tempSource.gameObject == emitterObject)
|
AvailableSources.Remove(tempSource);
|
||||||
{
|
return tempSource;
|
||||||
//Debug.LogFormat("{0} Sending available source {1}", Time.time, tempSource.GetInstanceID());
|
}
|
||||||
return tempSource;
|
else
|
||||||
}
|
{
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -278,19 +417,36 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// Make sure that the AudioManager has all of the required components
|
/// Make sure that the AudioManager has all of the required components
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>Whether there is a valid AudioManager instance</returns>
|
/// <returns>Whether there is a valid AudioManager instance</returns>
|
||||||
private static bool ValidateManager()
|
public static bool ValidateManager()
|
||||||
{
|
{
|
||||||
if (Instance == null)
|
if (Instance == null)
|
||||||
{
|
{
|
||||||
CreateInstance();
|
CreateInstance();
|
||||||
if (Instance == null)
|
}
|
||||||
{
|
|
||||||
return false;
|
return Instance != null;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
private static bool ValidateEvent(AudioEvent eventToPlay)
|
||||||
return true;
|
{
|
||||||
}
|
if (eventToPlay == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eventToPlay.ValidateAudioFiles())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (eventToPlay.InstanceLimit > 0 && CountActiveInstances(eventToPlay) >= eventToPlay.InstanceLimit)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (eventToPlay.Group != 0)
|
||||||
|
{
|
||||||
|
StopGroupInstances(eventToPlay.Group);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -344,4 +500,4 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -45,7 +45,7 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The minimum possible value for an AudioSource's pitch property
|
/// The minimum possible value for an AudioSource's pitch property
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected const float Pitch_Min = -3;
|
protected const float Pitch_Min = 0.01f;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The maximum possible value for an AudioSource's pitch property
|
/// The maximum possible value for an AudioSource's pitch property
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -69,13 +69,13 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
{
|
{
|
||||||
if (this.input == null)
|
if (this.input == null)
|
||||||
{
|
{
|
||||||
Debug.LogWarningFormat(activeEvent.source, "{0} does not have an input on node {1}", activeEvent, this.name);
|
Debug.LogWarningFormat("{0} does not have an input on node {1}", activeEvent, this.name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nodeNum >= this.input.ConnectedNodes.Length)
|
if (nodeNum >= this.input.ConnectedNodes.Length)
|
||||||
{
|
{
|
||||||
Debug.LogWarningFormat(activeEvent.source, "{0} tried to access invalid connected node {1}", this.name, nodeNum);
|
Debug.LogWarningFormat("{0} tried to access invalid connected node {1}", this.name, nodeNum);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -226,7 +226,7 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
|
|
||||||
Vector2 tempPos = new Vector2(this.nodeRect.x, this.nodeRect.y);
|
Vector2 tempPos = new Vector2(this.nodeRect.x, this.nodeRect.y);
|
||||||
tempPos.x -= this.input.Window.width;
|
tempPos.x -= this.input.Window.width;
|
||||||
tempPos.y += (this.nodeRect.height / 2);
|
tempPos.y += (this.nodeRect.height / 2) - 5;
|
||||||
this.input.Window.position = tempPos;
|
this.input.Window.position = tempPos;
|
||||||
|
|
||||||
if (ConnectorTexture == null)
|
if (ConnectorTexture == null)
|
||||||
|
@ -254,7 +254,7 @@ namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
|
|
||||||
Vector2 tempPos = new Vector2(this.nodeRect.x, this.nodeRect.y);
|
Vector2 tempPos = new Vector2(this.nodeRect.x, this.nodeRect.y);
|
||||||
tempPos.x += this.nodeRect.width;
|
tempPos.x += this.nodeRect.width;
|
||||||
tempPos.y += (this.nodeRect.height / 2);
|
tempPos.y += (this.nodeRect.height / 2) - 10;
|
||||||
this.output.Window.position = tempPos;
|
this.output.Window.position = tempPos;
|
||||||
|
|
||||||
if (ConnectorTexture == null)
|
if (ConnectorTexture == null)
|
|
@ -0,0 +1,25 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
using UnityEditor;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace Microsoft.MixedReality.Toolkit.Audio
|
||||||
|
{
|
||||||
|
public class AudioNullFile : AudioNode
|
||||||
|
{
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
private const float NodeHeight = 50;
|
||||||
|
|
||||||
|
public override void InitializeNode(Vector2 position)
|
||||||
|
{
|
||||||
|
this.name = "Null File";
|
||||||
|
this.nodeRect.position = position;
|
||||||
|
this.nodeRect.height = NodeHeight;
|
||||||
|
AddOutput();
|
||||||
|
EditorUtility.SetDirty(this);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче