Castle Bug Fixed, Audios Attached to dialogues.

This commit is contained in:
Ali Sharoz 2025-10-10 17:55:34 +05:00
parent b301b2e3c5
commit 0998f75cc6
74 changed files with 2608 additions and 443 deletions

View File

@ -1404,7 +1404,7 @@ MonoBehaviour:
m_Calls: []
canvasRect:
serializedVersion: 2
x: 160
x: 161.06383
y: 180
width: 160
height: 30
@ -1518,7 +1518,7 @@ MonoBehaviour:
height: 30
entryGroups: []
canvasScrollPosition: {x: 0, y: 0}
canvasZoom: 1
canvasZoom: 0.94000006
- id: 5
fields:
- title: Title
@ -2073,7 +2073,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: "(brushing it aside): Doubt is for the weak. Focus on the Ember Heart.\r"
value: "Doubt is for the weak. Focus on the Ember Heart.\r"
type: 0
typeString: CustomFieldType_Text
- title: Sequence
@ -2100,8 +2100,8 @@ MonoBehaviour:
width: 160
height: 30
entryGroups: []
canvasScrollPosition: {x: 0, y: 0}
canvasZoom: 1
canvasScrollPosition: {x: 10.165025, y: 10.89319}
canvasZoom: 1.03
- id: 7
fields:
- title: Title
@ -3285,7 +3285,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: "(snatching it away) Excellent. Three relics. The shield grows strong.\r"
value: "Excellent. Three relics. The shield grows strong.\r"
type: 0
typeString: CustomFieldType_Text
- title: Sequence
@ -3868,7 +3868,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: "(smiling thinly) Rumors protect cowards. You are not a coward.\r"
value: "Rumors protect cowards. You are not a coward.\r"
type: 0
typeString: CustomFieldType_Text
- title: Sequence
@ -4132,7 +4132,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: " (eyeing him) Truth is heavier than gold. Be ready to carry it.\r"
value: "Truth is heavier than gold. Be ready to carry it.\r"
type: 0
typeString: CustomFieldType_Text
- title: Sequence
@ -4776,7 +4776,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: "(laughs): Without me, the city falls. With me, it bends. Isn\u2019t
value: "Vhalor: HAHAHAHA Without me, the city falls. With me, it bends. Isn\u2019t
bending safer than breaking?\r"
type: 0
typeString: CustomFieldType_Text
@ -4832,8 +4832,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: "(drawing sword) Not if it bends to chains. My oath is to Karth, not
you.\r"
value: "Kael : Not if it bends to chains. My oath is to Karth, not you.\r"
type: 0
typeString: CustomFieldType_Text
- title: Sequence
@ -4888,7 +4887,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: My hammer for the people.
value: 'Torren: My hammer for the people.'
type: 0
typeString: CustomFieldType_Text
- title: Sequence
@ -4943,7 +4942,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: My voice for the truth.
value: 'Elira: My voice for the truth.'
type: 0
typeString: CustomFieldType_Text
- title: Sequence

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 0ad6cf8549604ca409afe4ba79d990bc
guid: 289658718c06e794cb280fa404ab0185
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000

View File

@ -104,7 +104,7 @@ MonoBehaviour:
- id: 4
fields:
- title: Name
value: 'Torren '
value: Torren
type: 0
typeString: CustomFieldType_Text
- title: Pictures
@ -170,7 +170,7 @@ MonoBehaviour:
- id: 7
fields:
- title: Name
value: 'Pip '
value: Pip
type: 0
typeString: CustomFieldType_Text
- title: Pictures
@ -192,7 +192,7 @@ MonoBehaviour:
- id: 8
fields:
- title: Name
value: 'Aeron '
value: Aeron
type: 0
typeString: CustomFieldType_Text
- title: Pictures
@ -1404,7 +1404,7 @@ MonoBehaviour:
m_Calls: []
canvasRect:
serializedVersion: 2
x: 160
x: 161.06383
y: 180
width: 160
height: 30
@ -1518,7 +1518,7 @@ MonoBehaviour:
height: 30
entryGroups: []
canvasScrollPosition: {x: 0, y: 0}
canvasZoom: 1
canvasZoom: 0.94000006
- id: 5
fields:
- title: Title
@ -2073,7 +2073,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: "(brushing it aside): Doubt is for the weak. Focus on the Ember Heart.\r"
value: "Doubt is for the weak. Focus on the Ember Heart.\r"
type: 0
typeString: CustomFieldType_Text
- title: Sequence
@ -2100,8 +2100,8 @@ MonoBehaviour:
width: 160
height: 30
entryGroups: []
canvasScrollPosition: {x: 0, y: 0}
canvasZoom: 1
canvasScrollPosition: {x: 10.165025, y: 10.89319}
canvasZoom: 1.03
- id: 7
fields:
- title: Title
@ -3285,7 +3285,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: "(snatching it away) Excellent. Three relics. The shield grows strong.\r"
value: "Excellent. Three relics. The shield grows strong.\r"
type: 0
typeString: CustomFieldType_Text
- title: Sequence
@ -3868,7 +3868,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: "(smiling thinly) Rumors protect cowards. You are not a coward.\r"
value: "Rumors protect cowards. You are not a coward.\r"
type: 0
typeString: CustomFieldType_Text
- title: Sequence
@ -4132,7 +4132,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: " (eyeing him) Truth is heavier than gold. Be ready to carry it.\r"
value: "Truth is heavier than gold. Be ready to carry it.\r"
type: 0
typeString: CustomFieldType_Text
- title: Sequence
@ -4776,7 +4776,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: "(laughs): Without me, the city falls. With me, it bends. Isn\u2019t
value: "Vhalor: HAHAHAHA Without me, the city falls. With me, it bends. Isn\u2019t
bending safer than breaking?\r"
type: 0
typeString: CustomFieldType_Text
@ -4832,8 +4832,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: "(drawing sword) Not if it bends to chains. My oath is to Karth, not
you.\r"
value: "Kael : Not if it bends to chains. My oath is to Karth, not you.\r"
type: 0
typeString: CustomFieldType_Text
- title: Sequence
@ -4888,7 +4887,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: My hammer for the people.
value: 'Torren: My hammer for the people.'
type: 0
typeString: CustomFieldType_Text
- title: Sequence
@ -4943,7 +4942,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: My voice for the truth.
value: 'Elira: My voice for the truth.'
type: 0
typeString: CustomFieldType_Text
- title: Sequence

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b2180824589929a4f9e746920144e7a6
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 6f5a549bd4e10944cab48a051932077b
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: e8716bfed45139d4fa577cc939dfa940
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 3c7c53eb2bee442448fe30dd57db548b
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 83fa3f862312e584a824aa0fe7303add
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 0bf02e2b4dfd2c4489cb5bfe974c5f5c
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 751a794578bb17540ab9e32d6c75f387
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 9b311626cae525342b6bafe964ac1a45
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 22740c4463e5b144193f72a0b0c6e8ed
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: faeee8a163c11944f8db81484cd3f0c5
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 5d93abd93d60c0840af024211264e04e
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 0fb200f02bdb19f448704172febf7179
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: cf852b01966044943a88d55eb7a8cca6
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 8e350088134191343ad9da97b9f46ec7
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 2c12a75f4df3e4145b0d905b3a219c97
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: a14e4ea111f42a3409a0f6a17d02a51a
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 0877d2e82ccf18e4ea81572dacdd4bd2
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 1c11e340083d4bd4f8c2eef931a94614
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 9aaf429da8a995f47857f13c81873e92
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 50b58bba04ff4c84db3741e9c665a245
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 958d975d58381344993f2870846c7db5
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 104dfd52eef9b12479f6df1591b38501
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: db3ddc0ee14dd6248b89098b105ea444
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: f8a5bd1e5eff96448b6a524f81b607b5
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: d62c4b37905040540b055bc90efb5fd0
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 4b36d4de5f1e7e94cb725bf92cdc08b2
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 93185fef6edac9b4f990e081928a1bc6
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 0bab659c3f05a67438b2f73e44fe7f2e
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 783135c39993895478ecc2a1a7d02fda
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: fe996d24d23e01748a5ebf0db00958b2
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: efb0273e6e1e2354898c5decc3f6a2c0
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 567a3b4b0de6ead4f8fb4ef1a23d306f
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: c7044e1172f3c6b4384d233faf80fc6d
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,502 @@
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using UnityEngine;
using PixelCrushers.DialogueSystem;
#if TMP_PRESENT
using TMPro;
#endif
[DisallowMultipleComponent]
public class NPCDialogueAudioSync : MonoBehaviour
{
[Header("Actor Matching (optional)")]
public string actorNameInDB = "";
[Header("Audio Output")]
public AudioSource voiceSource;
[System.Serializable]
public struct EntryClip
{
public int conversationID;
public int entryID;
public AudioClip clip;
}
[Header("(Optional) Manual Clips Mapping (wins if present)")]
public List<EntryClip> clips = new List<EntryClip>();
#if TMP_PRESENT
private TMP_Text npcTMP; // auto-fetched: NPC subtitle only
#endif
private UnityEngine.UI.Text npcUGUI; // auto-fetched: NPC subtitle only
[Header("Typing & Sync")]
[Tooltip("Multiply audio length for typing; 1.05 = finish ~5% after audio.")]
public float syncSlack = 1.05f;
[Tooltip("If a line has no clip, we still type for this long.")]
public float fallbackSecondsNoClip = 1.0f;
[Header("Debug")]
public bool verboseLogging = true;
private Coroutine typingRoutine;
private Coroutine continueRoutine;
private bool uiSearched = false;
private void Awake()
{
if (voiceSource == null)
{
voiceSource = GetComponent<AudioSource>();
if (voiceSource == null)
{
voiceSource = gameObject.AddComponent<AudioSource>();
voiceSource.playOnAwake = false;
}
}
}
// ===================== Dialogue System callbacks =====================
private void OnConversationLine(Subtitle subtitle)
{
if (subtitle == null || subtitle.speakerInfo == null) return;
if (!subtitle.speakerInfo.isNPC) return;
if (!string.IsNullOrEmpty(actorNameInDB) &&
!string.Equals(subtitle.speakerInfo.nameInDatabase, actorNameInDB, System.StringComparison.Ordinal))
{
if (verboseLogging) Debug.Log($"[NPCDialogueAudioSync] Ignoring speaker '{subtitle.speakerInfo.nameInDatabase}' (expecting '{actorNameInDB}').", this);
return;
}
EnsureNpcSubtitleLabel(); // find subtitle label (not the name)
int convId = subtitle.dialogueEntry != null ? subtitle.dialogueEntry.conversationID : -1;
int entryId = subtitle.dialogueEntry != null ? subtitle.dialogueEntry.id : -1;
string fullText = GetSubtitleText(subtitle);
var clip = LookupClip(subtitle);
if (verboseLogging)
Debug.Log($"[NPCDialogueAudioSync] Line → Conv:{convId} Entry:{entryId} Text:\"{Trunc(fullText)}\" Clip:{(clip ? clip.name : "<none>")}", this);
float duration = (clip && clip.length > 0f)
? clip.length * Mathf.Max(1f, syncSlack)
: Mathf.Max(0.01f, fallbackSecondsNoClip);
StartTyping(fullText, duration);
if (clip)
{
voiceSource.Stop();
voiceSource.clip = clip;
voiceSource.time = 0f;
voiceSource.mute = false;
voiceSource.volume = 1f;
voiceSource.spatialBlend = 0f; // 2D while debugging
voiceSource.Play();
if (verboseLogging) Debug.Log($"[NPCDialogueAudioSync] Playing clip '{clip.name}' ({clip.length:F2}s).", this);
if (continueRoutine != null) StopCoroutine(continueRoutine);
continueRoutine = StartCoroutine(WaitAndContinue(clip.length));
}
else
{
if (verboseLogging) Debug.Log("[NPCDialogueAudioSync] No clip → not auto-continuing.", this);
}
}
private void OnConversationLineEnd(Subtitle subtitle)
{
// DS may have ended the line early due to settings. Do NOT stop audio.
if (typingRoutine != null) { StopCoroutine(typingRoutine); typingRoutine = null; }
// If our audio is still playing, schedule a continue for the remaining time:
if (voiceSource != null && voiceSource.clip != null && voiceSource.isPlaying)
{
float remaining = Mathf.Max(0f, voiceSource.clip.length - voiceSource.time);
if (continueRoutine != null) StopCoroutine(continueRoutine);
continueRoutine = StartCoroutine(WaitAndContinue(remaining));
}
// else: if no audio, let DS control it (menu/auto/etc).
}
// ===================== Typing =====================
private void StartTyping(string fullText, float seconds)
{
if (HasSubtitleLabel())
{
DisableBuiltInTypewritersOn(GetSubtitleTransform());
#if TMP_PRESENT
if (npcTMP != null)
{
npcTMP.text = fullText;
typingRoutine = StartCoroutine(TypeTMP(npcTMP, seconds));
return;
}
#endif
if (npcUGUI != null)
{
typingRoutine = StartCoroutine(TypeUGUI(npcUGUI, fullText, seconds));
return;
}
}
// No label found: do nothing; audio still plays.
}
#if TMP_PRESENT
private IEnumerator TypeTMP(TMP_Text label, float seconds)
{
label.ForceMeshUpdate();
int total = StripRichTags(label.text).Length;
label.maxVisibleCharacters = 0;
if (total <= 0 || seconds <= 0.01f)
{
label.maxVisibleCharacters = int.MaxValue;
yield break;
}
float t = 0f;
while (t < seconds)
{
t += Time.deltaTime;
label.maxVisibleCharacters = Mathf.FloorToInt(total * Mathf.Clamp01(t / seconds));
yield return null;
}
label.maxVisibleCharacters = int.MaxValue;
typingRoutine = null;
}
#endif
private IEnumerator TypeUGUI(UnityEngine.UI.Text label, string fullText, float seconds)
{
string plain = StripRichTags(fullText);
int total = plain.Length;
if (total <= 0 || seconds <= 0.01f)
{
label.text = fullText;
yield break;
}
float t = 0f;
while (t < seconds)
{
t += Time.deltaTime;
int count = Mathf.FloorToInt(total * Mathf.Clamp01(t / seconds));
label.text = BuildVisibleWithRich(fullText, count);
yield return null;
}
label.text = fullText;
typingRoutine = null;
}
private IEnumerator WaitAndContinue(float seconds)
{
if (seconds < 0f) seconds = 0f;
yield return new WaitForSeconds(seconds+0.5f);
AdvanceConversationNow();
continueRoutine = null;
}
private void AdvanceConversationNow()
{
// Try everything that can advance a DS conversation, in order.
// (A) Dialogue Manager: OnContinue message
var dm = FindObjectOfType<DialogueManager>();
if (dm != null)
{
dm.gameObject.SendMessage("OnContinue", SendMessageOptions.DontRequireReceiver);
}
// (B) Standard Dialogue UI instance: call OnContinue directly
var sdui = FindObjectOfType<StandardDialogueUI>();
if (sdui != null)
{
sdui.SendMessage("OnContinue", SendMessageOptions.DontRequireReceiver);
}
// (C) Click any visible "continue" button under the active UI
if (sdui != null)
{
var btns = sdui.GetComponentsInChildren<UnityEngine.UI.Button>(true);
foreach (var b in btns)
{
if (!b || !b.interactable || !b.gameObject.activeInHierarchy) continue;
var n = b.gameObject.name.ToLowerInvariant();
if (n.Contains("continue") || n.Contains("next"))
{
b.onClick.Invoke();
break;
}
}
}
// (D) Broadcast as last resort
BroadcastMessage("OnContinue", SendMessageOptions.DontRequireReceiver);
}
//private IEnumerator WaitAndContinue(float seconds)
//{
// yield return new WaitForSeconds(seconds);
// var dm = FindObjectOfType<DialogueManager>();
// if (dm != null) dm.gameObject.SendMessage("OnContinue", SendMessageOptions.DontRequireReceiver);
// BroadcastMessage("OnContinue", SendMessageOptions.DontRequireReceiver);
// continueRoutine = null;
//}
// ===================== Find the *subtitle* label, not the name =====================
private void EnsureNpcSubtitleLabel()
{
if (HasSubtitleLabel() && uiSearched) return;
// Try using StandardDialogueUIs NPC subtitle panel first (most reliable).
var sdui = FindObjectOfType<StandardDialogueUI>();
Transform npcPanel = null;
if (sdui != null)
{
// Use reflection to get its npcSubtitle panel object (avoids compile issues across versions).
var panelComp = GetFieldOrPropertyComponent(sdui, "npcSubtitle");
if (panelComp != null) npcPanel = panelComp.transform;
}
// Fallback: well-known path in the prefab.
if (npcPanel == null && sdui != null)
{
npcPanel = sdui.transform.Find("Dialogue Panel/NPC Subtitle Panel");
if (npcPanel == null) npcPanel = sdui.transform;
}
// Within panel, prefer a component literally named "Subtitle Text".
if (npcPanel != null)
{
#if TMP_PRESENT
if (npcTMP == null)
{
var exact = FindByExactName<TMP_Text>(npcPanel, "Subtitle Text");
npcTMP = exact != null ? exact : FindSubtitleTMP(npcPanel);
}
#endif
if (npcUGUI == null)
{
var exact = FindByExactName<UnityEngine.UI.Text>(npcPanel, "Subtitle Text");
npcUGUI = exact != null ? exact : FindSubtitleUGUI(npcPanel);
}
}
if (verboseLogging)
{
Debug.Log($"[NPCDialogueAudioSync] Subtitle label → TMP:{(npcTMP ? npcTMP.name : "null")} UGUI:{(npcUGUI ? npcUGUI.name : "null")}", this);
}
uiSearched = true;
}
private bool HasSubtitleLabel()
{
#if TMP_PRESENT
if (npcTMP != null) return true;
#endif
return npcUGUI != null;
}
private Transform GetSubtitleTransform()
{
#if TMP_PRESENT
if (npcTMP != null) return npcTMP.transform;
#endif
return npcUGUI != null ? npcUGUI.transform : null;
}
// Find a component by exact GameObject name under root
private T FindByExactName<T>(Transform root, string exact) where T : Component
{
var comps = root.GetComponentsInChildren<T>(true);
foreach (var c in comps)
if (c.gameObject.name == exact) return c;
return null;
}
#if TMP_PRESENT
// Heuristic: find TMP subtitle (NOT name). Prefer objects with "Subtitle" in name; reject those with "Name"
private TMP_Text FindSubtitleTMP(Transform root)
{
TMP_Text fallback = null;
foreach (var t in root.GetComponentsInChildren<TMP_Text>(true))
{
var n = t.gameObject.name.ToLowerInvariant();
if (n.Contains("name")) continue; // reject name labels
if (n.Contains("subtitle")) return t; // perfect match
fallback = t; // keep anything else as last resort
}
return fallback;
}
#endif
private UnityEngine.UI.Text FindSubtitleUGUI(Transform root)
{
UnityEngine.UI.Text fallback = null;
foreach (var t in root.GetComponentsInChildren<UnityEngine.UI.Text>(true))
{
var n = t.gameObject.name.ToLowerInvariant();
if (n.Contains("name")) continue; // reject name labels
if (n.Contains("subtitle")) return t; // perfect match
fallback = t;
}
return fallback;
}
private Component GetFieldOrPropertyComponent(object obj, string member)
{
if (obj == null) return null;
var type = obj.GetType();
var pi = type.GetProperty(member);
if (pi != null) return pi.GetValue(obj, null) as Component;
var fi = type.GetField(member);
if (fi != null) return fi.GetValue(obj) as Component;
return null;
}
private void DisableBuiltInTypewritersOn(Transform root)
{
if (root == null) return;
foreach (var mb in root.GetComponentsInChildren<MonoBehaviour>(true))
{
if (mb == null) continue;
var n = mb.GetType().Name;
if (n.IndexOf("Typewriter", System.StringComparison.OrdinalIgnoreCase) >= 0)
mb.enabled = false;
}
}
// ===================== Clip lookup =====================
private AudioClip LookupClip(Subtitle subtitle)
{
int convId = subtitle.dialogueEntry != null ? subtitle.dialogueEntry.conversationID : -1;
int entryId = subtitle.dialogueEntry != null ? subtitle.dialogueEntry.id : -1;
// 1) explicit mapping
for (int i = 0; i < clips.Count; i++)
if (clips[i].conversationID == convId && clips[i].entryID == entryId)
return clips[i].clip;
// 2) pull directly from THIS entry's fields
var entry = subtitle.dialogueEntry;
if (entry != null && entry.fields != null)
{
foreach (var f in entry.fields)
{
var obj = TryGetUnityObjectFromField(f);
if (obj is AudioClip ac) return ac;
if (!string.IsNullOrEmpty(f.title) &&
f.title.Equals("Audio Files", System.StringComparison.OrdinalIgnoreCase))
{
var path = f.value;
if (!string.IsNullOrEmpty(path))
{
var loaded = Resources.Load<AudioClip>(path);
if (loaded != null) return loaded;
}
}
}
}
return null;
}
private UnityEngine.Object TryGetUnityObjectFromField(Field f)
{
if (f == null) return null;
var type = f.GetType();
var pi = type.GetProperty("asset");
if (pi != null)
{
var v = pi.GetValue(f, null) as UnityEngine.Object;
if (v != null) return v;
}
pi = type.GetProperty("unityObject");
if (pi != null)
{
var v = pi.GetValue(f, null) as UnityEngine.Object;
if (v != null) return v;
}
var fi = type.GetField("asset");
if (fi != null)
{
var v = fi.GetValue(f) as UnityEngine.Object;
if (v != null) return v;
}
fi = type.GetField("unityObject");
if (fi != null)
{
var v = fi.GetValue(f) as UnityEngine.Object;
if (v != null) return v;
}
return null;
}
// ===================== Text helpers =====================
private static readonly Regex richTag = new Regex("<.*?>", RegexOptions.Singleline);
private string GetSubtitleText(Subtitle s)
{
if (s.formattedText != null && !string.IsNullOrEmpty(s.formattedText.text))
return s.formattedText.text;
if (s.dialogueEntry != null)
return s.dialogueEntry.DialogueText ?? string.Empty;
return string.Empty;
}
private string StripRichTags(string s) => string.IsNullOrEmpty(s) ? "" : richTag.Replace(s, "");
private string BuildVisibleWithRich(string richText, int visibleCount)
{
if (string.IsNullOrEmpty(richText)) return "";
if (visibleCount <= 0) return "";
string plain = StripRichTags(richText);
visibleCount = Mathf.Clamp(visibleCount, 0, plain.Length);
int visibleSoFar = 0;
var sb = new StringBuilder(richText.Length);
bool inTag = false;
foreach (char c in richText)
{
if (c == '<') { inTag = true; sb.Append(c); continue; }
if (c == '>') { inTag = false; sb.Append(c); continue; }
if (inTag) { sb.Append(c); continue; }
if (visibleSoFar < visibleCount)
{
sb.Append(c);
visibleSoFar++;
}
}
return sb.ToString();
}
private string Trunc(string s, int max = 80)
{
if (string.IsNullOrEmpty(s)) return "";
return s.Length <= max ? s : s.Substring(0, max) + "…";
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 054576fb6fb96cf42b9d9a58adfd496b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -15,6 +15,8 @@ GameObject:
- component: {fileID: 1869921378479152428}
- component: {fileID: 6484357784474062982}
- component: {fileID: 2860296386691659855}
- component: {fileID: 8056714888985730822}
- component: {fileID: 7682305847415828907}
m_Layer: 0
m_Name: Conversation (Attach to Child of character)
m_TagString: Untagged
@ -354,6 +356,129 @@ MonoBehaviour:
m_CallState: 2
ConvoCamera: {fileID: 2180252831253612962}
MainCamera: {fileID: 0}
--- !u!114 &8056714888985730822
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2141270038401927948}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 054576fb6fb96cf42b9d9a58adfd496b, type: 3}
m_Name:
m_EditorClassIdentifier:
actorNameInDB: King Aldren (Vhalor)
voiceSource: {fileID: 7682305847415828907}
clips:
- conversationID: 4
entryID: 1
clip: {fileID: 8300000, guid: 9b311626cae525342b6bafe964ac1a45, type: 3}
- conversationID: 4
entryID: 3
clip: {fileID: 8300000, guid: 22740c4463e5b144193f72a0b0c6e8ed, type: 3}
- conversationID: 4
entryID: 5
clip: {fileID: 8300000, guid: faeee8a163c11944f8db81484cd3f0c5, type: 3}
syncSlack: 1.05
fallbackSecondsNoClip: 1
verboseLogging: 1
--- !u!82 &7682305847415828907
AudioSource:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2141270038401927948}
m_Enabled: 1
serializedVersion: 4
OutputAudioMixerGroup: {fileID: 0}
m_audioClip: {fileID: 0}
m_PlayOnAwake: 1
m_Volume: 1
m_Pitch: 1
Loop: 0
Mute: 0
Spatialize: 0
SpatializePostEffects: 0
Priority: 128
DopplerLevel: 1
MinDistance: 1
MaxDistance: 500
Pan2D: 0
rolloffMode: 0
BypassEffects: 0
BypassListenerEffects: 0
BypassReverbZones: 0
rolloffCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
panLevelCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
spreadCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
reverbZoneMixCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
--- !u!1 &2180252831253612962
GameObject:
m_ObjectHideFlags: 0

View File

@ -6,7 +6,7 @@ QualitySettings:
serializedVersion: 5
m_CurrentQuality: 2
m_QualitySettings:
- serializedVersion: 2
- serializedVersion: 3
name: Performant
pixelLightCount: 0
shadows: 0
@ -19,16 +19,20 @@ QualitySettings:
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
shadowmaskMode: 0
skinWeights: 2
textureQuality: 0
globalTextureMipmapLimit: 0
textureMipmapLimitSettings: []
anisotropicTextures: 0
antiAliasing: 0
softParticles: 0
softVegetation: 0
realtimeReflectionProbes: 0
billboardsFaceCameraPosition: 0
useLegacyDetailDistribution: 1
vSyncCount: 0
realtimeGICPUUsage: 25
lodBias: 0.4
maximumLODLevel: 0
enableLODCrossFade: 1
streamingMipmapsActive: 0
streamingMipmapsAddAllCameras: 1
streamingMipmapsMemoryBudget: 512
@ -42,8 +46,17 @@ QualitySettings:
resolutionScalingFixedDPIFactor: 1
customRenderPipeline: {fileID: 11400000, guid: d0e2fc18fe036412f8223b3b3d9ad574,
type: 2}
terrainQualityOverrides: 0
terrainPixelError: 1
terrainDetailDensityScale: 1
terrainBasemapDistance: 1000
terrainDetailDistance: 80
terrainTreeDistance: 5000
terrainBillboardStart: 50
terrainFadeLength: 5
terrainMaxTrees: 50
excludedTargetPlatforms: []
- serializedVersion: 2
- serializedVersion: 3
name: Balanced
pixelLightCount: 1
shadows: 1
@ -56,16 +69,20 @@ QualitySettings:
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
shadowmaskMode: 0
skinWeights: 4
textureQuality: 0
globalTextureMipmapLimit: 0
textureMipmapLimitSettings: []
anisotropicTextures: 1
antiAliasing: 0
softParticles: 0
softVegetation: 0
realtimeReflectionProbes: 0
billboardsFaceCameraPosition: 0
useLegacyDetailDistribution: 1
vSyncCount: 1
realtimeGICPUUsage: 25
lodBias: 1
maximumLODLevel: 0
enableLODCrossFade: 1
streamingMipmapsActive: 0
streamingMipmapsAddAllCameras: 1
streamingMipmapsMemoryBudget: 512
@ -79,8 +96,17 @@ QualitySettings:
resolutionScalingFixedDPIFactor: 1
customRenderPipeline: {fileID: 11400000, guid: e1260c1148f6143b28bae5ace5e9c5d1,
type: 2}
terrainQualityOverrides: 0
terrainPixelError: 1
terrainDetailDensityScale: 1
terrainBasemapDistance: 1000
terrainDetailDistance: 80
terrainTreeDistance: 5000
terrainBillboardStart: 50
terrainFadeLength: 5
terrainMaxTrees: 50
excludedTargetPlatforms: []
- serializedVersion: 2
- serializedVersion: 3
name: High Fidelity
pixelLightCount: 2
shadows: 2
@ -93,16 +119,20 @@ QualitySettings:
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
shadowmaskMode: 1
skinWeights: 255
textureQuality: 0
globalTextureMipmapLimit: 0
textureMipmapLimitSettings: []
anisotropicTextures: 2
antiAliasing: 4
softParticles: 0
softVegetation: 1
realtimeReflectionProbes: 1
billboardsFaceCameraPosition: 1
useLegacyDetailDistribution: 1
vSyncCount: 1
realtimeGICPUUsage: 25
lodBias: 2
maximumLODLevel: 0
enableLODCrossFade: 1
streamingMipmapsActive: 0
streamingMipmapsAddAllCameras: 1
streamingMipmapsMemoryBudget: 512
@ -116,21 +146,15 @@ QualitySettings:
resolutionScalingFixedDPIFactor: 1
customRenderPipeline: {fileID: 11400000, guid: 7b7fd9122c28c4d15b667c7040e3b3fd,
type: 2}
terrainQualityOverrides: 0
terrainPixelError: 1
terrainDetailDensityScale: 1
terrainBasemapDistance: 1000
terrainDetailDistance: 80
terrainTreeDistance: 5000
terrainBillboardStart: 50
terrainFadeLength: 5
terrainMaxTrees: 50
excludedTargetPlatforms: []
m_PerPlatformDefaultQuality:
Android: 1
CloudRendering: 2
Lumin: 2
GameCoreScarlett: 2
GameCoreXboxOne: 2
Nintendo Switch: 2
PS4: 2
PS5: 2
Server: 0
Stadia: 2
Standalone: 2
WebGL: 1
Windows Store Apps: 2
XboxOne: 2
iPhone: 1
tvOS: 1
m_TextureMipmapLimitGroupNames: []
m_PerPlatformDefaultQuality: {}