音频内容
This commit is contained in:
@@ -68,3 +68,7 @@
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.TTF filter=lfs diff=lfs merge=lfs -text
|
||||
*SDF.asset filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
*.jprg filter=lfs diff=lfs merge=lfs -text
|
||||
*.ogg filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
+1
@@ -6,6 +6,7 @@
|
||||
<file url="file://$PROJECT_DIR$/Assets/Scripts/Dialog System/DialogController.cs" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/Assets/Scripts/Dialog System/LineView.cs" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/Assets/Scripts/Dialog System/YarnOption.cs" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/Assets/Scripts/Framework/AudioKit/AudioManager.cs" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/Assets/Scripts/Game Loop/GameLoopManager.cs" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/Assets/Scripts/Game Loop/SceneLoader.cs" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/Assets/Scripts/Game Loop/StartMenu.cs" charset="UTF-8" />
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=poolable/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ec612c41e359b144981bb99e30161c71
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,23 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a462991fdfb43334bbed965d98923923
|
||||
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.
@@ -0,0 +1,23 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e872d8bcd39dc344ea98c6410537b060
|
||||
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.
@@ -0,0 +1,23 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d5a8b692175f7b54b922f22470dd42ee
|
||||
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.
@@ -0,0 +1,23 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d111666dd430c5b43ba38d0b32955c68
|
||||
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.
@@ -0,0 +1,23 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5b36cfb6132fa954a9832bc8fcbe291a
|
||||
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.
@@ -0,0 +1,23 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dd82081a53dbadb458af22cf3c9e3f72
|
||||
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.
@@ -0,0 +1,23 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e858e4e20144d22449bd42bd20320c7e
|
||||
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:
|
||||
@@ -1,8 +1,8 @@
|
||||
title: Start
|
||||
---
|
||||
<<character_init Art/Character/Express_1>>
|
||||
[character key="2"]我: [/character]这是选项测试文件 #line:069537f
|
||||
我: 做一点测试
|
||||
me: 这是选项测试文件 #line:069537f
|
||||
peipei: 做一点测试
|
||||
-> 选项一
|
||||
-> 选项二
|
||||
-> 超长选项测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试
|
||||
|
||||
@@ -123,6 +123,185 @@ NavMeshSettings:
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &40915749
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 40915750}
|
||||
- component: {fileID: 40915751}
|
||||
m_Layer: 0
|
||||
m_Name: Audio Manager
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &40915750
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 40915749}
|
||||
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: 1410207950}
|
||||
- {fileID: 460780905}
|
||||
- {fileID: 57390246}
|
||||
- {fileID: 1403040025}
|
||||
- {fileID: 868192523}
|
||||
- {fileID: 262337781}
|
||||
m_Father: {fileID: 1009826577}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &40915751
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 40915749}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d02d13e0ef27eb544b62d5a8d296f2ee, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
fadeTime: 1
|
||||
--- !u!1 &57390245
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 57390246}
|
||||
- component: {fileID: 57390247}
|
||||
m_Layer: 0
|
||||
m_Name: Voice
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &57390246
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 57390245}
|
||||
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: []
|
||||
m_Father: {fileID: 40915750}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!82 &57390247
|
||||
AudioSource:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 57390245}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
OutputAudioMixerGroup: {fileID: -2297450186869358485, guid: b14347481450a234a852407119bfecb4, type: 2}
|
||||
m_audioClip: {fileID: 0}
|
||||
m_PlayOnAwake: 0
|
||||
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!224 &62394964 stripped
|
||||
RectTransform:
|
||||
m_CorrespondingSourceObject: {fileID: 7131956091114956203, guid: e2211373480d40243a377721316dd8f7, type: 3}
|
||||
@@ -458,6 +637,134 @@ MonoBehaviour:
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &262337780
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 262337781}
|
||||
- component: {fileID: 262337782}
|
||||
m_Layer: 0
|
||||
m_Name: Amb2
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &262337781
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 262337780}
|
||||
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: []
|
||||
m_Father: {fileID: 40915750}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!82 &262337782
|
||||
AudioSource:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 262337780}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
OutputAudioMixerGroup: {fileID: -4767431408014039957, guid: b14347481450a234a852407119bfecb4, type: 2}
|
||||
m_audioClip: {fileID: 0}
|
||||
m_PlayOnAwake: 0
|
||||
m_Volume: 1
|
||||
m_Pitch: 1
|
||||
Loop: 1
|
||||
Mute: 0
|
||||
Spatialize: 0
|
||||
SpatializePostEffects: 0
|
||||
Priority: 128
|
||||
DopplerLevel: 1
|
||||
MinDistance: 1
|
||||
MaxDistance: 500
|
||||
Pan2D: 0
|
||||
rolloffMode: 0
|
||||
BypassEffects: 0
|
||||
BypassListenerEffects: 0
|
||||
BypassReverbZones: 0
|
||||
rolloffCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 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 &331068878
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -570,6 +877,134 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 6c926f9749bfa894eaaff47ec3a43a64, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &460780904
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 460780905}
|
||||
- component: {fileID: 460780906}
|
||||
m_Layer: 0
|
||||
m_Name: Interaction
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &460780905
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 460780904}
|
||||
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: []
|
||||
m_Father: {fileID: 40915750}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!82 &460780906
|
||||
AudioSource:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 460780904}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
OutputAudioMixerGroup: {fileID: -1154322574682727772, guid: b14347481450a234a852407119bfecb4, type: 2}
|
||||
m_audioClip: {fileID: 0}
|
||||
m_PlayOnAwake: 0
|
||||
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 &494300778
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1099,7 +1534,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 18a3ec3914131d44199ae33902edf159, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
runMode: 1
|
||||
runMode: 0
|
||||
firstTalkSO: {fileID: 11400000, guid: 10601ce26230723479d875a630f15732, type: 2}
|
||||
clinicScene: ClinicScene
|
||||
testYarnProject: OptionTest
|
||||
@@ -1568,6 +2003,134 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 791733123}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &868192522
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 868192523}
|
||||
- component: {fileID: 868192524}
|
||||
m_Layer: 0
|
||||
m_Name: Amb1
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &868192523
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 868192522}
|
||||
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: []
|
||||
m_Father: {fileID: 40915750}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!82 &868192524
|
||||
AudioSource:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 868192522}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
OutputAudioMixerGroup: {fileID: 1773163451604355202, guid: b14347481450a234a852407119bfecb4, type: 2}
|
||||
m_audioClip: {fileID: 8300000, guid: a462991fdfb43334bbed965d98923923, type: 3}
|
||||
m_PlayOnAwake: 1
|
||||
m_Volume: 1
|
||||
m_Pitch: 1
|
||||
Loop: 1
|
||||
Mute: 0
|
||||
Spatialize: 0
|
||||
SpatializePostEffects: 0
|
||||
Priority: 128
|
||||
DopplerLevel: 1
|
||||
MinDistance: 1
|
||||
MaxDistance: 500
|
||||
Pan2D: 0
|
||||
rolloffMode: 0
|
||||
BypassEffects: 0
|
||||
BypassListenerEffects: 0
|
||||
BypassReverbZones: 0
|
||||
rolloffCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 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 &886733270
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -2025,6 +2588,7 @@ Transform:
|
||||
- {fileID: 72512886}
|
||||
- {fileID: 719228339}
|
||||
- {fileID: 886733272}
|
||||
- {fileID: 40915750}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1015707783
|
||||
@@ -2782,6 +3346,262 @@ Transform:
|
||||
- {fileID: 515480973}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1403040024
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1403040025}
|
||||
- component: {fileID: 1403040026}
|
||||
m_Layer: 0
|
||||
m_Name: Memery
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1403040025
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1403040024}
|
||||
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: []
|
||||
m_Father: {fileID: 40915750}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!82 &1403040026
|
||||
AudioSource:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1403040024}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
OutputAudioMixerGroup: {fileID: -6773993072664640036, guid: b14347481450a234a852407119bfecb4, type: 2}
|
||||
m_audioClip: {fileID: 0}
|
||||
m_PlayOnAwake: 0
|
||||
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 &1410207949
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1410207950}
|
||||
- component: {fileID: 1410207951}
|
||||
m_Layer: 0
|
||||
m_Name: Loop
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1410207950
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1410207949}
|
||||
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: []
|
||||
m_Father: {fileID: 40915750}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!82 &1410207951
|
||||
AudioSource:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1410207949}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
OutputAudioMixerGroup: {fileID: 8866379113506573767, guid: b14347481450a234a852407119bfecb4, type: 2}
|
||||
m_audioClip: {fileID: 0}
|
||||
m_PlayOnAwake: 0
|
||||
m_Volume: 1
|
||||
m_Pitch: 1
|
||||
Loop: 1
|
||||
Mute: 0
|
||||
Spatialize: 0
|
||||
SpatializePostEffects: 0
|
||||
Priority: 128
|
||||
DopplerLevel: 1
|
||||
MinDistance: 1
|
||||
MaxDistance: 500
|
||||
Pan2D: 0
|
||||
rolloffMode: 0
|
||||
BypassEffects: 0
|
||||
BypassListenerEffects: 0
|
||||
BypassReverbZones: 0
|
||||
rolloffCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 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 &1450136609
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -3987,7 +4807,6 @@ MonoBehaviour:
|
||||
_variableStorage: {fileID: 667130563}
|
||||
dialogueViews:
|
||||
- {fileID: 1584263515}
|
||||
- {fileID: 973075154}
|
||||
- {fileID: 494300780}
|
||||
startNode: Start
|
||||
startAutomatically: 0
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using AibisDream.Utility;
|
||||
using UnityEngine;
|
||||
using Yarn.Unity;
|
||||
|
||||
@@ -10,6 +9,12 @@ namespace AibisDream
|
||||
{
|
||||
public override void RunLine(LocalizedLine dialogueLine, Action onDialogueLineFinished)
|
||||
{
|
||||
var voicePath = dialogueLine.GetCharacterVo().voicePath;
|
||||
Debug.Log(voicePath);
|
||||
if (!string.IsNullOrWhiteSpace(voicePath))
|
||||
{
|
||||
AudioManager.Instance.RandomPlayVoice(voicePath);
|
||||
}
|
||||
base.RunLine(dialogueLine, onDialogueLineFinished);
|
||||
}
|
||||
|
||||
@@ -25,7 +30,7 @@ namespace AibisDream
|
||||
|
||||
public override void UserRequestedViewAdvancement()
|
||||
{
|
||||
base.UserRequestedViewAdvancement();
|
||||
AudioManager.Instance.StopVoice();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using AibisDream.Kit;
|
||||
using AibisDream.Utility;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
|
||||
@@ -20,7 +20,9 @@ namespace AibisDream
|
||||
return;
|
||||
}
|
||||
|
||||
HandleLineOutput(dialogueLine, onDialogueLineFinished);
|
||||
Action jumpVoice = SkipVoice;
|
||||
HandleLineOutput(dialogueLine, jumpVoice, onDialogueLineFinished);
|
||||
HandleVoiceOutput(dialogueLine);
|
||||
|
||||
if (DialogController.Instance.quickRunMode)
|
||||
{
|
||||
@@ -28,13 +30,28 @@ namespace AibisDream
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleLineOutput(LocalizedLine dialogueLine, Action onDialogueLineFinished)
|
||||
private void HandleLineOutput(LocalizedLine dialogueLine, Action onTextShowed, Action onDialogueLineFinished)
|
||||
{
|
||||
// 对话系统正在交谈状态
|
||||
DialogController.Instance.IsTalking = true;
|
||||
|
||||
DialogCanvasManager.GetCurView().ShowLine(dialogueLine.TextWithoutCharacterName.Text,
|
||||
dialogueLine.GetCharacterVo(), onDialogueLineFinished, dialogueLine.IsAutoSkipLine());
|
||||
dialogueLine.GetCharacterVo(), onDialogueLineFinished, onTextShowed, dialogueLine.IsAutoSkipLine());
|
||||
}
|
||||
|
||||
private void HandleVoiceOutput(LocalizedLine dialogueLine)
|
||||
{
|
||||
// 播放语音
|
||||
var voicePath = dialogueLine.GetCharacterVo().voicePath;
|
||||
if (!string.IsNullOrWhiteSpace(voicePath))
|
||||
{
|
||||
AudioManager.Instance.RandomPlayVoice(voicePath);
|
||||
}
|
||||
}
|
||||
|
||||
private void SkipVoice()
|
||||
{
|
||||
AudioManager.Instance.StopVoice();
|
||||
}
|
||||
|
||||
public override void RunOptions(DialogueOption[] dialogueOptions, Action<int> onOptionSelected)
|
||||
@@ -74,6 +91,7 @@ namespace AibisDream
|
||||
|
||||
if (!DialogCanvasManager.GetCurView().TrySkipLine())
|
||||
{
|
||||
AudioManager.Instance.StopVoice();
|
||||
requestInterrupt.Invoke();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 76c766d9b810dd64a90fd22657b5f64a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9f348632c8d94f6bb59775319acabb52
|
||||
timeCreated: 1726473982
|
||||
@@ -0,0 +1,13 @@
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
public class AudioKit : Singleton<AudioKit>
|
||||
{
|
||||
public AudioPlayer MusicPlayer { get; private set; }
|
||||
public AudioPlayer VoicePlayer { get; private set; }
|
||||
|
||||
public override void OnSingletonInit()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ff78cd5fd6a74902945f20346bc2036d
|
||||
timeCreated: 1726662840
|
||||
@@ -0,0 +1,246 @@
|
||||
using System.Collections;
|
||||
using AibisDream.Kit;
|
||||
using UnityEngine;
|
||||
using Yarn.Unity;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
public class AudioManager : Singleton<AudioManager>
|
||||
{
|
||||
private const string LoopSource = "Loop";
|
||||
private const string InteractionSource = "Interaction";
|
||||
private const string VoiceSource = "Voice";
|
||||
private const string MemorySource = "Memery";
|
||||
private const string Amb1Source = "Amb1";
|
||||
private const string Amb2Source = "Amb2";
|
||||
|
||||
private AudioSource _loopSource;
|
||||
private AudioSource _interactionSource;
|
||||
private AudioSource _voiceSource;
|
||||
private AudioSource _memorySource;
|
||||
private AudioSource _amb1Source;
|
||||
private AudioSource _amb2Source;
|
||||
|
||||
public float fadeTime;
|
||||
|
||||
public override void OnSingletonInit()
|
||||
{
|
||||
_loopSource = transform.Find(LoopSource).GetComponent<AudioSource>();
|
||||
_interactionSource = transform.Find(InteractionSource).GetComponent<AudioSource>();
|
||||
_voiceSource = transform.Find(VoiceSource).GetComponent<AudioSource>();
|
||||
_memorySource = transform.Find(MemorySource).GetComponent<AudioSource>();
|
||||
_amb1Source = transform.Find(Amb1Source).GetComponent<AudioSource>();
|
||||
_amb2Source = transform.Find(Amb2Source).GetComponent<AudioSource>();
|
||||
}
|
||||
|
||||
#region 随机播放
|
||||
|
||||
public void RandomPlayVoice(string voicePath)
|
||||
{
|
||||
AudioClip clip = RandomLoadAudioClip(3, $"Audio/{voicePath}");
|
||||
_voiceSource.clip = clip;
|
||||
_voiceSource.Play();
|
||||
}
|
||||
|
||||
[YarnCommand("random_play_interaction")]
|
||||
public static void RandomPlayInteraction(string interactionName)
|
||||
{
|
||||
AudioClip clip = Instance.RandomLoadAudioClip(3, $"Audio/{interactionName}");
|
||||
if (clip == null)
|
||||
{
|
||||
clip = Resources.Load<AudioClip>($"Audio/{interactionName}");
|
||||
}
|
||||
|
||||
Instance._voiceSource.clip = clip;
|
||||
Instance._voiceSource.Play();
|
||||
}
|
||||
|
||||
public void StopVoice()
|
||||
{
|
||||
if (_voiceSource.isPlaying)
|
||||
{
|
||||
_voiceSource.Stop();
|
||||
}
|
||||
}
|
||||
|
||||
[YarnCommand("stop_interaction")]
|
||||
public static void StopInteraction()
|
||||
{
|
||||
Instance._interactionSource.Stop();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 播放唱歌
|
||||
|
||||
public void PlayVoice(string actorName, string voiceName)
|
||||
{
|
||||
AudioClip clip = RandomLoadAudioClip(3, $"Audio/{actorName}");
|
||||
_voiceSource.clip = clip;
|
||||
_voiceSource.Play();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 循环播放
|
||||
|
||||
[YarnCommand("play_loop_audio")]
|
||||
public static void PlayLoopAudio(string audioName)
|
||||
{
|
||||
AudioClip clip = Resources.Load<AudioClip>($"Audio/{audioName}");
|
||||
if (clip == null)
|
||||
{
|
||||
clip = Instance.RandomLoadAudioClip(3, $"Audio/{audioName}");
|
||||
}
|
||||
|
||||
Instance._loopSource.clip = clip;
|
||||
Instance._loopSource.Play();
|
||||
}
|
||||
|
||||
[YarnCommand("pause_loop_audio")]
|
||||
public static void PauseLoopAudio()
|
||||
{
|
||||
Instance._loopSource.Pause();
|
||||
}
|
||||
|
||||
public void ContinueLoopAudio()
|
||||
{
|
||||
_loopSource.UnPause();
|
||||
}
|
||||
|
||||
public bool IsLoopPlaying()
|
||||
{
|
||||
return _loopSource.isPlaying;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 背景音循环播放
|
||||
|
||||
[YarnCommand("play_amb1_audio")]
|
||||
public static void PlayAmb1Audio(string audioName)
|
||||
{
|
||||
Instance._amb1Source.Stop();
|
||||
AudioClip clip = Resources.Load<AudioClip>($"Audio/{audioName}");
|
||||
Instance._amb1Source.clip = clip;
|
||||
Instance._amb1Source.volume = 0f;
|
||||
Instance._amb1Source.Play();
|
||||
Instance.StartCoroutine(Instance.FadeTo(1.0f, Instance.fadeTime, Instance._amb1Source));
|
||||
}
|
||||
|
||||
[YarnCommand("pause_amb1_audio")]
|
||||
public static void PauseAmb1Audio()
|
||||
{
|
||||
Instance._amb1Source.Pause();
|
||||
}
|
||||
|
||||
[YarnCommand("fade_out_amb1_audio")]
|
||||
public static void FadeOutAmb1Audio()
|
||||
{
|
||||
Instance.StartCoroutine(Instance.FadeTo(0.0f, Instance.fadeTime, Instance._amb1Source));
|
||||
}
|
||||
|
||||
public void ContinueAmb1Audio()
|
||||
{
|
||||
_amb1Source.volume = 0.0f;
|
||||
_amb1Source.UnPause();
|
||||
StartCoroutine(FadeTo(1.0f, fadeTime, _amb1Source));
|
||||
}
|
||||
|
||||
[YarnCommand("play_amb2_audio")]
|
||||
public static void PlayAmb2Audio(string audioName)
|
||||
{
|
||||
Instance._amb2Source.Stop();
|
||||
AudioClip clip = Resources.Load<AudioClip>($"Audio/{audioName}");
|
||||
Instance._amb2Source.clip = clip;
|
||||
Instance._amb2Source.volume = 0f;
|
||||
Instance._amb2Source.Play();
|
||||
Instance.StartCoroutine(Instance.FadeTo(1.0f, Instance.fadeTime, Instance._amb2Source));
|
||||
}
|
||||
|
||||
[YarnCommand("pause_amb2_audio")]
|
||||
public static void PauseAmb2Audio()
|
||||
{
|
||||
Instance._amb2Source.Pause();
|
||||
}
|
||||
|
||||
[YarnCommand("fade_out_amb2_audio")]
|
||||
public static void FadeOutAmb2Audio()
|
||||
{
|
||||
Instance.StartCoroutine(Instance.FadeTo(0.0f, Instance.fadeTime, Instance._amb2Source));
|
||||
}
|
||||
|
||||
public void ContinueAmb2Audio()
|
||||
{
|
||||
_amb2Source.volume = 0.0f;
|
||||
_amb2Source.UnPause();
|
||||
StartCoroutine(FadeTo(1.0f, fadeTime, _amb2Source));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 播放记忆
|
||||
|
||||
public void PlayMemoryAudio(string memoryName)
|
||||
{
|
||||
StartCoroutine(AsyncPlayMemoryAudio(memoryName));
|
||||
}
|
||||
|
||||
public void PauseMemoryAudio()
|
||||
{
|
||||
_memorySource.Pause();
|
||||
}
|
||||
|
||||
public void ContinueMemoryAudio()
|
||||
{
|
||||
_memorySource.volume = 0.0f;
|
||||
_memorySource.Play();
|
||||
StartCoroutine(FadeTo(1.0f, fadeTime, _memorySource));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public void FadeInLoopAudio(string audioName)
|
||||
{
|
||||
AudioClip clip = Resources.Load<AudioClip>(audioName);
|
||||
_loopSource.clip = clip;
|
||||
_loopSource.volume = 0.0f;
|
||||
_loopSource.Play();
|
||||
StartCoroutine(FadeTo(1.0f, 5f, _loopSource));
|
||||
}
|
||||
|
||||
private IEnumerator FadeTo(float targetVolume, float duration, AudioSource audioSource)
|
||||
{
|
||||
float startVolume = audioSource.volume;
|
||||
float timeElapsed = 0f;
|
||||
|
||||
while (timeElapsed < duration)
|
||||
{
|
||||
timeElapsed += Time.deltaTime;
|
||||
audioSource.volume = Mathf.Lerp(startVolume, targetVolume, timeElapsed / duration);
|
||||
yield return null;
|
||||
}
|
||||
|
||||
audioSource.volume = targetVolume;
|
||||
}
|
||||
|
||||
private AudioClip RandomLoadAudioClip(int audioSize, string path)
|
||||
{
|
||||
int randomIndex = Random.Range(0, audioSize) + 1;
|
||||
return Resources.Load<AudioClip>($"{path}_{randomIndex}");
|
||||
}
|
||||
|
||||
private IEnumerator AsyncPlayMemoryAudio(string memoryName)
|
||||
{
|
||||
AudioClip intro = Resources.Load<AudioClip>($"Audio/mem_play");
|
||||
AudioClip loop = Resources.Load<AudioClip>($"Audio/{memoryName}");
|
||||
_memorySource.clip = intro;
|
||||
_memorySource.loop = false;
|
||||
_memorySource.Play();
|
||||
yield return new WaitForSeconds(intro.length);
|
||||
_memorySource.clip = loop;
|
||||
_memorySource.loop = true;
|
||||
_memorySource.Play();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d02d13e0ef27eb544b62d5a8d296f2ee
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,26 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
public class AudioPlayer : IPoolable, IPoolType
|
||||
{
|
||||
#region 对象池功能
|
||||
|
||||
public void OnRecycled()
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
public bool IsRecycled { get; set; }
|
||||
|
||||
public void Recycle2Cache()
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5c877314dfb3460d91eef3edfe2786c6
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace AibisDream.Config
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
public class Character
|
||||
{
|
||||
@@ -1,9 +1,8 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using AibisDream.Utility;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream.Config
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
public class ConfigUtil : SingletonBase<ConfigUtil>
|
||||
{
|
||||
@@ -18,7 +17,10 @@ namespace AibisDream.Config
|
||||
/// </summary>
|
||||
private ConfigUtil() {}
|
||||
|
||||
public void InitConfig()
|
||||
/// <summary>
|
||||
/// 调用时初始化
|
||||
/// </summary>
|
||||
public override void OnSingletonInit()
|
||||
{
|
||||
InitBaseConfig();
|
||||
InitCharacterConfig();
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8a7a8d52cd2e49844889aa5d550c741c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e456fcaf06fef1a4099cceb5a2c31031
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,23 @@
|
||||
/*
|
||||
* 自定义对象工厂:相关对象是 自己定义
|
||||
*/
|
||||
|
||||
using System;
|
||||
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
public class CustomObjectFactory<T> : IObjectFactory<T>
|
||||
{
|
||||
protected readonly Func<T> factoryMethod;
|
||||
|
||||
public CustomObjectFactory(Func<T> vFactoryMethod)
|
||||
{
|
||||
factoryMethod = vFactoryMethod;
|
||||
}
|
||||
|
||||
public T Create()
|
||||
{
|
||||
return factoryMethod();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b1dd302925fb4aafbf6f8f41c1928002
|
||||
timeCreated: 1726402106
|
||||
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
* 默认对象工厂:相关对象是通过New 出来的
|
||||
*/
|
||||
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
public class DefaultObjectFactory<T> : IObjectFactory<T> where T : new()
|
||||
{
|
||||
public T Create()
|
||||
{
|
||||
return new T();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 91f9bd47b23d4c138e50967ae5cba579
|
||||
timeCreated: 1726402317
|
||||
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* 对象工厂接口
|
||||
*/
|
||||
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
public interface IObjectFactory<T>
|
||||
{
|
||||
/// <summary>
|
||||
/// 创建对象
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
T Create();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 68771bacd7dd4ebd80ed27a572546699
|
||||
timeCreated: 1726401919
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2afd2e11ccf1fb042a69e4031c68050b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* 对象池接口
|
||||
*/
|
||||
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
public interface IPool<T>
|
||||
{
|
||||
/// <summary>
|
||||
/// 分配对象
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
T Allocate();
|
||||
|
||||
/// <summary>
|
||||
/// 回收对象
|
||||
/// </summary>
|
||||
/// <param name="obj"></param>
|
||||
/// <returns></returns>
|
||||
bool Recycle(T obj);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eadd9e4584a70e046aa549a857ddad27
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,11 @@
|
||||
/*
|
||||
* 对象池回收
|
||||
*/
|
||||
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
public interface IPoolType
|
||||
{
|
||||
void Recycle2Cache();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cf686abbf8da2534ca2f17103957e81f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,12 @@
|
||||
/*
|
||||
* 对象池对象接口
|
||||
*/
|
||||
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
public interface IPoolable
|
||||
{
|
||||
void OnRecycled();
|
||||
bool IsRecycled { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 65b1753af3e933c46bdfc117c8ef86a2
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* 基础对象池
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
public abstract class Pool<T> : IPool<T>
|
||||
{
|
||||
#region ICountObserverable
|
||||
|
||||
/// <summary>
|
||||
/// Gets the current count.
|
||||
/// </summary>
|
||||
/// <value>The current count.</value>
|
||||
public int CurCount => mCacheStack.Count;
|
||||
|
||||
#endregion
|
||||
|
||||
protected IObjectFactory<T> mFactory;
|
||||
|
||||
public void SetObjectFactory(IObjectFactory<T> factory)
|
||||
{
|
||||
mFactory = factory;
|
||||
}
|
||||
|
||||
public void SetFactoryMethod(Func<T> factoryMethod)
|
||||
{
|
||||
mFactory = new CustomObjectFactory<T>(factoryMethod);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 存储相关数据的栈
|
||||
/// </summary>
|
||||
protected readonly Stack<T> mCacheStack = new Stack<T>();
|
||||
|
||||
public void Clear(Action<T> onClearItem = null)
|
||||
{
|
||||
if (onClearItem != null)
|
||||
{
|
||||
foreach (var poolObject in mCacheStack)
|
||||
{
|
||||
onClearItem(poolObject);
|
||||
}
|
||||
}
|
||||
|
||||
mCacheStack.Clear();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// default is 5
|
||||
/// </summary>
|
||||
protected int mMaxCount = 12;
|
||||
|
||||
public virtual T Allocate()
|
||||
{
|
||||
return mCacheStack.Count == 0
|
||||
? mFactory.Create()
|
||||
: mCacheStack.Pop();
|
||||
}
|
||||
|
||||
public abstract bool Recycle(T obj);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f98e7b24d3f13954e992bed9e8c0ebbe
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,116 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
public class SafeObjectPool<T> : Pool<T>, ISingleton where T : IPoolable, new()
|
||||
{
|
||||
#region Singleton
|
||||
|
||||
void ISingleton.OnSingletonInit()
|
||||
{
|
||||
}
|
||||
|
||||
protected SafeObjectPool()
|
||||
{
|
||||
mFactory = new DefaultObjectFactory<T>();
|
||||
}
|
||||
|
||||
public static SafeObjectPool<T> Instance => SingletonProp<SafeObjectPool<T>>.Instance;
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
SingletonProp<SafeObjectPool<T>>.Dispose();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Init the specified maxCount and initCount.
|
||||
/// </summary>
|
||||
/// <param name="maxCount">Max Cache count.</param>
|
||||
/// <param name="initCount">Init Cache count.</param>
|
||||
public void Init(int maxCount, int initCount)
|
||||
{
|
||||
MaxCacheCount = maxCount;
|
||||
|
||||
if (maxCount > 0)
|
||||
{
|
||||
initCount = Mathf.Min(maxCount, initCount);
|
||||
}
|
||||
|
||||
if (CurCount < initCount)
|
||||
{
|
||||
for (var i = CurCount; i < initCount; ++i)
|
||||
{
|
||||
Recycle(new T());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the max cache count.
|
||||
/// </summary>
|
||||
/// <value>The max cache count.</value>
|
||||
public int MaxCacheCount
|
||||
{
|
||||
get { return mMaxCount; }
|
||||
set
|
||||
{
|
||||
mMaxCount = value;
|
||||
|
||||
if (mCacheStack != null)
|
||||
{
|
||||
if (mMaxCount > 0)
|
||||
{
|
||||
if (mMaxCount < mCacheStack.Count)
|
||||
{
|
||||
int removeCount = mCacheStack.Count - mMaxCount;
|
||||
while (removeCount > 0)
|
||||
{
|
||||
mCacheStack.Pop();
|
||||
--removeCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Allocate T instance.
|
||||
/// </summary>
|
||||
public override T Allocate()
|
||||
{
|
||||
var result = base.Allocate();
|
||||
result.IsRecycled = false;
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recycle the T instance
|
||||
/// </summary>
|
||||
/// <param name="t">T.</param>
|
||||
public override bool Recycle(T t)
|
||||
{
|
||||
if (t == null || t.IsRecycled)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mMaxCount > 0)
|
||||
{
|
||||
if (mCacheStack.Count >= mMaxCount)
|
||||
{
|
||||
t.OnRecycled();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
t.IsRecycled = true;
|
||||
t.OnRecycled();
|
||||
mCacheStack.Push(t);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c3733f06049b4b3c9b01c18e05ef3daa
|
||||
timeCreated: 1726408539
|
||||
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* 普通对象池
|
||||
*/
|
||||
|
||||
using System;
|
||||
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
public class SimpleObjectPool<T> : Pool<T>
|
||||
{
|
||||
readonly Action<T> mResetMethod;
|
||||
|
||||
public SimpleObjectPool(Func<T> factoryMethod, Action<T> resetMethod = null, int initCount = 0)
|
||||
{
|
||||
mFactory = new CustomObjectFactory<T>(factoryMethod);
|
||||
mResetMethod = resetMethod;
|
||||
|
||||
for (var i = 0; i < initCount; i++)
|
||||
{
|
||||
mCacheStack.Push(mFactory.Create());
|
||||
}
|
||||
}
|
||||
|
||||
public override bool Recycle(T obj)
|
||||
{
|
||||
mResetMethod?.Invoke(obj);
|
||||
|
||||
mCacheStack.Push(obj);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 30dfcf9d6a8f44dd9bc6bb8052994e10
|
||||
timeCreated: 1726402817
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d7c2711ad71b0134cb18efabda647c41
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* 单例接口
|
||||
*/
|
||||
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
/// <summary>
|
||||
/// 单例接口
|
||||
/// </summary>
|
||||
public interface ISingleton
|
||||
{
|
||||
/// <summary>
|
||||
/// 单例初始化(继承当前接口的类都需要实现该方法)
|
||||
/// </summary>
|
||||
void OnSingletonInit();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a230db405379d3a428a5cba018978da9
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+7
-2
@@ -1,8 +1,8 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
public class Singleton<T> : MonoBehaviour where T : Singleton<T>
|
||||
public abstract class Singleton<T> : MonoBehaviour, ISingleton where T : Singleton<T>
|
||||
{
|
||||
public static T Instance { get; private set; }
|
||||
|
||||
@@ -15,9 +15,14 @@ namespace AibisDream
|
||||
else
|
||||
{
|
||||
Instance = (T)this;
|
||||
OnSingletonInit();
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void OnSingletonInit()
|
||||
{
|
||||
}
|
||||
|
||||
public static bool IsInitialized => Instance != null;
|
||||
|
||||
protected virtual void OnDestroy()
|
||||
+5
-2
@@ -1,9 +1,9 @@
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
namespace AibisDream.Utility
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
public abstract class SingletonBase<T> where T : SingletonBase<T>
|
||||
public abstract class SingletonBase<T> : ISingleton where T : SingletonBase<T>
|
||||
{
|
||||
private static T _instance;
|
||||
|
||||
@@ -20,9 +20,12 @@ namespace AibisDream.Utility
|
||||
throw new Exception("Non-public ctor() not found!");
|
||||
// 调用构造方法
|
||||
_instance = ctor.Invoke(null) as T;
|
||||
_instance?.OnSingletonInit();
|
||||
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
|
||||
public abstract void OnSingletonInit();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
namespace AibisDream.Kit
|
||||
{
|
||||
public class SingletonProp<T> where T : class, ISingleton
|
||||
{
|
||||
/// <summary>
|
||||
/// 静态实例
|
||||
/// </summary>
|
||||
private static T _instance;
|
||||
|
||||
/// <summary>
|
||||
/// 标签锁
|
||||
/// </summary>
|
||||
private static readonly object _lock = new();
|
||||
|
||||
public static T Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
lock (_lock)
|
||||
{
|
||||
if (_instance == null)
|
||||
{
|
||||
// 先获取所有非public的构造方法
|
||||
var ctors = typeof(T).GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic);
|
||||
// 从ctors中获取无参的构造方法
|
||||
var ctor = Array.Find(ctors, c => c.GetParameters().Length == 0);
|
||||
if (ctor == null)
|
||||
throw new Exception("Non-public ctor() not found!");
|
||||
// 调用构造方法
|
||||
_instance = ctor.Invoke(null) as T;
|
||||
_instance?.OnSingletonInit();
|
||||
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 资源释放
|
||||
/// </summary>
|
||||
public static void Dispose()
|
||||
{
|
||||
_instance = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6c24ee94a9ee48aca0977131b6d772e0
|
||||
timeCreated: 1726411869
|
||||
@@ -1,5 +1,5 @@
|
||||
using System.Collections;
|
||||
using AibisDream.Config;
|
||||
using AibisDream.Kit;
|
||||
using UnityEngine;
|
||||
using Yarn.Unity;
|
||||
|
||||
@@ -24,8 +24,6 @@ namespace AibisDream
|
||||
|
||||
public void Start()
|
||||
{
|
||||
ConfigUtil.Instance.InitConfig();
|
||||
|
||||
if (runMode == RunMode.Test)
|
||||
{
|
||||
MainUIController.Instance.TVFadeOut(1);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections;
|
||||
using AibisDream.Kit;
|
||||
using UnityEngine.AddressableAssets;
|
||||
using UnityEngine.ResourceManagement.AsyncOperations;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections;
|
||||
using AibisDream.Kit;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using System;
|
||||
using AibisDream.Config;
|
||||
using AibisDream.Kit;
|
||||
using AibisDream.Utility;
|
||||
using Febucci.UI;
|
||||
using TMPro;
|
||||
@@ -83,8 +83,9 @@ namespace AibisDream
|
||||
/// <param name="dialogLine">对话内容</param>
|
||||
/// <param name="character">角色内容</param>
|
||||
/// <param name="nextStep">下一步</param>
|
||||
/// <param name="onTextShowed">文字展示结束后触发</param>
|
||||
/// <param name="isAutoSkip">是否自动跳过,默认为false</param>
|
||||
public virtual void ShowLine(string dialogLine, CharacterVo character, Action nextStep, bool isAutoSkip = false)
|
||||
public virtual void ShowLine(string dialogLine, CharacterVo character, Action nextStep, Action onTextShowed ,bool isAutoSkip = false)
|
||||
{
|
||||
gameObject.SetActive(true);
|
||||
// 没有dialogText说明不能显示对话,直接跳过
|
||||
@@ -107,6 +108,7 @@ namespace AibisDream
|
||||
// 自动跳过的回调很难独立Remove,只能全部清空再注册,下策
|
||||
dialogText.onTextShowed.RemoveAllListeners();
|
||||
dialogText.onTextShowed.AddListener(() => nextArray.gameObject.SetActive(true));
|
||||
dialogText.onTextShowed.AddListener(() => onTextShowed?.Invoke());
|
||||
|
||||
// 执行自动跳过结局
|
||||
if (isAutoSkip)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using AibisDream.Config;
|
||||
using AibisDream.Kit;
|
||||
using UnityEngine;
|
||||
using Yarn.Unity;
|
||||
|
||||
@@ -14,7 +14,9 @@ namespace AibisDream
|
||||
|
||||
private IDialogView _normalBox;
|
||||
private IDialogView _playerBubble;
|
||||
|
||||
private IDialogView _actorBubble;
|
||||
|
||||
// 应该会有自定义位置的泡泡,但目前还没想好怎么做
|
||||
private Dictionary<string, IDialogView> _customBubblePool = new();
|
||||
|
||||
@@ -37,7 +39,8 @@ namespace AibisDream
|
||||
_dialogViews.ForEach(item => item.HideDialog());
|
||||
}
|
||||
|
||||
public void ShowLine(string dialogLine, CharacterVo character, Action nextStep, bool isAutoSkip = false)
|
||||
public void ShowLine(string dialogLine, CharacterVo character, Action nextStep, Action onTextShowed,
|
||||
bool isAutoSkip = false)
|
||||
{
|
||||
gameObject.SetActive(true);
|
||||
// 根据角色信息气泡
|
||||
@@ -45,7 +48,7 @@ namespace AibisDream
|
||||
// 处理其他泡泡
|
||||
ProcessOtherBox();
|
||||
// 显示对话
|
||||
_currentView.ShowLine(dialogLine, character, nextStep, isAutoSkip);
|
||||
_currentView.ShowLine(dialogLine, character, nextStep, onTextShowed, isAutoSkip);
|
||||
}
|
||||
|
||||
public void ShowOptions(DialogueOption[] dialogueOptions, Action<int> onOptionSelected)
|
||||
@@ -98,4 +101,3 @@ namespace AibisDream
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using AibisDream.Kit;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
@@ -18,9 +19,8 @@ namespace AibisDream
|
||||
|
||||
private GameObject _quickTalkButton;
|
||||
|
||||
protected override void Awake()
|
||||
public override void OnSingletonInit()
|
||||
{
|
||||
base.Awake();
|
||||
InitDialogViews();
|
||||
InitQuickTalkButton();
|
||||
// 默认为旧Box
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using Febucci.UI;
|
||||
using System;
|
||||
using AibisDream.Kit;
|
||||
using AibisDream.Utility;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
@@ -35,9 +36,8 @@ namespace AibisDream
|
||||
|
||||
private bool _skipLineDelay;
|
||||
|
||||
protected override void Awake()
|
||||
public override void OnSingletonInit()
|
||||
{
|
||||
base.Awake();
|
||||
// 获取预制体
|
||||
choiceButtonPrefab = Resources.Load<GameObject>("Prefabs/UI/Choice Button");
|
||||
// 获取子物体
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
using System;
|
||||
using AibisDream.Config;
|
||||
using AibisDream.Kit;
|
||||
using Yarn.Unity;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
public interface IDialogView
|
||||
{
|
||||
public void ShowLine(string dialogLine, CharacterVo character, Action nextStep, bool isAutoSkip = false);
|
||||
public void ShowLine(string dialogLine, CharacterVo character, Action nextStep, Action onTextShowed = null,
|
||||
bool isAutoSkip = false);
|
||||
|
||||
public void ShowOptions(DialogueOption[] dialogueOptions, Action<int> onOptionSelected);
|
||||
|
||||
@@ -15,4 +16,3 @@ namespace AibisDream
|
||||
public bool TrySkipLine();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections;
|
||||
using AibisDream.Kit;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
@@ -21,9 +22,8 @@ namespace AibisDream
|
||||
|
||||
#endregion
|
||||
|
||||
protected override void Awake()
|
||||
public override void OnSingletonInit()
|
||||
{
|
||||
base.Awake();
|
||||
InitChildObj();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using AibisDream.Kit;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using AibisDream.Config;
|
||||
using AibisDream.Kit;
|
||||
using Yarn;
|
||||
using Yarn.Markup;
|
||||
using Yarn.Unity;
|
||||
|
||||
@@ -0,0 +1,279 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!243 &-6773993072664640036
|
||||
AudioMixerGroupController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Memery
|
||||
m_AudioMixer: {fileID: 24100000}
|
||||
m_GroupID: 165865fd7a8064545ba2d0093d307fe0
|
||||
m_Children: []
|
||||
m_Volume: 870445f6867303e43a8d5b312a6bdeb9
|
||||
m_Pitch: f497edbcaeaae14478659019be9d914c
|
||||
m_Send: 00000000000000000000000000000000
|
||||
m_Effects:
|
||||
- {fileID: 190805140530363889}
|
||||
m_UserColorIndex: 0
|
||||
m_Mute: 0
|
||||
m_Solo: 0
|
||||
m_BypassEffects: 0
|
||||
--- !u!243 &-4767431408014039957
|
||||
AudioMixerGroupController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Amb2
|
||||
m_AudioMixer: {fileID: 24100000}
|
||||
m_GroupID: 8e51f489befeaf44fb45969c28e61fa6
|
||||
m_Children: []
|
||||
m_Volume: 99373ebf84fee854c9532604faa96fc7
|
||||
m_Pitch: 36b3631d5eba2304bada4c467fb982b4
|
||||
m_Send: 00000000000000000000000000000000
|
||||
m_Effects:
|
||||
- {fileID: -2476848365125548349}
|
||||
m_UserColorIndex: 0
|
||||
m_Mute: 0
|
||||
m_Solo: 0
|
||||
m_BypassEffects: 0
|
||||
--- !u!244 &-3087767764466786958
|
||||
AudioMixerEffectController:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_EffectID: 043f96faf171b5946ac6eedaa56e2297
|
||||
m_EffectName: Attenuation
|
||||
m_MixLevel: 0d67c1e982760b84a8300c9eeba0677c
|
||||
m_Parameters: []
|
||||
m_SendTarget: {fileID: 0}
|
||||
m_EnableWetMix: 0
|
||||
m_Bypass: 0
|
||||
--- !u!244 &-2476848365125548349
|
||||
AudioMixerEffectController:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_EffectID: a068c3eacfd11c74e9cf79d452f09d99
|
||||
m_EffectName: Attenuation
|
||||
m_MixLevel: 149e8876472bac042b683518ce1f687d
|
||||
m_Parameters: []
|
||||
m_SendTarget: {fileID: 0}
|
||||
m_EnableWetMix: 0
|
||||
m_Bypass: 0
|
||||
--- !u!243 &-2297450186869358485
|
||||
AudioMixerGroupController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Voice
|
||||
m_AudioMixer: {fileID: 24100000}
|
||||
m_GroupID: 69f606423af8261439c25d6668fca50f
|
||||
m_Children: []
|
||||
m_Volume: 085b8a687aa362c46a94e1fe0ee30d76
|
||||
m_Pitch: be48600ee044d7843b9a9be6007747ff
|
||||
m_Send: 00000000000000000000000000000000
|
||||
m_Effects:
|
||||
- {fileID: 5517921842288305647}
|
||||
m_UserColorIndex: 0
|
||||
m_Mute: 0
|
||||
m_Solo: 0
|
||||
m_BypassEffects: 0
|
||||
--- !u!243 &-1154322574682727772
|
||||
AudioMixerGroupController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Interaction
|
||||
m_AudioMixer: {fileID: 24100000}
|
||||
m_GroupID: 0d7ba4f74a7f6c649866c7678a769d9d
|
||||
m_Children: []
|
||||
m_Volume: 40af4fa954019f545a5f6e51bc960b69
|
||||
m_Pitch: 538ac5b0ac48c244b8fc8d34975d513c
|
||||
m_Send: 00000000000000000000000000000000
|
||||
m_Effects:
|
||||
- {fileID: 6947884131867591565}
|
||||
m_UserColorIndex: 0
|
||||
m_Mute: 0
|
||||
m_Solo: 0
|
||||
m_BypassEffects: 0
|
||||
--- !u!241 &24100000
|
||||
AudioMixerController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Main Mixer
|
||||
m_OutputGroup: {fileID: 0}
|
||||
m_MasterGroup: {fileID: 24300002}
|
||||
m_Snapshots:
|
||||
- {fileID: 24500006}
|
||||
m_StartSnapshot: {fileID: 24500006}
|
||||
m_SuspendThreshold: -80
|
||||
m_EnableSuspend: 1
|
||||
m_UpdateMode: 0
|
||||
m_ExposedParameters: []
|
||||
m_AudioMixerGroupViews:
|
||||
- guids:
|
||||
- d379c99ecfccd1d4ba005aa9fcb7d531
|
||||
- bd8e088216aa5484280055987b97478d
|
||||
- 0d7ba4f74a7f6c649866c7678a769d9d
|
||||
- 69f606423af8261439c25d6668fca50f
|
||||
- 165865fd7a8064545ba2d0093d307fe0
|
||||
- 11a4f8e0dff165d4286eb7bac8d09d7a
|
||||
- 8e51f489befeaf44fb45969c28e61fa6
|
||||
name: View
|
||||
m_CurrentViewIndex: 0
|
||||
m_TargetSnapshot: {fileID: 24500006}
|
||||
--- !u!243 &24300002
|
||||
AudioMixerGroupController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Master
|
||||
m_AudioMixer: {fileID: 24100000}
|
||||
m_GroupID: d379c99ecfccd1d4ba005aa9fcb7d531
|
||||
m_Children:
|
||||
- {fileID: 8866379113506573767}
|
||||
- {fileID: -1154322574682727772}
|
||||
- {fileID: -2297450186869358485}
|
||||
- {fileID: -6773993072664640036}
|
||||
- {fileID: 1773163451604355202}
|
||||
- {fileID: -4767431408014039957}
|
||||
m_Volume: 253e6efbbc79f314a8e098aefef4c9fc
|
||||
m_Pitch: 644f600ef4d0d694a89ae33abbcc0fe4
|
||||
m_Send: 00000000000000000000000000000000
|
||||
m_Effects:
|
||||
- {fileID: 24400004}
|
||||
m_UserColorIndex: 0
|
||||
m_Mute: 0
|
||||
m_Solo: 0
|
||||
m_BypassEffects: 0
|
||||
--- !u!244 &24400004
|
||||
AudioMixerEffectController:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_EffectID: 1537c4ecfb73a8444b1fe3775d246b67
|
||||
m_EffectName: Attenuation
|
||||
m_MixLevel: d031d67ce6025f543be601109eed5841
|
||||
m_Parameters: []
|
||||
m_SendTarget: {fileID: 0}
|
||||
m_EnableWetMix: 0
|
||||
m_Bypass: 0
|
||||
--- !u!245 &24500006
|
||||
AudioMixerSnapshotController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Snapshot
|
||||
m_AudioMixer: {fileID: 24100000}
|
||||
m_SnapshotID: 3ad1d787307658a4198746e8ac0249d4
|
||||
m_FloatValues:
|
||||
085b8a687aa362c46a94e1fe0ee30d76: -0.025777228
|
||||
m_TransitionOverrides: {}
|
||||
--- !u!244 &190805140530363889
|
||||
AudioMixerEffectController:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_EffectID: 14b68ae03e01fdd4bb249628cdccbec8
|
||||
m_EffectName: Attenuation
|
||||
m_MixLevel: 071fd38ff1b7fe04798d6bc12b5de963
|
||||
m_Parameters: []
|
||||
m_SendTarget: {fileID: 0}
|
||||
m_EnableWetMix: 0
|
||||
m_Bypass: 0
|
||||
--- !u!243 &1773163451604355202
|
||||
AudioMixerGroupController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Amb1
|
||||
m_AudioMixer: {fileID: 24100000}
|
||||
m_GroupID: 11a4f8e0dff165d4286eb7bac8d09d7a
|
||||
m_Children: []
|
||||
m_Volume: 4544ecf23f3594e4f8175fe7aef2aa2e
|
||||
m_Pitch: ef1f302dcdd87fa4d827d452ac89bceb
|
||||
m_Send: 00000000000000000000000000000000
|
||||
m_Effects:
|
||||
- {fileID: 1852471015961055103}
|
||||
m_UserColorIndex: 0
|
||||
m_Mute: 0
|
||||
m_Solo: 0
|
||||
m_BypassEffects: 0
|
||||
--- !u!244 &1852471015961055103
|
||||
AudioMixerEffectController:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_EffectID: ec128c0b5cd78784fa206b3abc79e06d
|
||||
m_EffectName: Attenuation
|
||||
m_MixLevel: 29e2408aa2feb884ca7895fcfd1bfc65
|
||||
m_Parameters: []
|
||||
m_SendTarget: {fileID: 0}
|
||||
m_EnableWetMix: 0
|
||||
m_Bypass: 0
|
||||
--- !u!244 &5517921842288305647
|
||||
AudioMixerEffectController:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_EffectID: fa7272190aa144940bc6c7a61f1df72b
|
||||
m_EffectName: Attenuation
|
||||
m_MixLevel: 92933f4546cc1e145aa24bb304eab0cb
|
||||
m_Parameters: []
|
||||
m_SendTarget: {fileID: 0}
|
||||
m_EnableWetMix: 0
|
||||
m_Bypass: 0
|
||||
--- !u!244 &6947884131867591565
|
||||
AudioMixerEffectController:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_EffectID: 72a6914944042184593dd44114ac35e2
|
||||
m_EffectName: Attenuation
|
||||
m_MixLevel: 7cdd1dd5e2744dd41a52cd67cdc8bfbe
|
||||
m_Parameters: []
|
||||
m_SendTarget: {fileID: 0}
|
||||
m_EnableWetMix: 0
|
||||
m_Bypass: 0
|
||||
--- !u!243 &8866379113506573767
|
||||
AudioMixerGroupController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Loop
|
||||
m_AudioMixer: {fileID: 24100000}
|
||||
m_GroupID: bd8e088216aa5484280055987b97478d
|
||||
m_Children: []
|
||||
m_Volume: 2c39503a310991949a29d1e9af882cf1
|
||||
m_Pitch: b8ddbb8d430eb7d448c857604824f835
|
||||
m_Send: 00000000000000000000000000000000
|
||||
m_Effects:
|
||||
- {fileID: -3087767764466786958}
|
||||
m_UserColorIndex: 0
|
||||
m_Mute: 0
|
||||
m_Solo: 0
|
||||
m_BypassEffects: 0
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b14347481450a234a852407119bfecb4
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 24100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,10 +1,10 @@
|
||||
通过key索引配置,中文名,人物角色(Player/MainActor/Aside),名称显示时的颜色,头像Pic路径,语音资源路径
|
||||
Key,Cn,Role,NameColor,HeadPicPath,VoicePath
|
||||
peipei,佩佩,MainActor,#00FFFF,peipei_head,peipei_voice
|
||||
me,我,Player,,me_head,me_voice
|
||||
peipei_novoice,胆怯女声,Aside,#00FFFF,,
|
||||
yingli_novoice,严厉女声,Aside,#FFCC00,,
|
||||
peipei,佩佩,MainActor,#00FFFF,peipei_head,voice_peipei
|
||||
me,我,Player,,me_head,voice_me
|
||||
peipei_novoice,胆怯女声,Aside,#00FFFF,,voice_peipei
|
||||
yingli_novoice,严厉女声,Aside,#FFCC00,,voice_yingli
|
||||
tutorial,教学,Aside,,,
|
||||
docter,儿科医生,Aside,#FFCC00,,
|
||||
peipei_child,童年佩佩,Aside,#00FFFF,,
|
||||
peipei_child,童年佩佩,Aside,#00FFFF,,voice_peipei
|
||||
unknown,???,Aside,#FFCC00,,
|
||||
|
||||
|
Reference in New Issue
Block a user