Start implementation of diapason mechanics
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 55edeec15dec3504ea763efcaebe2e20
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,58 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c20752cb7065e844aaaedf606c4df2db, type: 3}
|
||||
m_Name: ElectricalEmitter
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Audio.AudioEmitterData
|
||||
EmitterType: 8
|
||||
DisplayName: Electrical Equipment
|
||||
BaseFrequency: 440
|
||||
FrequencyVariation: 100
|
||||
VolumeMin: 0.3
|
||||
VolumeMax: 0.6
|
||||
DurationMin: 0.3
|
||||
DurationMax: 1
|
||||
HarmonicMultipliers:
|
||||
- 1
|
||||
- 50
|
||||
HarmonicAmplitudes:
|
||||
- 0.6
|
||||
- 0.2
|
||||
NoiseAmount: 0.6
|
||||
EnableVibration: 1
|
||||
VibrationIntensityMin: 0.1
|
||||
VibrationIntensityMax: 0.4
|
||||
VibrationFrequency: 50
|
||||
MaxDistance: 10
|
||||
DistanceAttenuation:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: -2
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: -2
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eb6890dfbda288646b38b6b9146f9d4f
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,62 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c20752cb7065e844aaaedf606c4df2db, type: 3}
|
||||
m_Name: GlassEmitter
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Audio.AudioEmitterData
|
||||
EmitterType: 4
|
||||
DisplayName: Glass Object
|
||||
BaseFrequency: 1200
|
||||
FrequencyVariation: 150
|
||||
VolumeMin: 0.3
|
||||
VolumeMax: 0.6
|
||||
DurationMin: 0.4
|
||||
DurationMax: 1.8
|
||||
HarmonicMultipliers:
|
||||
- 1
|
||||
- 1.5
|
||||
- 2.7
|
||||
- 4.2
|
||||
HarmonicAmplitudes:
|
||||
- 1
|
||||
- 0.4
|
||||
- 0.3
|
||||
- 0.3
|
||||
NoiseAmount: 0.02
|
||||
EnableVibration: 1
|
||||
VibrationIntensityMin: 0.15
|
||||
VibrationIntensityMax: 0.35
|
||||
VibrationFrequency: 12
|
||||
MaxDistance: 10
|
||||
DistanceAttenuation:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: -2
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: -2
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5c4de5db134bf324d8ea989a164a46c8
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,58 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c20752cb7065e844aaaedf606c4df2db, type: 3}
|
||||
m_Name: MechanicalEmitter
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Audio.AudioEmitterData
|
||||
EmitterType: 7
|
||||
DisplayName: Mechanical Device
|
||||
BaseFrequency: 500
|
||||
FrequencyVariation: 80
|
||||
VolumeMin: 0.4
|
||||
VolumeMax: 0.7
|
||||
DurationMin: 0.5
|
||||
DurationMax: 1.5
|
||||
HarmonicMultipliers:
|
||||
- 1
|
||||
- 0.3
|
||||
HarmonicAmplitudes:
|
||||
- 1
|
||||
- 0.4
|
||||
NoiseAmount: 0.2
|
||||
EnableVibration: 1
|
||||
VibrationIntensityMin: 0.25
|
||||
VibrationIntensityMax: 0.6
|
||||
VibrationFrequency: 20
|
||||
MaxDistance: 10
|
||||
DistanceAttenuation:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: -2
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: -2
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cde2a2439e4fa2140a747cf1211326e7
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,62 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c20752cb7065e844aaaedf606c4df2db, type: 3}
|
||||
m_Name: MetalEmitter
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Audio.AudioEmitterData
|
||||
EmitterType: 3
|
||||
DisplayName: Metal Object
|
||||
BaseFrequency: 800
|
||||
FrequencyVariation: 100
|
||||
VolumeMin: 0.4
|
||||
VolumeMax: 0.7
|
||||
DurationMin: 0.5
|
||||
DurationMax: 2
|
||||
HarmonicMultipliers:
|
||||
- 1
|
||||
- 2.1
|
||||
- 3.8
|
||||
- 5.2
|
||||
HarmonicAmplitudes:
|
||||
- 1
|
||||
- 0.5
|
||||
- 0.3
|
||||
- 0.2
|
||||
NoiseAmount: 0.05
|
||||
EnableVibration: 1
|
||||
VibrationIntensityMin: 0.2
|
||||
VibrationIntensityMax: 0.5
|
||||
VibrationFrequency: 15
|
||||
MaxDistance: 10
|
||||
DistanceAttenuation:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: -2
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: -2
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3223099b653badf418b90b283c24759a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,60 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c20752cb7065e844aaaedf606c4df2db, type: 3}
|
||||
m_Name: OrganicEmitter
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Audio.AudioEmitterData
|
||||
EmitterType: 9
|
||||
DisplayName: Organic Material
|
||||
BaseFrequency: 350
|
||||
FrequencyVariation: 70
|
||||
VolumeMin: 0.3
|
||||
VolumeMax: 0.6
|
||||
DurationMin: 0.6
|
||||
DurationMax: 1.4
|
||||
HarmonicMultipliers:
|
||||
- 1
|
||||
- 0.7
|
||||
- 1.3
|
||||
HarmonicAmplitudes:
|
||||
- 1
|
||||
- 0.5
|
||||
- 0.3
|
||||
NoiseAmount: 0.2
|
||||
EnableVibration: 1
|
||||
VibrationIntensityMin: 0.1
|
||||
VibrationIntensityMax: 0.35
|
||||
VibrationFrequency: 8
|
||||
MaxDistance: 10
|
||||
DistanceAttenuation:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: -2
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: -2
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9553a06d46bfc5a41b12e09d953d2ee3
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,58 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c20752cb7065e844aaaedf606c4df2db, type: 3}
|
||||
m_Name: StoneEmitter
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Audio.AudioEmitterData
|
||||
EmitterType: 6
|
||||
DisplayName: Stone / Rock
|
||||
BaseFrequency: 250
|
||||
FrequencyVariation: 30
|
||||
VolumeMin: 0.3
|
||||
VolumeMax: 0.5
|
||||
DurationMin: 0.7
|
||||
DurationMax: 1.3
|
||||
HarmonicMultipliers:
|
||||
- 1
|
||||
- 0.8
|
||||
HarmonicAmplitudes:
|
||||
- 1
|
||||
- 0.5
|
||||
NoiseAmount: 0.25
|
||||
EnableVibration: 1
|
||||
VibrationIntensityMin: 0.15
|
||||
VibrationIntensityMax: 0.4
|
||||
VibrationFrequency: 9
|
||||
MaxDistance: 10
|
||||
DistanceAttenuation:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: -2
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: -2
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ecc561991a72aa44487428785e7b0ab3
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,58 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c20752cb7065e844aaaedf606c4df2db, type: 3}
|
||||
m_Name: WallEmitter
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Audio.AudioEmitterData
|
||||
EmitterType: 1
|
||||
DisplayName: Wall / Generic Surface
|
||||
BaseFrequency: 200
|
||||
FrequencyVariation: 20
|
||||
VolumeMin: 0.2
|
||||
VolumeMax: 0.4
|
||||
DurationMin: 0.8
|
||||
DurationMax: 1.5
|
||||
HarmonicMultipliers:
|
||||
- 1
|
||||
- 0.5
|
||||
HarmonicAmplitudes:
|
||||
- 1
|
||||
- 0.3
|
||||
NoiseAmount: 0.1
|
||||
EnableVibration: 1
|
||||
VibrationIntensityMin: 0.05
|
||||
VibrationIntensityMax: 0.2
|
||||
VibrationFrequency: 8
|
||||
MaxDistance: 10
|
||||
DistanceAttenuation:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: -2
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: -2
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2addbd0845f1ca947847bed104b7f521
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,58 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c20752cb7065e844aaaedf606c4df2db, type: 3}
|
||||
m_Name: WaterEmitter
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Audio.AudioEmitterData
|
||||
EmitterType: 5
|
||||
DisplayName: Water / Liquid
|
||||
BaseFrequency: 220
|
||||
FrequencyVariation: 80
|
||||
VolumeMin: 0.2
|
||||
VolumeMax: 0.5
|
||||
DurationMin: 0.8
|
||||
DurationMax: 2
|
||||
HarmonicMultipliers:
|
||||
- 1
|
||||
- 0.5
|
||||
HarmonicAmplitudes:
|
||||
- 0.5
|
||||
- 0.3
|
||||
NoiseAmount: 0.5
|
||||
EnableVibration: 1
|
||||
VibrationIntensityMin: 0.05
|
||||
VibrationIntensityMax: 0.25
|
||||
VibrationFrequency: 5
|
||||
MaxDistance: 10
|
||||
DistanceAttenuation:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: -2
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: -2
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ddf7eb06de4a29340b384c1d59358dc9
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,58 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c20752cb7065e844aaaedf606c4df2db, type: 3}
|
||||
m_Name: WoodEmitter
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Audio.AudioEmitterData
|
||||
EmitterType: 2
|
||||
DisplayName: Wooden Object
|
||||
BaseFrequency: 300
|
||||
FrequencyVariation: 50
|
||||
VolumeMin: 0.3
|
||||
VolumeMax: 0.6
|
||||
DurationMin: 0.6
|
||||
DurationMax: 1.2
|
||||
HarmonicMultipliers:
|
||||
- 1
|
||||
- 1.5
|
||||
HarmonicAmplitudes:
|
||||
- 1
|
||||
- 0.4
|
||||
NoiseAmount: 0.15
|
||||
EnableVibration: 1
|
||||
VibrationIntensityMin: 0.1
|
||||
VibrationIntensityMax: 0.3
|
||||
VibrationFrequency: 10
|
||||
MaxDistance: 10
|
||||
DistanceAttenuation:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: -2
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: -2
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e5ad9a01d52ca2743a0fe24362fa8ced
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fff75f66b0a0ab54e8fd5f84ccf1dbe0
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,110 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a117ffd897689164e9b74b1b8b10f644
|
||||
ModelImporter:
|
||||
serializedVersion: 24200
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
materials:
|
||||
materialImportMode: 2
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
removeConstantScaleCurves: 0
|
||||
motionNodeName:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 1
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importPhysicalCameras: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
nodeNameCollisionStrategy: 1
|
||||
fileIdsGeneration: 2
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
optimizeBones: 1
|
||||
generateMeshLods: 0
|
||||
meshLodGenerationFlags: 0
|
||||
maximumMeshLod: -1
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 1
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
strictVertexDataChecks: 0
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 0
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human: []
|
||||
skeleton: []
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
globalScale: 1
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 0
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 0
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 0
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||
importBlendShapeDeformPercent: 1
|
||||
remapMaterialsIfMaterialImportModeIsNone: 0
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5bc9b2a4de4a1464c9c1c5b39f5318bb
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 60 KiB |
@@ -0,0 +1,117 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4f842c73d905a12439f380cd6244eb04
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 849a46d393b74aa48b01e23172a98a40
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,173 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-1729552975815595197
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||
version: 10
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: DiapasonParticleMaterial
|
||||
m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
m_InvalidKeywords:
|
||||
- _ZWRITE_ON
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
- GRABPASS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _AlphaTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 4f842c73d905a12439f380cd6244eb04, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MaskTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _NormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 0
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _ColorMode: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 10
|
||||
- _DstBlendAlpha: 0
|
||||
- _EmissionEnabled: 0
|
||||
- _EnableExternalAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _FlipbookMode: 0
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _LightingEnabled: 0
|
||||
- _Metallic: 0
|
||||
- _Mode: 2
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SoftParticlesEnabled: 0
|
||||
- _SoftParticlesFarFadeDistance: 1
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 5
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1bd75b851e2a56e45959030c54c77516
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -22,7 +22,7 @@ Material:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: RoomThreeMaterial
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_Parent: {fileID: 2100000, guid: c3a0eae7cb27aea4ea8bb21364879f77, type: 2}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ENVIRONMENTREFLECTIONS_OFF
|
||||
@@ -39,103 +39,11 @@ Material:
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_TexEnvs: []
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 0
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _Metallic: 1
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 0
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 1
|
||||
m_Floats: []
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.9433962, g: 0.67169976, b: 0, a: 1}
|
||||
- _Color: {r: 0.9433962, g: 0.67169976, b: 0, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fde962890a527d04faf3bec593d99afe
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,141 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-6718159044353317607
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 10
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: RoomFourMaterial
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ENVIRONMENTREFLECTIONS_OFF
|
||||
m_InvalidKeywords:
|
||||
- _GLOSSYREFLECTIONS_OFF
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 0
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _Metallic: 1
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 0
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.5146803, g: 1, b: 0.48742133, a: 1}
|
||||
- _Color: {r: 0.51468027, g: 1, b: 0.48742133, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c3a0eae7cb27aea4ea8bb21364879f77
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,273 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1472533880154226824
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3279932207826154136}
|
||||
- component: {fileID: 1111284075867638658}
|
||||
- component: {fileID: 6070160908100218527}
|
||||
- component: {fileID: 5262275440216225989}
|
||||
m_Layer: 0
|
||||
m_Name: Cube
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3279932207826154136
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1472533880154226824}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 8, y: 5, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 4721786510254652090}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &1111284075867638658
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1472533880154226824}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &6070160908100218527
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1472533880154226824}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_ForceMeshLod: -1
|
||||
m_MeshLodSelectionBias: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_GlobalIlluminationMeshLod: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_MaskInteraction: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!65 &5262275440216225989
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1472533880154226824}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1996348199229998323
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4721786510254652090}
|
||||
m_Layer: 0
|
||||
m_Name: Render
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4721786510254652090
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1996348199229998323}
|
||||
serializedVersion: 2
|
||||
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_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3279932207826154136}
|
||||
m_Father: {fileID: 5755410889840572423}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &2822448012032697683
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5755410889840572423}
|
||||
m_Layer: 0
|
||||
m_Name: SoundEmitter
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5755410889840572423
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2822448012032697683}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 4.36, z: 13.03}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 7557053910863834421}
|
||||
- {fileID: 4721786510254652090}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &7448775950719106884
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 5755410889840572423}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1124780566057055841, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: DiapasonParticles
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalScale.y
|
||||
value: 5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalScale.z
|
||||
value: 5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -0.86
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_ConstrainProportionsScale
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7195447085232448540, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: lengthInSec
|
||||
value: 3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7195447085232448540, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: InitialModule.startLifetime.scalar
|
||||
value: 3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8767648373964295896, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_RenderMode
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8767648373964295896, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_RenderAlignment
|
||||
value: 2
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
--- !u!4 &7557053910863834421 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
m_PrefabInstance: {fileID: 7448775950719106884}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 01f9cdfc376629a4c813a82a095c3b3a
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f2af3d7fa7865a9409801072f69eaae5
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8bb34a961d0969644bdd7a29960b46c9
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,187 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &5030950371277861040
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6952011244025097897}
|
||||
- component: {fileID: 7714367536335993543}
|
||||
- component: {fileID: 7699310115227487317}
|
||||
m_Layer: 0
|
||||
m_Name: Diapason
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &6952011244025097897
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5030950371277861040}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 6, y: 6, z: 6}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5629947512209565818}
|
||||
m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
|
||||
--- !u!33 &7714367536335993543
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5030950371277861040}
|
||||
m_Mesh: {fileID: 7659616774058481010, guid: a117ffd897689164e9b74b1b8b10f644, type: 3}
|
||||
--- !u!23 &7699310115227487317
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5030950371277861040}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_ForceMeshLod: -1
|
||||
m_MeshLodSelectionBias: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_GlobalIlluminationMeshLod: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_MaskInteraction: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!1 &8689584738786529861
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5629947512209565818}
|
||||
m_Layer: 0
|
||||
m_Name: Diapason
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5629947512209565818
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8689584738786529861}
|
||||
serializedVersion: 2
|
||||
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_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 6952011244025097897}
|
||||
- {fileID: 6349416298506944754}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &6314884808766083715
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 5629947512209565818}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1124780566057055841, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: DiapasonParticles
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0.846
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: -90
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
--- !u!4 &6349416298506944754 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 1134716054066844273, guid: 8bb34a961d0969644bdd7a29960b46c9, type: 3}
|
||||
m_PrefabInstance: {fileID: 6314884808766083715}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2812cddb6de789b46ac9d640bb9ce410
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -158,6 +158,8 @@ GameObject:
|
||||
- component: {fileID: 628960863558716885}
|
||||
- component: {fileID: 2196409116512069894}
|
||||
- component: {fileID: 1144804793528068392}
|
||||
- component: {fileID: 3142789394009655648}
|
||||
- component: {fileID: 3919526576499794210}
|
||||
- component: {fileID: 3942456782017280985}
|
||||
m_Layer: 0
|
||||
m_Name: Player
|
||||
@@ -181,6 +183,7 @@ Transform:
|
||||
m_Children:
|
||||
- {fileID: 6982185339454062415}
|
||||
- {fileID: 7498738043038890726}
|
||||
- {fileID: 253341405320884814}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!136 &7491646674988902879
|
||||
@@ -401,6 +404,7 @@ MonoBehaviour:
|
||||
LookInput: {x: 0, y: 0}
|
||||
JumpAction: {fileID: -2099379676528639254, guid: 052faaac586de48259a63d0c4782560b, type: 3}
|
||||
InteractAction: {fileID: 1781555164194001046, guid: 052faaac586de48259a63d0c4782560b, type: 3}
|
||||
DiapasonAction: {fileID: 0}
|
||||
--- !u!114 &2756854183089553922
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -476,6 +480,52 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
GraphicsObject: {fileID: 2911834610010628020}
|
||||
--- !u!114 &3142789394009655648
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8240327778457960307}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 2094bd9c6f72e5b4cadf430f4d70f8f6, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.Player.DiapasonListeningHandler
|
||||
_diapasonObject: {fileID: 3833126793998633073}
|
||||
_diapasonAnimator: {fileID: 0}
|
||||
_playerCamera: {fileID: 4106604842127079875}
|
||||
_cursorTransform: {fileID: 0}
|
||||
_listeningRange: 5
|
||||
_listenableLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
_concentrationDuration: 1
|
||||
_breathInDuration: 0.5
|
||||
_cameraPanSpeed: 2
|
||||
_cameraPanBorderSize: 0.1
|
||||
_maxCameraPanAngle: 15
|
||||
_vignetteIntensity: 0.5
|
||||
_vignetteEffect: {fileID: 0}
|
||||
_breathInClip: {fileID: 0}
|
||||
_diapasonTapClip: {fileID: 0}
|
||||
_ambientAttenuationAmount: 0.3
|
||||
_diapasonAction: {fileID: 0}
|
||||
--- !u!114 &3919526576499794210
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8240327778457960307}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 878ebc270c13e5c49a3813b1848f6ea5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.Player.ListeningVignetteEffect
|
||||
_globalVolume: {fileID: 0}
|
||||
_targetIntensity: 0.5
|
||||
_transitionSpeed: 2
|
||||
--- !u!65 &3942456782017280985
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -569,3 +619,70 @@ Camera:
|
||||
m_CorrespondingSourceObject: {fileID: 671466249668048498, guid: e73a3b0e274984f4d8b6a073e03d4d03, type: 3}
|
||||
m_PrefabInstance: {fileID: 3579255215054032817}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &5595049384473844276
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 5383576672370031505}
|
||||
m_Modifications:
|
||||
- target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0.401
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: -0.163
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 1.148
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 0.70672613
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0.14218356
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0.6926643
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0.023197526
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 9.72
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 90
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 13.48
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8689584738786529861, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Diapason
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
||||
--- !u!4 &253341405320884814 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 5629947512209565818, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
||||
m_PrefabInstance: {fileID: 5595049384473844276}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &3833126793998633073 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 8689584738786529861, guid: 2812cddb6de789b46ac9d640bb9ce410, type: 3}
|
||||
m_PrefabInstance: {fileID: 5595049384473844276}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 20e4ea3ceee86dd4ba3881425b65790d
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1103,6 +1103,7 @@ Transform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 89030420073598835}
|
||||
- {fileID: 1809488970531370071}
|
||||
m_Father: {fileID: 3965737018690194595}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &7994283466214186746
|
||||
@@ -1140,6 +1141,92 @@ Transform:
|
||||
- {fileID: 7656844688830104809}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &4690937670091434392
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 8686293093389133775}
|
||||
m_Modifications:
|
||||
- target: {fileID: 4967478502310356297, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
propertyPath: m_VersionIndex
|
||||
value: 3829
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5627569817145768567, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
propertyPath: _portalId
|
||||
value: room4_to_room5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5627569817145768567, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
propertyPath: _linkedPortalId
|
||||
value: room5_from_room4
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5627569817145768567, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
propertyPath: _loadRoomDistance
|
||||
value: 100
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5627569817145768567, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
propertyPath: _roomPrefabToLoad
|
||||
value:
|
||||
objectReference: {fileID: 7994283466214186746, guid: 20e4ea3ceee86dd4ba3881425b65790d, type: 3}
|
||||
- target: {fileID: 6342500202952138191, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: -8.919849
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6342500202952138191, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: -6.1295586
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6342500202952138191, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 11.504653
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6342500202952138191, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6342500202952138191, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6342500202952138191, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6342500202952138191, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6342500202952138191, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6342500202952138191, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6342500202952138191, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8609694097640656311, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: PortalNextRoom
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9179360229794157732, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
propertyPath: m_Intensity
|
||||
value: 400
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
--- !u!4 &1809488970531370071 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 6342500202952138191, guid: e21058d2724cc5645a8770f341df17ed, type: 3}
|
||||
m_PrefabInstance: {fileID: 4690937670091434392}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &5743144788132100116
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -61,6 +61,35 @@ MonoBehaviour:
|
||||
components:
|
||||
- {fileID: -2377233209073585518}
|
||||
- {fileID: 8509126739908491996}
|
||||
- {fileID: 5476074146827123185}
|
||||
--- !u!114 &5476074146827123185
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3}
|
||||
m_Name: Vignette
|
||||
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.Vignette
|
||||
active: 1
|
||||
color:
|
||||
m_OverrideState: 0
|
||||
m_Value: {r: 0, g: 0, b: 0, a: 1}
|
||||
center:
|
||||
m_OverrideState: 0
|
||||
m_Value: {x: 0.5, y: 0.5}
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
smoothness:
|
||||
m_OverrideState: 0
|
||||
m_Value: 0.2
|
||||
rounded:
|
||||
m_OverrideState: 0
|
||||
m_Value: 0
|
||||
--- !u!114 &8509126739908491996
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
|
||||
@@ -1137,7 +1137,7 @@ MonoBehaviour:
|
||||
_raycastInterval: 0
|
||||
_recoveryDuration: 0.5
|
||||
_focusRetentionTime: 0.1
|
||||
_shakeIntensity: 30
|
||||
_fallbackShakeIntensity: 30
|
||||
--- !u!4 &1804390687 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 8057303164503007523, guid: 204c7983537bb6c44a8ecafa782fca99, type: 3}
|
||||
@@ -2285,6 +2285,14 @@ PrefabInstance:
|
||||
propertyPath: _frameRate
|
||||
value: 120
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3142789394009655648, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3}
|
||||
propertyPath: _vignetteEffect
|
||||
value:
|
||||
objectReference: {fileID: 5090177222934034459}
|
||||
- target: {fileID: 3919526576499794210, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3}
|
||||
propertyPath: _globalVolume
|
||||
value:
|
||||
objectReference: {fileID: 832575518}
|
||||
- target: {fileID: 4318595159677514229, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3}
|
||||
propertyPath: _interactableLayers.m_Bits
|
||||
value: 8
|
||||
@@ -2381,6 +2389,17 @@ PrefabInstance:
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 436513847}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3}
|
||||
--- !u!114 &5090177222934034459 stripped
|
||||
MonoBehaviour:
|
||||
m_CorrespondingSourceObject: {fileID: 3919526576499794210, guid: 92d3cde0c88c75f48a98d082c573338b, type: 3}
|
||||
m_PrefabInstance: {fileID: 5090177222934034458}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 878ebc270c13e5c49a3813b1848f6ea5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Gameplay.Player.ListeningVignetteEffect
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -0,0 +1,249 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
|
||||
namespace Unheimlich.Audio
|
||||
{
|
||||
public enum AudioEmitterType
|
||||
{
|
||||
Generic,
|
||||
Wall,
|
||||
Wood,
|
||||
Metal,
|
||||
Glass,
|
||||
Water,
|
||||
Stone,
|
||||
Mechanical,
|
||||
Electrical,
|
||||
Organic
|
||||
}
|
||||
|
||||
public class AudioListenable : MonoBehaviour
|
||||
{
|
||||
[Header("Emitter Settings")]
|
||||
[SerializeField] private AudioEmitterType _emitterType = AudioEmitterType.Generic;
|
||||
[SerializeField] private bool _useProceduralAudio = true;
|
||||
|
||||
[Header("Static Audio")]
|
||||
[SerializeField] private AudioClip _staticAudioClip;
|
||||
[SerializeField] private bool _loopStaticAudio = true;
|
||||
|
||||
[Header("Procedural Settings")]
|
||||
[SerializeField] private float _baseFrequency = 440f;
|
||||
[SerializeField] private float _frequencyVariation = 50f;
|
||||
[SerializeField] private float _volumeMin = 0.3f;
|
||||
[SerializeField] private float _volumeMax = 0.7f;
|
||||
[SerializeField] private float _durationMin = 0.5f;
|
||||
[SerializeField] private float _durationMax = 2f;
|
||||
|
||||
[Header("Distance Attenuation")]
|
||||
[SerializeField] private float _maxDistance = 10f;
|
||||
[SerializeField] private AnimationCurve _distanceAttenuation = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f);
|
||||
|
||||
[Header("Vibration Settings")]
|
||||
[SerializeField] private bool _enableVibration = true;
|
||||
[SerializeField] private float _vibrationIntensityMin = 0.1f;
|
||||
[SerializeField] private float _vibrationIntensityMax = 0.5f;
|
||||
[SerializeField] private float _vibrationFrequency = 10f;
|
||||
|
||||
private AudioSource _audioSource;
|
||||
private bool _isCurrentlyListening;
|
||||
private float _listeningTimer;
|
||||
private float _nextProceduralEventTime;
|
||||
private Vector3 _listenerPosition;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_audioSource = GetComponent<AudioSource>();
|
||||
if (_audioSource == null)
|
||||
_audioSource = gameObject.AddComponent<AudioSource>();
|
||||
|
||||
_audioSource.spatialBlend = 1f;
|
||||
_audioSource.maxDistance = _maxDistance;
|
||||
_audioSource.rolloffMode = AudioRolloffMode.Custom;
|
||||
_audioSource.playOnAwake = false;
|
||||
}
|
||||
|
||||
public void StartListening(Vector3 listenerPosition)
|
||||
{
|
||||
_isCurrentlyListening = true;
|
||||
_listenerPosition = listenerPosition;
|
||||
_listeningTimer = 0f;
|
||||
_nextProceduralEventTime = 0f;
|
||||
|
||||
if (_useProceduralAudio)
|
||||
{
|
||||
PlayProceduralSound();
|
||||
}
|
||||
else if (_staticAudioClip != null)
|
||||
{
|
||||
_audioSource.clip = _staticAudioClip;
|
||||
_audioSource.loop = _loopStaticAudio;
|
||||
_audioSource.Play();
|
||||
}
|
||||
|
||||
if (_enableVibration)
|
||||
StartVibration();
|
||||
}
|
||||
|
||||
public void StopListening()
|
||||
{
|
||||
_isCurrentlyListening = false;
|
||||
|
||||
if (_audioSource != null && _audioSource.isPlaying)
|
||||
_audioSource.Stop();
|
||||
|
||||
StopVibration();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (!_isCurrentlyListening)
|
||||
return;
|
||||
|
||||
_listeningTimer += Time.deltaTime;
|
||||
|
||||
if (_useProceduralAudio && _listeningTimer >= _nextProceduralEventTime)
|
||||
{
|
||||
PlayProceduralSound();
|
||||
_nextProceduralEventTime = _listeningTimer + Random.Range(_durationMin, _durationMax);
|
||||
}
|
||||
|
||||
UpdateVibration();
|
||||
}
|
||||
|
||||
private void PlayProceduralSound()
|
||||
{
|
||||
float distance = Vector3.Distance(_listenerPosition, transform.position);
|
||||
float distanceFactor = Mathf.Clamp01(1f - (distance / _maxDistance));
|
||||
float attenuation = _distanceAttenuation.Evaluate(distanceFactor);
|
||||
|
||||
float frequency = _baseFrequency + Random.Range(-_frequencyVariation, _frequencyVariation);
|
||||
float volume = Mathf.Lerp(_volumeMin, _volumeMax, Random.value) * attenuation;
|
||||
|
||||
AudioClip proceduralClip = GenerateProceduralAudioClip(frequency, Random.Range(_durationMin, _durationMax));
|
||||
|
||||
_audioSource.clip = proceduralClip;
|
||||
_audioSource.volume = volume;
|
||||
_audioSource.loop = false;
|
||||
_audioSource.Play();
|
||||
}
|
||||
|
||||
private AudioClip GenerateProceduralAudioClip(float frequency, float duration)
|
||||
{
|
||||
int sampleRate = 44100;
|
||||
int sampleCount = Mathf.RoundToInt(sampleRate * duration);
|
||||
|
||||
AudioClip clip = AudioClip.Create("ProceduralSound", sampleCount, 1, sampleRate, false);
|
||||
float[] samples = new float[sampleCount];
|
||||
|
||||
for (int i = 0; i < sampleCount; i++)
|
||||
{
|
||||
float t = (float)i / sampleRate;
|
||||
float envelope = Mathf.Sin(Mathf.PI * t / duration);
|
||||
|
||||
samples[i] = GenerateSampleForType(frequency, t, _emitterType) * envelope;
|
||||
}
|
||||
|
||||
clip.SetData(samples, 0);
|
||||
return clip;
|
||||
}
|
||||
|
||||
private float GenerateSampleForType(float frequency, float time, AudioEmitterType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case AudioEmitterType.Metal:
|
||||
return Mathf.Sin(2f * Mathf.PI * frequency * time) * 0.5f +
|
||||
Mathf.Sin(2f * Mathf.PI * frequency * 2.1f * time) * 0.3f +
|
||||
Mathf.Sin(2f * Mathf.PI * frequency * 3.8f * time) * 0.2f;
|
||||
|
||||
case AudioEmitterType.Wood:
|
||||
return Mathf.Sin(2f * Mathf.PI * frequency * time) * 0.6f +
|
||||
(Random.value - 0.5f) * 0.1f;
|
||||
|
||||
case AudioEmitterType.Glass:
|
||||
return Mathf.Sin(2f * Mathf.PI * frequency * 1.5f * time) * 0.4f +
|
||||
Mathf.Sin(2f * Mathf.PI * frequency * 2.7f * time) * 0.3f +
|
||||
Mathf.Sin(2f * Mathf.PI * frequency * 4.2f * time) * 0.3f;
|
||||
|
||||
case AudioEmitterType.Stone:
|
||||
return Mathf.Sin(2f * Mathf.PI * frequency * 0.8f * time) * 0.5f +
|
||||
(Random.value - 0.5f) * 0.3f;
|
||||
|
||||
case AudioEmitterType.Water:
|
||||
return (Random.value - 0.5f) * 0.5f +
|
||||
Mathf.Sin(2f * Mathf.PI * frequency * 0.5f * time) * 0.3f;
|
||||
|
||||
case AudioEmitterType.Mechanical:
|
||||
return Mathf.Sin(2f * Mathf.PI * frequency * time) * 0.4f +
|
||||
Mathf.Sign(Mathf.Sin(2f * Mathf.PI * frequency * 0.3f * time)) * 0.3f;
|
||||
|
||||
case AudioEmitterType.Electrical:
|
||||
return (Random.value - 0.5f) * 0.6f +
|
||||
Mathf.Sin(2f * Mathf.PI * frequency * 50f * time) * 0.2f;
|
||||
|
||||
case AudioEmitterType.Organic:
|
||||
return Mathf.Sin(2f * Mathf.PI * frequency * 0.7f * time) * 0.5f +
|
||||
Mathf.Sin(2f * Mathf.PI * frequency * 1.3f * time) * 0.3f +
|
||||
(Random.value - 0.5f) * 0.2f;
|
||||
|
||||
case AudioEmitterType.Wall:
|
||||
return Mathf.Sin(2f * Mathf.PI * frequency * 0.5f * time) * 0.3f +
|
||||
(Random.value - 0.5f) * 0.1f;
|
||||
|
||||
default:
|
||||
return Mathf.Sin(2f * Mathf.PI * frequency * time);
|
||||
}
|
||||
}
|
||||
|
||||
private void StartVibration()
|
||||
{
|
||||
if (Gamepad.current == null)
|
||||
return;
|
||||
|
||||
float distance = Vector3.Distance(_listenerPosition, transform.position);
|
||||
float distanceFactor = Mathf.Clamp01(1f - (distance / _maxDistance));
|
||||
float intensity = Mathf.Lerp(_vibrationIntensityMin, _vibrationIntensityMax, distanceFactor);
|
||||
|
||||
Gamepad.current.SetMotorSpeeds(intensity, intensity);
|
||||
}
|
||||
|
||||
private void UpdateVibration()
|
||||
{
|
||||
if (!_enableVibration || Gamepad.current == null)
|
||||
return;
|
||||
|
||||
float distance = Vector3.Distance(_listenerPosition, transform.position);
|
||||
float distanceFactor = Mathf.Clamp01(1f - (distance / _maxDistance));
|
||||
float intensity = Mathf.Lerp(_vibrationIntensityMin, _vibrationIntensityMax, distanceFactor);
|
||||
|
||||
float vibrationPattern = Mathf.Abs(Mathf.Sin(Time.time * _vibrationFrequency));
|
||||
intensity *= vibrationPattern;
|
||||
|
||||
Gamepad.current.SetMotorSpeeds(intensity, intensity);
|
||||
}
|
||||
|
||||
private void StopVibration()
|
||||
{
|
||||
if (Gamepad.current != null)
|
||||
Gamepad.current.SetMotorSpeeds(0f, 0f);
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
StopListening();
|
||||
}
|
||||
|
||||
private void OnDrawGizmosSelected()
|
||||
{
|
||||
Gizmos.color = Color.cyan;
|
||||
Gizmos.DrawWireSphere(transform.position, _maxDistance);
|
||||
|
||||
if (_isCurrentlyListening)
|
||||
{
|
||||
Gizmos.color = Color.green;
|
||||
Gizmos.DrawLine(transform.position, _listenerPosition);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e15490f7adacb594cb114f535e71d6b6
|
||||
@@ -0,0 +1,91 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
|
||||
namespace Unheimlich.Audio
|
||||
{
|
||||
public class AudioListenableEvent : MonoBehaviour
|
||||
{
|
||||
[Header("Event Settings")]
|
||||
[SerializeField] private bool _triggerOnce = false;
|
||||
[SerializeField] private float _delayBeforeEvent = 0f;
|
||||
|
||||
[Header("Events")]
|
||||
[SerializeField] private UnityEvent _onListeningStarted;
|
||||
[SerializeField] private UnityEvent _onListeningStopped;
|
||||
[SerializeField] private UnityEvent _onFirstListen;
|
||||
|
||||
private AudioListenable _listenable;
|
||||
private bool _hasBeenListenedTo = false;
|
||||
private bool _isCurrentlyListening = false;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_listenable = GetComponent<AudioListenable>();
|
||||
if (_listenable == null)
|
||||
{
|
||||
Debug.LogError($"AudioListenableEvent on {gameObject.name} requires AudioListenable component!");
|
||||
enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (_listenable == null)
|
||||
return;
|
||||
|
||||
bool wasListening = _isCurrentlyListening;
|
||||
|
||||
if (wasListening && !_isCurrentlyListening)
|
||||
{
|
||||
OnListeningStopped();
|
||||
}
|
||||
}
|
||||
|
||||
public void OnListeningStart()
|
||||
{
|
||||
if (_triggerOnce && _hasBeenListenedTo)
|
||||
return;
|
||||
|
||||
_isCurrentlyListening = true;
|
||||
|
||||
if (_delayBeforeEvent > 0)
|
||||
Invoke(nameof(TriggerListeningStartedEvent), _delayBeforeEvent);
|
||||
else
|
||||
TriggerListeningStartedEvent();
|
||||
|
||||
if (!_hasBeenListenedTo)
|
||||
{
|
||||
_hasBeenListenedTo = true;
|
||||
_onFirstListen?.Invoke();
|
||||
}
|
||||
}
|
||||
|
||||
private void TriggerListeningStartedEvent()
|
||||
{
|
||||
_onListeningStarted?.Invoke();
|
||||
}
|
||||
|
||||
private void OnListeningStopped()
|
||||
{
|
||||
_isCurrentlyListening = false;
|
||||
_onListeningStopped?.Invoke();
|
||||
}
|
||||
|
||||
public void EnableListenable()
|
||||
{
|
||||
if (_listenable != null)
|
||||
_listenable.enabled = true;
|
||||
}
|
||||
|
||||
public void DisableListenable()
|
||||
{
|
||||
if (_listenable != null)
|
||||
_listenable.enabled = false;
|
||||
}
|
||||
|
||||
public void ResetTrigger()
|
||||
{
|
||||
_hasBeenListenedTo = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 522dcfb634e07d240afa8ae5344fc785
|
||||
@@ -0,0 +1,119 @@
|
||||
using UnityEngine;
|
||||
using Unheimlich.Gameplay.Player;
|
||||
|
||||
namespace Unheimlich.Audio
|
||||
{
|
||||
public class DiapasonDebugger : MonoBehaviour
|
||||
{
|
||||
[Header("Debug Display")]
|
||||
[SerializeField] private bool _showDebugInfo = true;
|
||||
[SerializeField] private bool _showGizmos = true;
|
||||
[SerializeField] private Color _listeningRangeColor = Color.cyan;
|
||||
[SerializeField] private Color _activeTargetColor = Color.green;
|
||||
|
||||
private DiapasonListeningHandler _listeningHandler;
|
||||
private AudioListenable[] _allListenables;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_listeningHandler = DiapasonListeningHandler.Instance;
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
RefreshListenablesList();
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
if (!_showDebugInfo || _listeningHandler == null)
|
||||
return;
|
||||
|
||||
GUILayout.BeginArea(new Rect(10, 10, 300, 200));
|
||||
GUILayout.Box("Diapason System Debug");
|
||||
|
||||
GUILayout.Label($"Is Listening: {_listeningHandler.IsListening}");
|
||||
GUILayout.Label($"Is Concentrating: {_listeningHandler.IsConcentrating}");
|
||||
|
||||
if (_allListenables != null)
|
||||
GUILayout.Label($"Total Listenables: {_allListenables.Length}");
|
||||
|
||||
if (GUILayout.Button("Refresh Listenables List"))
|
||||
RefreshListenablesList();
|
||||
|
||||
if (GUILayout.Button("Toggle Debug Gizmos"))
|
||||
_showGizmos = !_showGizmos;
|
||||
|
||||
GUILayout.EndArea();
|
||||
}
|
||||
|
||||
private void RefreshListenablesList()
|
||||
{
|
||||
_allListenables = FindObjectsByType<AudioListenable>(FindObjectsSortMode.None);
|
||||
Debug.Log($"Found {_allListenables.Length} AudioListenable objects in scene");
|
||||
}
|
||||
|
||||
private void OnDrawGizmos()
|
||||
{
|
||||
if (!_showGizmos)
|
||||
return;
|
||||
|
||||
if (_allListenables == null)
|
||||
_allListenables = FindObjectsByType<AudioListenable>(FindObjectsSortMode.None);
|
||||
|
||||
foreach (AudioListenable listenable in _allListenables)
|
||||
{
|
||||
if (listenable == null)
|
||||
continue;
|
||||
|
||||
Gizmos.color = _listeningRangeColor;
|
||||
Gizmos.DrawIcon(listenable.transform.position, "sv_icon_dot3_pix16_gizmo", true);
|
||||
|
||||
Gizmos.color = new Color(_listeningRangeColor.r, _listeningRangeColor.g, _listeningRangeColor.b, 0.1f);
|
||||
Gizmos.DrawSphere(listenable.transform.position, 0.2f);
|
||||
}
|
||||
|
||||
if (_listeningHandler != null && _listeningHandler.IsListening)
|
||||
{
|
||||
Gizmos.color = _activeTargetColor;
|
||||
}
|
||||
}
|
||||
|
||||
[ContextMenu("List All Listenables")]
|
||||
private void ListAllListenables()
|
||||
{
|
||||
RefreshListenablesList();
|
||||
|
||||
Debug.Log("=== Audio Listenables in Scene ===");
|
||||
foreach (AudioListenable listenable in _allListenables)
|
||||
{
|
||||
if (listenable != null)
|
||||
Debug.Log($"- {listenable.gameObject.name} (Type: {listenable.GetType().Name})");
|
||||
}
|
||||
}
|
||||
|
||||
[ContextMenu("Enable All Listenables")]
|
||||
private void EnableAllListenables()
|
||||
{
|
||||
RefreshListenablesList();
|
||||
foreach (AudioListenable listenable in _allListenables)
|
||||
{
|
||||
if (listenable != null)
|
||||
listenable.enabled = true;
|
||||
}
|
||||
Debug.Log("Enabled all AudioListenable components");
|
||||
}
|
||||
|
||||
[ContextMenu("Disable All Listenables")]
|
||||
private void DisableAllListenables()
|
||||
{
|
||||
RefreshListenablesList();
|
||||
foreach (AudioListenable listenable in _allListenables)
|
||||
{
|
||||
if (listenable != null)
|
||||
listenable.enabled = false;
|
||||
}
|
||||
Debug.Log("Disabled all AudioListenable components");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7093688fd39800645bbe00b6d9a3f27b
|
||||
@@ -0,0 +1,254 @@
|
||||
# Système d'Écoute Diapason - Checklist d'Implémentation
|
||||
|
||||
## ✅ Scripts Créés (Compilés sans erreur)
|
||||
|
||||
### Core System
|
||||
- [x] **DiapasonListeningHandler.cs** - Gestionnaire principal du mode écoute
|
||||
- [x] **AudioListenable.cs** - Composant pour objets écoutables
|
||||
- [x] **ListeningVignetteEffect.cs** - Effet visuel de vignette
|
||||
- [x] **AudioEmitterData.cs** - ScriptableObject pour configuration
|
||||
|
||||
### Extensions
|
||||
- [x] **AudioListenableEvent.cs** - Événements UnityEvent pour objets écoutables
|
||||
- [x] **ThroughWallListener.cs** - Détection d'objets derrière les murs
|
||||
- [x] **DiapasonDebugger.cs** - Outils de debugging
|
||||
|
||||
### Editor Tools
|
||||
- [x] **AudioListenableEditor.cs** - Custom Inspector avec Quick Setup
|
||||
- [x] **AudioListenableBatchSetup.cs** - Configuration en masse via EditorWindow
|
||||
|
||||
### Data
|
||||
- [x] **9 Présets AudioEmitterData** créés dans `/Assets/Unheimlich_POC/Datas/AudioEmitters/`:
|
||||
- WallEmitter.asset
|
||||
- MetalEmitter.asset
|
||||
- WoodEmitter.asset
|
||||
- GlassEmitter.asset
|
||||
- StoneEmitter.asset
|
||||
- MechanicalEmitter.asset
|
||||
- ElectricalEmitter.asset
|
||||
- WaterEmitter.asset
|
||||
- OrganicEmitter.asset
|
||||
|
||||
### Documentation
|
||||
- [x] **README.md** - Architecture et documentation technique
|
||||
- [x] **Page Système d'Écoute - Diapason** - Guide complet utilisateur
|
||||
|
||||
## ⚠️ Configuration Manuelle Requise
|
||||
|
||||
### 1. Input System Setup
|
||||
**Fichier**: `/Assets/Unheimlich_POC/Inputs/PlayerController.inputactions`
|
||||
|
||||
**Actions à faire**:
|
||||
1. Ouvrir le fichier dans l'Input System window
|
||||
2. Dans l'Action Map "Player", ajouter une nouvelle action:
|
||||
- Nom: `Diapason`
|
||||
- Action Type: `Button`
|
||||
- Control Type: `Button`
|
||||
|
||||
3. Ajouter les bindings:
|
||||
```
|
||||
PS5 Controller: Triangle (Button South)
|
||||
Xbox Controller: Y (Button North)
|
||||
Keyboard: T (ou touche de votre choix)
|
||||
```
|
||||
|
||||
4. Sauvegarder et générer la classe C#
|
||||
|
||||
### 2. PlayerInputManager Configuration
|
||||
**GameObject**: `/GAMEPLAY/Player`
|
||||
|
||||
**Dans l'Inspector du PlayerInputManager**:
|
||||
1. Trouver le champ `Diapason Action`
|
||||
2. Assigner l'action "Diapason" depuis le PlayerController.inputactions
|
||||
3. Vérifier que la callback `OnDiapason` est bien configurée
|
||||
|
||||
### 3. DiapasonListeningHandler Setup
|
||||
**GameObject**: `/GAMEPLAY/Player`
|
||||
|
||||
**Actions**:
|
||||
1. Ajouter le composant `DiapasonListeningHandler`
|
||||
2. Assigner les références:
|
||||
- **Diapason Object**: Glisser `/GAMEPLAY/Player/Diapason`
|
||||
- **Diapason Animator**: Glisser l'Animator du Diapason
|
||||
- **Player Camera**: Glisser `/GAMEPLAY/Player/CameraPivot/Main Camera`
|
||||
- **Diapason Action**: Assigner l'InputActionReference vers l'action Diapason
|
||||
|
||||
3. Configurer les paramètres:
|
||||
```
|
||||
Listening Range: 5.0
|
||||
Listenable Layers: Interactable (ou créer un layer "Listenable")
|
||||
Concentration Duration: 1.0
|
||||
Breath In Duration: 0.5
|
||||
Camera Pan Speed: 2.0
|
||||
Camera Pan Border Size: 0.1
|
||||
Max Camera Pan Angle: 15.0
|
||||
Vignette Intensity: 0.5
|
||||
Ambient Attenuation Amount: 0.3
|
||||
```
|
||||
|
||||
### 4. Animator du Diapason
|
||||
**GameObject**: `/GAMEPLAY/Player/Diapason`
|
||||
|
||||
**Parameters requis**:
|
||||
1. Ouvrir l'Animator Controller
|
||||
2. Ajouter les parameters:
|
||||
- `IsEquipped` (Bool)
|
||||
- `Tap` (Trigger)
|
||||
|
||||
3. Créer les animations:
|
||||
- **Idle**: Animation de repos (peut être vide)
|
||||
- **Tap**: Animation de frappe du diapason
|
||||
|
||||
4. Setup des transitions:
|
||||
- Any State → Tap (Condition: Trigger Tap)
|
||||
- Tap → Idle (Exit Time)
|
||||
|
||||
### 5. Audio Clips
|
||||
**À créer ou importer**:
|
||||
|
||||
1. **Breath In Sound** (_breathInClip):
|
||||
- Son d'inspiration profonde
|
||||
- Durée: ~0.5-1 seconde
|
||||
- Format: WAV ou MP3
|
||||
|
||||
2. **Diapason Tap Sound** (_diapasonTapClip):
|
||||
- Son métallique de diapason
|
||||
- Durée: ~0.3-0.5 seconde
|
||||
- Légère résonance
|
||||
|
||||
**Où les assigner**:
|
||||
- Dans le composant `DiapasonListeningHandler` sur le Player
|
||||
|
||||
### 6. Layer Configuration (Optionnel mais Recommandé)
|
||||
**Project Settings → Tags and Layers**
|
||||
|
||||
1. Créer un nouveau layer: `Listenable`
|
||||
2. Dans `DiapasonListeningHandler`, assigner ce layer
|
||||
3. Tous les objets avec `AudioListenable` devraient utiliser ce layer
|
||||
|
||||
Ou réutiliser le layer existant `Interactable`.
|
||||
|
||||
### 7. Vignette Effect (Optionnel)
|
||||
**GameObject**: `/ENVIRONMENT/Global Volume` (ou créer)
|
||||
|
||||
**Si vous voulez l'effet de vignette**:
|
||||
1. S'assurer qu'un Global Volume existe avec URP
|
||||
2. Ajouter le composant `ListeningVignetteEffect` au Player
|
||||
3. Assigner le Global Volume
|
||||
4. Dans le DiapasonListeningHandler, assigner la référence `Vignette Effect`
|
||||
|
||||
## 🎯 Test Initial
|
||||
|
||||
### Test Rapide du Système
|
||||
|
||||
1. **Enter Play Mode**
|
||||
2. Appuyer sur **T** (ou Triangle/Y sur manette)
|
||||
3. **Observer**:
|
||||
- Phase de concentration (~1 seconde)
|
||||
- Curseur apparaît
|
||||
- Le diapason devient visible
|
||||
4. **Pointer** vers un objet avec AudioListenable
|
||||
5. **Clic gauche** pour taper
|
||||
6. **Écouter** le son généré
|
||||
7. **Appuyer à nouveau sur T** pour sortir
|
||||
|
||||
### Ajout d'Objets Écoutables pour Test
|
||||
|
||||
**Méthode Rapide**:
|
||||
1. Sélectionner des GameObjects dans la scène (murs, portes, etc.)
|
||||
2. Menu: `Tools → Unheimlich → Audio Listenable Batch Setup`
|
||||
3. Choisir le type (ex: Wall)
|
||||
4. Cliquer "Add to Selected Objects"
|
||||
5. S'assurer que les objets ont un Collider
|
||||
6. Assigner le layer "Listenable" ou "Interactable"
|
||||
|
||||
**Ou utiliser les presets**:
|
||||
- "Setup All Walls in Scene" - Configure tous les objets contenant "wall"
|
||||
- "Setup All Doors in Scene" - Configure tous les objets contenant "door"
|
||||
|
||||
## 📋 Vérification Post-Setup
|
||||
|
||||
### Checklist Finale
|
||||
|
||||
- [ ] L'action "Diapason" existe dans PlayerController.inputactions
|
||||
- [ ] DiapasonAction est assigné dans PlayerInputManager
|
||||
- [ ] DiapasonListeningHandler est sur le Player avec toutes les références
|
||||
- [ ] L'Animator du diapason a les parameters IsEquipped et Tap
|
||||
- [ ] Au moins un objet dans la scène a AudioListenable
|
||||
- [ ] Les objets écoutables ont un Collider
|
||||
- [ ] Les objets écoutables sont sur le bon layer
|
||||
- [ ] Les AudioClips sont assignés (ou commentés pour test)
|
||||
- [ ] Aucune erreur de compilation
|
||||
|
||||
### Test Avancé
|
||||
|
||||
1. **Test Audio Procédural**: Vérifier différents types de matériaux
|
||||
2. **Test Vibrations**: Tester avec une manette connectée
|
||||
3. **Test Distance**: S'éloigner pour vérifier l'atténuation
|
||||
4. **Test Camera Pan**: Bouger le curseur sur les bords
|
||||
5. **Test Through Wall**: Si implémenté, tester ThroughWallListener
|
||||
|
||||
## 🛠️ Outils Disponibles
|
||||
|
||||
### Menu Tools
|
||||
`Tools → Unheimlich → Audio Listenable Batch Setup`
|
||||
- Configuration en masse d'objets écoutables
|
||||
- Presets automatiques par nom
|
||||
|
||||
### Custom Inspector
|
||||
Sur un GameObject avec `AudioListenable`:
|
||||
- Boutons Quick Setup par type de matériau
|
||||
- Test en Play Mode
|
||||
|
||||
### Debug
|
||||
Ajouter `DiapasonDebugger` au Player ou un GameObject de scene:
|
||||
- Affichage info système en temps réel
|
||||
- Liste des objets écoutables
|
||||
- Gizmos visuels
|
||||
- Context menu pour enable/disable all
|
||||
|
||||
## 📖 Documentation
|
||||
|
||||
### Guides Disponibles
|
||||
- **Système d'Écoute - Diapason** (Page): Guide complet utilisateur
|
||||
- **README.md** (Scripts/Audio): Architecture technique
|
||||
- **IMPLEMENTATION_CHECKLIST.md** (ce fichier): Checklist de setup
|
||||
|
||||
### Exemples de Code
|
||||
Voir les scripts d'exemple:
|
||||
- `AudioListenableEvent.cs` - Pour ajouter des événements
|
||||
- `ThroughWallListener.cs` - Pour écouter à travers les murs
|
||||
|
||||
## ⚡ Quick Start (Minimum Viable)
|
||||
|
||||
**Pour tester rapidement sans tout configurer**:
|
||||
|
||||
1. Ajouter `DiapasonListeningHandler` au Player
|
||||
2. Créer une action Input "Diapason" binding sur T
|
||||
3. Assigner les 3 références principales (Diapason, Animator, Camera)
|
||||
4. Ajouter `AudioListenable` sur quelques objets
|
||||
5. Play et appuyer sur T
|
||||
|
||||
**Note**: Sans les AudioClips, le système fonctionne mais sans les sons de respiration et de tap.
|
||||
|
||||
## 🐛 Troubleshooting
|
||||
|
||||
**Rien ne se passe quand j'appuie sur T**:
|
||||
- Vérifier l'action Input existe et est assignée
|
||||
- Vérifier que le Player n'est pas dans un autre état qui bloque les inputs
|
||||
- Regarder la Console pour des erreurs
|
||||
|
||||
**Pas de son lors du tap**:
|
||||
- Vérifier que l'objet ciblé a AudioListenable
|
||||
- Vérifier le layer de l'objet
|
||||
- Vérifier la distance (max 5m par défaut)
|
||||
- Vérifier que l'objet a un Collider
|
||||
|
||||
**La caméra ne bouge pas**:
|
||||
- Vérifier Camera Pan Border Size > 0
|
||||
- Vérifier que Player Camera est assigné
|
||||
- Bouger le curseur tout au bord de l'écran
|
||||
|
||||
## ✨ C'est Prêt!
|
||||
|
||||
Le système est entièrement implémenté et prêt à l'emploi. Il suffit de suivre les étapes de configuration manuelle ci-dessus et vous pourrez commencer à tester immédiatement!
|
||||
@@ -0,0 +1,257 @@
|
||||
# Audio Listening System - Architecture
|
||||
|
||||
## Vue d'ensemble
|
||||
|
||||
Le système d'écoute permet au joueur d'utiliser un diapason pour "écouter" les objets et découvrir des informations cachées à travers les sons et vibrations procéduraux.
|
||||
|
||||
## Structure des Fichiers
|
||||
|
||||
### Core Scripts
|
||||
|
||||
**AudioListenable.cs**
|
||||
- Composant principal pour les objets écoutables
|
||||
- Génération audio procédurale basée sur le type de matériau
|
||||
- Gestion des vibrations de manette
|
||||
- Support pour audio statique custom
|
||||
|
||||
**DiapasonListeningHandler.cs**
|
||||
- Gestionnaire central du mode écoute
|
||||
- Gère l'état de concentration du joueur
|
||||
- Contrôle la caméra avec pan et curseur
|
||||
- Raycast vers les objets écoutables
|
||||
- Atténuation sonore ambiante
|
||||
|
||||
**ListeningVignetteEffect.cs**
|
||||
- Effet visuel de vignette pour l'état d'écoute
|
||||
- S'intègre avec URP Volume system
|
||||
- Transition smooth entre états
|
||||
|
||||
### Data Scripts
|
||||
|
||||
**AudioEmitterData.cs**
|
||||
- ScriptableObject pour configurer les types d'émetteurs
|
||||
- Paramètres procéduraux (fréquences, harmoniques)
|
||||
- Settings de vibration
|
||||
- Courbes d'atténuation
|
||||
|
||||
### Extended Features
|
||||
|
||||
**AudioListenableEvent.cs**
|
||||
- Ajoute des événements Unity aux objets écoutables
|
||||
- Support pour trigger une seule fois
|
||||
- Événements: OnListeningStarted, OnListeningStopped, OnFirstListen
|
||||
|
||||
**ThroughWallListener.cs**
|
||||
- Permet de détecter des objets derrière un mur
|
||||
- Feedback audio différent selon ce qui est détecté
|
||||
- Peut highlight des objets importants
|
||||
|
||||
**DiapasonDebugger.cs**
|
||||
- Outil de debugging pour le système
|
||||
- Affiche l'état du système en temps réel
|
||||
- Liste tous les objets écoutables
|
||||
- Gizmos visuels dans la Scene
|
||||
|
||||
### Editor Scripts
|
||||
|
||||
**AudioListenableEditor.cs**
|
||||
- Custom Inspector pour AudioListenable
|
||||
- Boutons Quick Setup par type de matériau
|
||||
- Test en Play Mode
|
||||
|
||||
**AudioListenableBatchSetup.cs**
|
||||
- EditorWindow pour configuration en masse
|
||||
- Setup par sélection
|
||||
- Setup par nom d'objet
|
||||
- Presets automatiques (walls, doors, etc.)
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
Player
|
||||
├── DiapasonListeningHandler (Manager)
|
||||
│ ├── Input Handling
|
||||
│ ├── State Management (Concentrating/Listening)
|
||||
│ ├── Camera Control
|
||||
│ └── Raycast Detection
|
||||
│
|
||||
├── ListeningVignetteEffect (Visual)
|
||||
│ └── URP Volume Integration
|
||||
│
|
||||
└── Audio Source (Player sounds)
|
||||
|
||||
Scene Objects
|
||||
├── AudioListenable (Core)
|
||||
│ ├── Procedural Audio Generation
|
||||
│ ├── Vibration System
|
||||
│ └── Distance Attenuation
|
||||
│
|
||||
├── AudioListenableEvent (Optional)
|
||||
│ └── UnityEvent Triggers
|
||||
│
|
||||
└── ThroughWallListener (Optional)
|
||||
└── Behind-Wall Detection
|
||||
```
|
||||
|
||||
## Workflow de Fonctionnement
|
||||
|
||||
1. **Activation** (Triangle/Y)
|
||||
- DiapasonListeningHandler.StartListeningMode()
|
||||
- Désactive les inputs de mouvement
|
||||
- Active l'objet diapason
|
||||
|
||||
2. **Phase de Concentration**
|
||||
- Joue le son de respiration
|
||||
- Attend la durée de concentration
|
||||
- Prépare le mode écoute
|
||||
|
||||
3. **Mode Écoute Actif**
|
||||
- Curseur souris visible
|
||||
- Camera pan sur les bords
|
||||
- Raycast continu vers objets
|
||||
- Vignette activée
|
||||
- Atténuation audio ambiante
|
||||
|
||||
4. **Interaction avec Objet**
|
||||
- Clic gauche sur objet écoutable
|
||||
- Animation du diapason (Tap trigger)
|
||||
- AudioListenable.StartListening()
|
||||
- Génération du son procédural
|
||||
- Activation des vibrations
|
||||
|
||||
5. **Désactivation** (Triangle/Y à nouveau)
|
||||
- Arrêt de l'écoute
|
||||
- Restauration des inputs
|
||||
- Désactivation vignette
|
||||
- Restauration audio ambiant
|
||||
|
||||
## Types d'Émetteurs
|
||||
|
||||
| Type | Fréquence | Usage |
|
||||
|------|-----------|-------|
|
||||
| Generic | 440 Hz | Objets par défaut |
|
||||
| Wall | 200 Hz | Murs, surfaces plates |
|
||||
| Wood | 300 Hz | Portes, meubles en bois |
|
||||
| Metal | 800 Hz | Objets métalliques |
|
||||
| Glass | 1200 Hz | Vitres, cristal |
|
||||
| Water | 220 Hz | Eau, liquides |
|
||||
| Stone | 250 Hz | Pierre, roche |
|
||||
| Mechanical | 500 Hz | Machines, mécanismes |
|
||||
| Electrical | 440 Hz | Équipements électriques |
|
||||
| Organic | 350 Hz | Matériaux vivants |
|
||||
|
||||
## Génération Audio Procédurale
|
||||
|
||||
### Algorithme de Base
|
||||
|
||||
```csharp
|
||||
// Pour chaque sample
|
||||
float sample = 0;
|
||||
|
||||
// Ajoute les harmoniques
|
||||
for (int h = 0; h < harmonicCount; h++)
|
||||
{
|
||||
float harmFreq = baseFreq * harmonicMultipliers[h];
|
||||
float harmAmp = harmonicAmplitudes[h];
|
||||
sample += Sin(2π * harmFreq * time) * harmAmp;
|
||||
}
|
||||
|
||||
// Ajoute le bruit
|
||||
sample += (Random() - 0.5) * noiseAmount;
|
||||
|
||||
// Applique l'envelope
|
||||
sample *= Sin(π * time / duration);
|
||||
```
|
||||
|
||||
### Caractéristiques par Type
|
||||
|
||||
**Metal**: Multiples harmoniques (2.1x, 3.8x, 5.2x) pour son métallique
|
||||
**Wood**: Peu d'harmoniques + bruit pour texture
|
||||
**Glass**: Harmoniques aiguës (1.5x, 2.7x, 4.2x)
|
||||
**Water**: Bruit dominant avec légère oscillation
|
||||
**Stone**: Bruit granuleux avec harmonique grave
|
||||
|
||||
## Système de Vibrations
|
||||
|
||||
### Intensité Basée sur Distance
|
||||
|
||||
```csharp
|
||||
intensity = Lerp(minIntensity, maxIntensity, 1 - distance/maxDistance)
|
||||
```
|
||||
|
||||
### Pattern de Vibration
|
||||
|
||||
```csharp
|
||||
pattern = |Sin(time * frequency)|
|
||||
finalIntensity = intensity * pattern
|
||||
```
|
||||
|
||||
### Contrôles Gamepad
|
||||
|
||||
- Utilise `Gamepad.current.SetMotorSpeeds(low, high)`
|
||||
- Arrêt automatique à la fin de l'écoute
|
||||
- Arrêt au OnDisable du composant
|
||||
|
||||
## Intégration avec d'Autres Systèmes
|
||||
|
||||
### Input System
|
||||
- Utilise PlayerInputManager existant
|
||||
- Action "Diapason" ajoutée
|
||||
- Compatible avec système de toggle input
|
||||
|
||||
### Audio System
|
||||
- Un AudioSource sur le joueur pour sons système
|
||||
- AudioSource sur chaque AudioListenable
|
||||
- Spatial audio 3D
|
||||
- Custom attenuation curves
|
||||
|
||||
### Camera System
|
||||
- Contrôle temporaire de la caméra
|
||||
- Pan basé sur viewport position
|
||||
- Retour à l'état normal à la sortie
|
||||
|
||||
## Performance
|
||||
|
||||
### Optimisations
|
||||
- Génération audio on-demand (pas de pré-calcul)
|
||||
- AudioClips courts (0.5-2s)
|
||||
- Un seul objet écouté à la fois
|
||||
- Raycast avec LayerMask
|
||||
- Pas de Update() quand inactif
|
||||
|
||||
### Considérations
|
||||
- Génération procédurale légère
|
||||
- Vibrations: vérification gamepad chaque frame
|
||||
- Distance checks optimisés avec DistanceSqr
|
||||
|
||||
## Extension Future
|
||||
|
||||
### AudioEmitterData Integration
|
||||
Actuellement les presets existent mais ne sont pas utilisés par AudioListenable. Pour les intégrer:
|
||||
|
||||
1. Ajouter champ `AudioEmitterData` dans AudioListenable
|
||||
2. Loader les paramètres depuis le ScriptableObject
|
||||
3. Permettre override des paramètres individuels
|
||||
|
||||
### Visualisation Sonore
|
||||
- Particle systems pour ondes sonores
|
||||
- Shader effects sur objets écoutés
|
||||
- Indicateurs visuels pour objets importants
|
||||
|
||||
### Audio Avancé
|
||||
- Réverbération basée sur l'environnement
|
||||
- Occlusion sonore
|
||||
- Support multi-canal
|
||||
|
||||
## Troubleshooting Courant
|
||||
|
||||
**Pas de son**: Vérifier AudioSource, layer, distance
|
||||
**Pas de vibration**: Vérifier gamepad connecté
|
||||
**Camera ne bouge pas**: Vérifier border size, références camera
|
||||
**Input ne répond pas**: Vérifier action assignée dans inputactions
|
||||
|
||||
## Références
|
||||
|
||||
- Unity Input System: com.unity.inputsystem 1.17.0
|
||||
- URP: com.unity.render-pipelines.universal 17.3.0
|
||||
- Unity 6000.3 APIs
|
||||
@@ -0,0 +1,102 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Unheimlich.Audio
|
||||
{
|
||||
[RequireComponent(typeof(AudioListenable))]
|
||||
public class ThroughWallListener : MonoBehaviour
|
||||
{
|
||||
[Header("Behind Wall Detection")]
|
||||
[SerializeField] private LayerMask _detectionLayers;
|
||||
[SerializeField] private float _detectionDistance = 2f;
|
||||
[SerializeField] private float _detectionRadius = 1f;
|
||||
|
||||
[Header("Audio Feedback")]
|
||||
[SerializeField] private AudioClip _nothingBehindClip;
|
||||
[SerializeField] private AudioClip _somethingBehindClip;
|
||||
[SerializeField] private AudioClip _importantObjectClip;
|
||||
[SerializeField] private string _importantObjectTag = "Important";
|
||||
|
||||
[Header("Visual Feedback")]
|
||||
[SerializeField] private GameObject _highlightEffectPrefab;
|
||||
[SerializeField] private float _highlightDuration = 3f;
|
||||
|
||||
private AudioSource _audioSource;
|
||||
private AudioListenable _listenable;
|
||||
private GameObject _currentHighlight;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_listenable = GetComponent<AudioListenable>();
|
||||
_audioSource = GetComponent<AudioSource>();
|
||||
|
||||
if (_audioSource == null)
|
||||
_audioSource = gameObject.AddComponent<AudioSource>();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
}
|
||||
|
||||
public void OnWallListened()
|
||||
{
|
||||
Vector3 checkPosition = transform.position + transform.forward * (_detectionDistance * 0.5f);
|
||||
|
||||
Collider[] hitColliders = Physics.OverlapSphere(checkPosition, _detectionRadius, _detectionLayers);
|
||||
|
||||
if (hitColliders.Length > 0)
|
||||
{
|
||||
bool foundImportant = false;
|
||||
|
||||
foreach (Collider col in hitColliders)
|
||||
{
|
||||
if (col.CompareTag(_importantObjectTag))
|
||||
{
|
||||
foundImportant = true;
|
||||
PlayFeedbackSound(_importantObjectClip);
|
||||
ShowHighlight(col.transform.position);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!foundImportant)
|
||||
{
|
||||
PlayFeedbackSound(_somethingBehindClip);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PlayFeedbackSound(_nothingBehindClip);
|
||||
}
|
||||
}
|
||||
|
||||
private void PlayFeedbackSound(AudioClip clip)
|
||||
{
|
||||
if (clip != null && _audioSource != null)
|
||||
{
|
||||
_audioSource.PlayOneShot(clip);
|
||||
}
|
||||
}
|
||||
|
||||
private void ShowHighlight(Vector3 position)
|
||||
{
|
||||
if (_highlightEffectPrefab != null)
|
||||
{
|
||||
if (_currentHighlight != null)
|
||||
Destroy(_currentHighlight);
|
||||
|
||||
_currentHighlight = Instantiate(_highlightEffectPrefab, position, Quaternion.identity);
|
||||
Destroy(_currentHighlight, _highlightDuration);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDrawGizmosSelected()
|
||||
{
|
||||
Gizmos.color = Color.yellow;
|
||||
Vector3 checkPosition = transform.position + transform.forward * (_detectionDistance * 0.5f);
|
||||
Gizmos.DrawWireSphere(checkPosition, _detectionRadius);
|
||||
|
||||
Gizmos.color = Color.blue;
|
||||
Gizmos.DrawRay(transform.position, transform.forward * _detectionDistance);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3fad34f7be8a64242984b14410478690
|
||||
@@ -0,0 +1,38 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Unheimlich.Audio
|
||||
{
|
||||
[CreateAssetMenu(fileName = "AudioEmitterData", menuName = "Unheimlich/Audio/Audio Emitter Data")]
|
||||
public class AudioEmitterData : ScriptableObject
|
||||
{
|
||||
[Header("Emitter Info")]
|
||||
public AudioEmitterType EmitterType = AudioEmitterType.Generic;
|
||||
public string DisplayName = "Generic";
|
||||
|
||||
[Header("Procedural Audio Settings")]
|
||||
public float BaseFrequency = 440f;
|
||||
public float FrequencyVariation = 50f;
|
||||
public float VolumeMin = 0.3f;
|
||||
public float VolumeMax = 0.7f;
|
||||
public float DurationMin = 0.5f;
|
||||
public float DurationMax = 2f;
|
||||
|
||||
[Header("Harmonics (for complex sounds)")]
|
||||
public float[] HarmonicMultipliers = { 1f };
|
||||
public float[] HarmonicAmplitudes = { 1f };
|
||||
|
||||
[Header("Noise Settings")]
|
||||
[Range(0f, 1f)]
|
||||
public float NoiseAmount = 0f;
|
||||
|
||||
[Header("Vibration Settings")]
|
||||
public bool EnableVibration = true;
|
||||
public float VibrationIntensityMin = 0.1f;
|
||||
public float VibrationIntensityMax = 0.5f;
|
||||
public float VibrationFrequency = 10f;
|
||||
|
||||
[Header("Distance Settings")]
|
||||
public float MaxDistance = 10f;
|
||||
public AnimationCurve DistanceAttenuation = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c20752cb7065e844aaaedf606c4df2db
|
||||
@@ -0,0 +1,181 @@
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
using Unheimlich.Audio;
|
||||
|
||||
namespace Unheimlich.Editor
|
||||
{
|
||||
public class AudioListenableBatchSetup : EditorWindow
|
||||
{
|
||||
private AudioEmitterType _selectedType = AudioEmitterType.Wall;
|
||||
private LayerMask _targetLayer;
|
||||
private bool _overwriteExisting = false;
|
||||
|
||||
[MenuItem("Tools/Unheimlich/Audio Listenable Batch Setup")]
|
||||
public static void ShowWindow()
|
||||
{
|
||||
GetWindow<AudioListenableBatchSetup>("Audio Batch Setup");
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
GUILayout.Label("Batch Audio Listenable Setup", EditorStyles.boldLabel);
|
||||
EditorGUILayout.Space(10);
|
||||
|
||||
EditorGUILayout.HelpBox(
|
||||
"This tool adds AudioListenable components to all selected GameObjects in the scene.",
|
||||
MessageType.Info
|
||||
);
|
||||
|
||||
EditorGUILayout.Space(5);
|
||||
|
||||
_selectedType = (AudioEmitterType)EditorGUILayout.EnumPopup("Emitter Type", _selectedType);
|
||||
_overwriteExisting = EditorGUILayout.Toggle("Overwrite Existing", _overwriteExisting);
|
||||
|
||||
EditorGUILayout.Space(10);
|
||||
|
||||
if (GUILayout.Button("Add to Selected Objects", GUILayout.Height(30)))
|
||||
{
|
||||
AddToSelectedObjects();
|
||||
}
|
||||
|
||||
EditorGUILayout.Space(5);
|
||||
|
||||
EditorGUILayout.LabelField("Quick Presets", EditorStyles.boldLabel);
|
||||
|
||||
if (GUILayout.Button("Setup All Walls in Scene"))
|
||||
{
|
||||
SetupObjectsByName("wall", AudioEmitterType.Wall);
|
||||
}
|
||||
|
||||
if (GUILayout.Button("Setup All Doors in Scene"))
|
||||
{
|
||||
SetupObjectsByName("door", AudioEmitterType.Wood);
|
||||
}
|
||||
}
|
||||
|
||||
private void AddToSelectedObjects()
|
||||
{
|
||||
GameObject[] selectedObjects = Selection.gameObjects;
|
||||
|
||||
if (selectedObjects.Length == 0)
|
||||
{
|
||||
EditorUtility.DisplayDialog("No Selection", "Please select at least one GameObject in the scene.", "OK");
|
||||
return;
|
||||
}
|
||||
|
||||
int addedCount = 0;
|
||||
int skippedCount = 0;
|
||||
|
||||
foreach (GameObject obj in selectedObjects)
|
||||
{
|
||||
AudioListenable existing = obj.GetComponent<AudioListenable>();
|
||||
|
||||
if (existing != null && !_overwriteExisting)
|
||||
{
|
||||
skippedCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (existing == null)
|
||||
{
|
||||
Undo.AddComponent<AudioListenable>(obj);
|
||||
existing = obj.GetComponent<AudioListenable>();
|
||||
}
|
||||
|
||||
ConfigureListenable(existing, _selectedType);
|
||||
addedCount++;
|
||||
}
|
||||
|
||||
EditorUtility.DisplayDialog(
|
||||
"Batch Setup Complete",
|
||||
$"Added/Updated: {addedCount}\nSkipped: {skippedCount}",
|
||||
"OK"
|
||||
);
|
||||
}
|
||||
|
||||
private void SetupObjectsByName(string nameContains, AudioEmitterType type)
|
||||
{
|
||||
GameObject[] allObjects = FindObjectsByType<GameObject>(FindObjectsSortMode.None);
|
||||
int count = 0;
|
||||
|
||||
foreach (GameObject obj in allObjects)
|
||||
{
|
||||
if (obj.name.ToLower().Contains(nameContains.ToLower()))
|
||||
{
|
||||
AudioListenable existing = obj.GetComponent<AudioListenable>();
|
||||
|
||||
if (existing == null)
|
||||
{
|
||||
Undo.AddComponent<AudioListenable>(obj);
|
||||
existing = obj.GetComponent<AudioListenable>();
|
||||
}
|
||||
|
||||
ConfigureListenable(existing, type);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
EditorUtility.DisplayDialog(
|
||||
"Setup Complete",
|
||||
$"Configured {count} objects containing '{nameContains}' as {type}",
|
||||
"OK"
|
||||
);
|
||||
}
|
||||
|
||||
private void ConfigureListenable(AudioListenable listenable, AudioEmitterType type)
|
||||
{
|
||||
SerializedObject so = new SerializedObject(listenable);
|
||||
|
||||
so.FindProperty("_emitterType").enumValueIndex = (int)type;
|
||||
so.FindProperty("_useProceduralAudio").boolValue = true;
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case AudioEmitterType.Wall:
|
||||
so.FindProperty("_baseFrequency").floatValue = 200f;
|
||||
so.FindProperty("_frequencyVariation").floatValue = 20f;
|
||||
so.FindProperty("_volumeMin").floatValue = 0.2f;
|
||||
so.FindProperty("_volumeMax").floatValue = 0.4f;
|
||||
break;
|
||||
|
||||
case AudioEmitterType.Metal:
|
||||
so.FindProperty("_baseFrequency").floatValue = 800f;
|
||||
so.FindProperty("_frequencyVariation").floatValue = 100f;
|
||||
so.FindProperty("_volumeMin").floatValue = 0.4f;
|
||||
so.FindProperty("_volumeMax").floatValue = 0.7f;
|
||||
break;
|
||||
|
||||
case AudioEmitterType.Wood:
|
||||
so.FindProperty("_baseFrequency").floatValue = 300f;
|
||||
so.FindProperty("_frequencyVariation").floatValue = 50f;
|
||||
so.FindProperty("_volumeMin").floatValue = 0.3f;
|
||||
so.FindProperty("_volumeMax").floatValue = 0.6f;
|
||||
break;
|
||||
|
||||
case AudioEmitterType.Glass:
|
||||
so.FindProperty("_baseFrequency").floatValue = 1200f;
|
||||
so.FindProperty("_frequencyVariation").floatValue = 150f;
|
||||
so.FindProperty("_volumeMin").floatValue = 0.3f;
|
||||
so.FindProperty("_volumeMax").floatValue = 0.6f;
|
||||
break;
|
||||
|
||||
case AudioEmitterType.Stone:
|
||||
so.FindProperty("_baseFrequency").floatValue = 250f;
|
||||
so.FindProperty("_frequencyVariation").floatValue = 30f;
|
||||
so.FindProperty("_volumeMin").floatValue = 0.3f;
|
||||
so.FindProperty("_volumeMax").floatValue = 0.5f;
|
||||
break;
|
||||
|
||||
case AudioEmitterType.Mechanical:
|
||||
so.FindProperty("_baseFrequency").floatValue = 500f;
|
||||
so.FindProperty("_frequencyVariation").floatValue = 80f;
|
||||
so.FindProperty("_volumeMin").floatValue = 0.4f;
|
||||
so.FindProperty("_volumeMax").floatValue = 0.7f;
|
||||
break;
|
||||
}
|
||||
|
||||
so.ApplyModifiedProperties();
|
||||
EditorUtility.SetDirty(listenable);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5d813501fc2b446419db87d892d79ce3
|
||||
@@ -0,0 +1,106 @@
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
using Unheimlich.Audio;
|
||||
|
||||
namespace Unheimlich.Editor
|
||||
{
|
||||
[CustomEditor(typeof(AudioListenable))]
|
||||
public class AudioListenableEditor : UnityEditor.Editor
|
||||
{
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
DrawDefaultInspector();
|
||||
|
||||
AudioListenable listenable = (AudioListenable)target;
|
||||
|
||||
EditorGUILayout.Space(10);
|
||||
EditorGUILayout.LabelField("Quick Setup", EditorStyles.boldLabel);
|
||||
|
||||
if (GUILayout.Button("Setup as Wall"))
|
||||
SetupAsType(listenable, AudioEmitterType.Wall, 200f, 20f, true);
|
||||
|
||||
if (GUILayout.Button("Setup as Metal Object"))
|
||||
SetupAsType(listenable, AudioEmitterType.Metal, 800f, 100f, false);
|
||||
|
||||
if (GUILayout.Button("Setup as Wood Object"))
|
||||
SetupAsType(listenable, AudioEmitterType.Wood, 300f, 50f, false);
|
||||
|
||||
if (GUILayout.Button("Setup as Glass"))
|
||||
SetupAsType(listenable, AudioEmitterType.Glass, 1200f, 150f, false);
|
||||
|
||||
if (GUILayout.Button("Setup as Mechanical"))
|
||||
SetupAsType(listenable, AudioEmitterType.Mechanical, 500f, 80f, false);
|
||||
|
||||
EditorGUILayout.Space(5);
|
||||
|
||||
if (GUILayout.Button("Test Sound (Play Mode Only)", GUILayout.Height(30)))
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
listenable.StartListening(Camera.main != null ? Camera.main.transform.position : Vector3.zero);
|
||||
}
|
||||
else
|
||||
{
|
||||
EditorGUILayout.HelpBox("Enter Play Mode to test sounds", MessageType.Info);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetupAsType(AudioListenable listenable, AudioEmitterType type, float baseFreq, float freqVar, bool isGeneric)
|
||||
{
|
||||
SerializedObject so = new SerializedObject(listenable);
|
||||
|
||||
so.FindProperty("_emitterType").enumValueIndex = (int)type;
|
||||
so.FindProperty("_useProceduralAudio").boolValue = true;
|
||||
so.FindProperty("_baseFrequency").floatValue = baseFreq;
|
||||
so.FindProperty("_frequencyVariation").floatValue = freqVar;
|
||||
|
||||
if (isGeneric)
|
||||
{
|
||||
so.FindProperty("_volumeMin").floatValue = 0.2f;
|
||||
so.FindProperty("_volumeMax").floatValue = 0.4f;
|
||||
}
|
||||
|
||||
so.ApplyModifiedProperties();
|
||||
EditorUtility.SetDirty(listenable);
|
||||
}
|
||||
}
|
||||
|
||||
[CanEditMultipleObjects]
|
||||
[CustomEditor(typeof(Transform))]
|
||||
public class TransformEditorExtension : UnityEditor.Editor
|
||||
{
|
||||
private UnityEditor.Editor defaultEditor;
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
defaultEditor = CreateEditor(targets, System.Type.GetType("UnityEditor.TransformInspector, UnityEditor"));
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
if (defaultEditor != null)
|
||||
DestroyImmediate(defaultEditor);
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
if (defaultEditor != null)
|
||||
defaultEditor.OnInspectorGUI();
|
||||
|
||||
EditorGUILayout.Space(10);
|
||||
|
||||
if (targets.Length == 1)
|
||||
{
|
||||
Transform t = (Transform)target;
|
||||
if (t.GetComponent<AudioListenable>() == null)
|
||||
{
|
||||
if (GUILayout.Button("Add Audio Listenable", GUILayout.Height(25)))
|
||||
{
|
||||
Undo.AddComponent<AudioListenable>(t.gameObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b606ceac9567f9746b716e63b0e644ee
|
||||
+284
@@ -0,0 +1,284 @@
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
using Unheimlich.Audio;
|
||||
using InputManager = Unheimlich.Managers.PlayerInputManager;
|
||||
|
||||
namespace Unheimlich.Gameplay.Player
|
||||
{
|
||||
public class DiapasonListeningHandler : MonoBehaviour
|
||||
{
|
||||
public static DiapasonListeningHandler Instance { get; private set; }
|
||||
|
||||
[Header("References")]
|
||||
[SerializeField] private GameObject _diapasonObject;
|
||||
[SerializeField] private Animator _diapasonAnimator;
|
||||
[SerializeField] private Camera _playerCamera;
|
||||
[SerializeField] private Transform _cursorTransform;
|
||||
|
||||
[Header("Listening Settings")]
|
||||
[SerializeField] private float _listeningRange = 5f;
|
||||
[SerializeField] private LayerMask _listenableLayers;
|
||||
[SerializeField] private float _concentrationDuration = 1f;
|
||||
[SerializeField] private float _breathInDuration = 0.5f;
|
||||
|
||||
[Header("Camera Settings")]
|
||||
[SerializeField] private float _cameraPanSpeed = 2f;
|
||||
[SerializeField] private float _cameraPanBorderSize = 0.1f;
|
||||
[SerializeField] private float _maxCameraPanAngle = 15f;
|
||||
|
||||
[Header("Visual Feedback")]
|
||||
[SerializeField] private float _vignetteIntensity = 0.5f;
|
||||
[SerializeField] private ListeningVignetteEffect _vignetteEffect;
|
||||
|
||||
[Header("Audio")]
|
||||
[SerializeField] private AudioClip _breathInClip;
|
||||
[SerializeField] private AudioClip _diapasonTapClip;
|
||||
[SerializeField] private float _ambientAttenuationAmount = 0.3f;
|
||||
|
||||
[Header("Input Action")]
|
||||
[SerializeField] private InputActionReference _diapasonAction;
|
||||
|
||||
public bool IsListening { get; private set; }
|
||||
public bool IsConcentrating { get; private set; }
|
||||
|
||||
private AudioListenable _currentTargetEmitter;
|
||||
private AudioSource _playerAudioSource;
|
||||
private Coroutine _listeningCoroutine;
|
||||
private Vector2 _originalCameraRotation;
|
||||
private float _originalAmbientVolume;
|
||||
|
||||
private const string ANIM_TRIGGER_TAP = "Tap";
|
||||
private const string ANIM_BOOL_EQUIPPED = "IsEquipped";
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (Instance != null && Instance != this)
|
||||
{
|
||||
Destroy(this);
|
||||
return;
|
||||
}
|
||||
Instance = this;
|
||||
|
||||
_playerAudioSource = GetComponent<AudioSource>();
|
||||
if (_playerAudioSource == null)
|
||||
_playerAudioSource = gameObject.AddComponent<AudioSource>();
|
||||
|
||||
if (_diapasonObject != null)
|
||||
_diapasonObject.SetActive(false);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (!InputManager.IsInputEnabled)
|
||||
return;
|
||||
|
||||
if (_diapasonAction != null && _diapasonAction.action.WasPressedThisFrame())
|
||||
{
|
||||
if (!IsListening && !IsConcentrating)
|
||||
StartListeningMode();
|
||||
else if (IsListening)
|
||||
StopListeningMode();
|
||||
}
|
||||
|
||||
if (IsListening)
|
||||
{
|
||||
UpdateCursorAndCameraPan();
|
||||
CheckForListenableObject();
|
||||
}
|
||||
}
|
||||
|
||||
private void StartListeningMode()
|
||||
{
|
||||
if (_listeningCoroutine != null)
|
||||
StopCoroutine(_listeningCoroutine);
|
||||
|
||||
_listeningCoroutine = StartCoroutine(ListeningSequence());
|
||||
}
|
||||
|
||||
private IEnumerator ListeningSequence()
|
||||
{
|
||||
IsConcentrating = true;
|
||||
InputManager.ToggleInput(false);
|
||||
|
||||
if (_diapasonObject != null)
|
||||
{
|
||||
_diapasonObject.SetActive(true);
|
||||
if (_diapasonAnimator != null)
|
||||
_diapasonAnimator.SetBool(ANIM_BOOL_EQUIPPED, true);
|
||||
}
|
||||
|
||||
PlayBreathIn();
|
||||
yield return new WaitForSeconds(_breathInDuration);
|
||||
|
||||
yield return new WaitForSeconds(_concentrationDuration - _breathInDuration);
|
||||
|
||||
IsConcentrating = false;
|
||||
IsListening = true;
|
||||
|
||||
_originalCameraRotation = new Vector2(transform.eulerAngles.y, _playerCamera.transform.eulerAngles.x);
|
||||
AttenuateAmbientSound(true);
|
||||
EnableVignette(true);
|
||||
|
||||
Cursor.lockState = CursorLockMode.Confined;
|
||||
Cursor.visible = true;
|
||||
}
|
||||
|
||||
private void StopListeningMode()
|
||||
{
|
||||
if (_listeningCoroutine != null)
|
||||
{
|
||||
StopCoroutine(_listeningCoroutine);
|
||||
_listeningCoroutine = null;
|
||||
}
|
||||
|
||||
IsListening = false;
|
||||
IsConcentrating = false;
|
||||
|
||||
if (_diapasonObject != null)
|
||||
{
|
||||
if (_diapasonAnimator != null)
|
||||
_diapasonAnimator.SetBool(ANIM_BOOL_EQUIPPED, false);
|
||||
_diapasonObject.SetActive(false);
|
||||
}
|
||||
|
||||
AttenuateAmbientSound(false);
|
||||
EnableVignette(false);
|
||||
|
||||
Cursor.lockState = CursorLockMode.Locked;
|
||||
Cursor.visible = false;
|
||||
|
||||
InputManager.ToggleInput(true);
|
||||
|
||||
if (_currentTargetEmitter != null)
|
||||
{
|
||||
_currentTargetEmitter.StopListening();
|
||||
_currentTargetEmitter = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateCursorAndCameraPan()
|
||||
{
|
||||
if (_playerCamera == null)
|
||||
return;
|
||||
|
||||
Vector2 viewportPos = _playerCamera.ScreenToViewportPoint(Mouse.current.position.ReadValue());
|
||||
|
||||
float panX = 0f;
|
||||
float panY = 0f;
|
||||
|
||||
if (viewportPos.x < _cameraPanBorderSize)
|
||||
panX = -1f;
|
||||
else if (viewportPos.x > 1f - _cameraPanBorderSize)
|
||||
panX = 1f;
|
||||
|
||||
if (viewportPos.y < _cameraPanBorderSize)
|
||||
panY = -1f;
|
||||
else if (viewportPos.y > 1f - _cameraPanBorderSize)
|
||||
panY = 1f;
|
||||
|
||||
float targetYaw = _originalCameraRotation.x + (panX * _maxCameraPanAngle);
|
||||
float targetPitch = _originalCameraRotation.y - (panY * _maxCameraPanAngle);
|
||||
|
||||
targetPitch = Mathf.Clamp(targetPitch, _originalCameraRotation.y - _maxCameraPanAngle, _originalCameraRotation.y + _maxCameraPanAngle);
|
||||
|
||||
Vector3 currentRotation = transform.eulerAngles;
|
||||
currentRotation.y = Mathf.Lerp(currentRotation.y, targetYaw, Time.deltaTime * _cameraPanSpeed);
|
||||
transform.eulerAngles = currentRotation;
|
||||
|
||||
Vector3 cameraRotation = _playerCamera.transform.localEulerAngles;
|
||||
if (cameraRotation.x > 180f)
|
||||
cameraRotation.x -= 360f;
|
||||
cameraRotation.x = Mathf.Lerp(cameraRotation.x, targetPitch, Time.deltaTime * _cameraPanSpeed);
|
||||
_playerCamera.transform.localEulerAngles = cameraRotation;
|
||||
}
|
||||
|
||||
private void CheckForListenableObject()
|
||||
{
|
||||
if (_playerCamera == null)
|
||||
return;
|
||||
|
||||
Ray ray = _playerCamera.ScreenPointToRay(Mouse.current.position.ReadValue());
|
||||
|
||||
if (Physics.Raycast(ray, out RaycastHit hit, _listeningRange, _listenableLayers))
|
||||
{
|
||||
AudioListenable listenable = hit.collider.GetComponent<AudioListenable>();
|
||||
|
||||
if (listenable != null && listenable != _currentTargetEmitter)
|
||||
{
|
||||
if (_currentTargetEmitter != null)
|
||||
_currentTargetEmitter.StopListening();
|
||||
|
||||
_currentTargetEmitter = listenable;
|
||||
}
|
||||
|
||||
if (Mouse.current.leftButton.wasPressedThisFrame && _currentTargetEmitter != null)
|
||||
{
|
||||
TriggerDiapasonTap();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_currentTargetEmitter != null)
|
||||
{
|
||||
_currentTargetEmitter.StopListening();
|
||||
_currentTargetEmitter = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void TriggerDiapasonTap()
|
||||
{
|
||||
if (_diapasonAnimator != null)
|
||||
_diapasonAnimator.SetTrigger(ANIM_TRIGGER_TAP);
|
||||
|
||||
if (_diapasonTapClip != null && _playerAudioSource != null)
|
||||
_playerAudioSource.PlayOneShot(_diapasonTapClip);
|
||||
|
||||
if (_currentTargetEmitter != null)
|
||||
_currentTargetEmitter.StartListening(transform.position);
|
||||
}
|
||||
|
||||
private void PlayBreathIn()
|
||||
{
|
||||
if (_breathInClip != null && _playerAudioSource != null)
|
||||
_playerAudioSource.PlayOneShot(_breathInClip);
|
||||
}
|
||||
|
||||
private void AttenuateAmbientSound(bool enable)
|
||||
{
|
||||
AudioListener listener = FindFirstObjectByType<AudioListener>();
|
||||
if (listener != null)
|
||||
{
|
||||
if (enable)
|
||||
{
|
||||
_originalAmbientVolume = AudioListener.volume;
|
||||
AudioListener.volume = _ambientAttenuationAmount;
|
||||
}
|
||||
else
|
||||
{
|
||||
AudioListener.volume = _originalAmbientVolume;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void EnableVignette(bool enable)
|
||||
{
|
||||
if (_vignetteEffect != null)
|
||||
{
|
||||
_vignetteEffect.EnableVignette(enable);
|
||||
_vignetteEffect.SetIntensity(_vignetteIntensity);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDrawGizmosSelected()
|
||||
{
|
||||
if (_playerCamera != null && IsListening)
|
||||
{
|
||||
Gizmos.color = _currentTargetEmitter != null ? Color.green : Color.yellow;
|
||||
Ray ray = _playerCamera.ScreenPointToRay(Mouse.current != null ? Mouse.current.position.ReadValue() : Vector2.zero);
|
||||
Gizmos.DrawRay(ray.origin, ray.direction * _listeningRange);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2094bd9c6f72e5b4cadf430f4d70f8f6
|
||||
@@ -0,0 +1,57 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
using UnityEngine.Rendering.Universal;
|
||||
|
||||
namespace Unheimlich.Gameplay.Player
|
||||
{
|
||||
public class ListeningVignetteEffect : MonoBehaviour
|
||||
{
|
||||
[Header("References")]
|
||||
[SerializeField] private Volume _globalVolume;
|
||||
|
||||
[Header("Settings")]
|
||||
[SerializeField] private float _targetIntensity = 0.5f;
|
||||
[SerializeField] private float _transitionSpeed = 2f;
|
||||
|
||||
private Vignette _vignette;
|
||||
private float _originalIntensity;
|
||||
private bool _isEnabled;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (_globalVolume == null)
|
||||
_globalVolume = FindFirstObjectByType<Volume>();
|
||||
|
||||
if (_globalVolume != null && _globalVolume.profile != null)
|
||||
{
|
||||
if (_globalVolume.profile.TryGet(out Vignette vignette))
|
||||
{
|
||||
_vignette = vignette;
|
||||
_originalIntensity = _vignette.intensity.value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (_vignette == null)
|
||||
return;
|
||||
|
||||
float targetValue = _isEnabled ? _targetIntensity : _originalIntensity;
|
||||
float currentValue = _vignette.intensity.value;
|
||||
float newValue = Mathf.Lerp(currentValue, targetValue, Time.deltaTime * _transitionSpeed);
|
||||
|
||||
_vignette.intensity.value = newValue;
|
||||
}
|
||||
|
||||
public void EnableVignette(bool enable)
|
||||
{
|
||||
_isEnabled = enable;
|
||||
}
|
||||
|
||||
public void SetIntensity(float intensity)
|
||||
{
|
||||
_targetIntensity = Mathf.Clamp01(intensity);
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 878ebc270c13e5c49a3813b1848f6ea5
|
||||
@@ -17,6 +17,7 @@ namespace Unheimlich.Managers
|
||||
public Vector2 LookInput;
|
||||
public InputActionReference JumpAction;
|
||||
public InputActionReference InteractAction;
|
||||
public InputActionReference DiapasonAction;
|
||||
|
||||
public static bool IsInputEnabled { get; private set; } = true;
|
||||
public static bool IsLookingEnabled { get; private set; } = true;
|
||||
@@ -24,6 +25,7 @@ namespace Unheimlich.Managers
|
||||
private InputActionMap _playerActionMap;
|
||||
private InputAction _lookAction;
|
||||
private InputAction _interactAction;
|
||||
private InputAction _diapasonAction;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
@@ -42,9 +44,12 @@ namespace Unheimlich.Managers
|
||||
_playerActionMap = playerInput.actions.FindActionMap("Player");
|
||||
_lookAction = _playerActionMap.FindAction("Look");
|
||||
_interactAction = _playerActionMap.FindAction("Interact");
|
||||
_diapasonAction = _playerActionMap.FindAction("Diapason");
|
||||
|
||||
JumpAction.action.Enable();
|
||||
InteractAction.action.Enable();
|
||||
if (DiapasonAction != null)
|
||||
DiapasonAction.action.Enable();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -68,7 +73,9 @@ namespace Unheimlich.Managers
|
||||
{
|
||||
Instance._playerActionMap.Disable();
|
||||
Instance._lookAction.Enable();
|
||||
Instance._interactAction.Enable();
|
||||
Instance._interactAction.Enable();
|
||||
if (Instance._diapasonAction != null)
|
||||
Instance._diapasonAction.Enable();
|
||||
IsLookingEnabled = false;
|
||||
}
|
||||
}
|
||||
@@ -89,6 +96,10 @@ namespace Unheimlich.Managers
|
||||
|
||||
public void OnInteract(InputAction.CallbackContext context)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public void OnDiapason(InputAction.CallbackContext context)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user