剧情
This commit is contained in:
@@ -73,9 +73,9 @@ Material:
|
||||
- _OutlineWidth: 0
|
||||
- _PerspectiveFilter: 0.875
|
||||
- _Reflectivity: 10
|
||||
- _ScaleRatioA: 1
|
||||
- _ScaleRatioB: 1
|
||||
- _ScaleRatioC: 1
|
||||
- _ScaleRatioA: 0.9
|
||||
- _ScaleRatioB: 0.73125
|
||||
- _ScaleRatioC: 0.73125
|
||||
- _ScaleX: 1
|
||||
- _ScaleY: 1
|
||||
- _ShaderFlags: 0
|
||||
@@ -168,9 +168,9 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04, type: 3}
|
||||
m_Name: SarasaGothicSC-Regular SDF ja Kanji-1
|
||||
m_EditorClassIdentifier:
|
||||
hashCode: 0
|
||||
hashCode: 1381821259
|
||||
material: {fileID: -9109684437157846903}
|
||||
materialHashCode: 0
|
||||
materialHashCode: -1017365621
|
||||
m_Version: 1.1.0
|
||||
m_SourceFontFileGUID: 2f42c1d891af66e4ba426c82a0075872
|
||||
m_SourceFontFile_EditorRef: {fileID: 12800000, guid: 2f42c1d891af66e4ba426c82a0075872,
|
||||
|
||||
@@ -60,9 +60,9 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04, type: 3}
|
||||
m_Name: SarasaGothicSC-Regular SDF ja Kanji-2
|
||||
m_EditorClassIdentifier:
|
||||
hashCode: 0
|
||||
hashCode: 1381821256
|
||||
material: {fileID: 532232478057347017}
|
||||
materialHashCode: 0
|
||||
materialHashCode: -527065496
|
||||
m_Version: 1.1.0
|
||||
m_SourceFontFileGUID: 2f42c1d891af66e4ba426c82a0075872
|
||||
m_SourceFontFile_EditorRef: {fileID: 12800000, guid: 2f42c1d891af66e4ba426c82a0075872,
|
||||
@@ -272081,9 +272081,9 @@ Material:
|
||||
- _OutlineWidth: 0
|
||||
- _PerspectiveFilter: 0.875
|
||||
- _Reflectivity: 10
|
||||
- _ScaleRatioA: 1
|
||||
- _ScaleRatioB: 1
|
||||
- _ScaleRatioC: 1
|
||||
- _ScaleRatioA: 0.9
|
||||
- _ScaleRatioB: 0.73125
|
||||
- _ScaleRatioC: 0.73125
|
||||
- _ScaleX: 1
|
||||
- _ScaleY: 1
|
||||
- _ShaderFlags: 0
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 1726182683, guid: a4865f1ab4504ed8a368670db22f409c, type: 3}
|
||||
m_Name: AOTGenerationConfig
|
||||
m_EditorClassIdentifier:
|
||||
automateBeforeBuilds: 0
|
||||
deleteDllAfterBuilds: 1
|
||||
AutomateForAllAOTPlatforms: 1
|
||||
automateForPlatforms: 0900000014000000
|
||||
supportSerializedTypes: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6ab65f5db0f188a4d85864c603336f50
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,136 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 772478971, guid: a4865f1ab4504ed8a368670db22f409c, type: 3}
|
||||
m_Name: ColorPaletteManager
|
||||
m_EditorClassIdentifier:
|
||||
colorPalettes:
|
||||
- name: Country
|
||||
showAlpha: 0
|
||||
colors:
|
||||
- {r: 0.776, g: 0.651, b: 0.349, a: 1}
|
||||
- {r: 0.863, g: 0.761, b: 0.631, a: 1}
|
||||
- {r: 0.91, g: 0.831, b: 0.686, a: 1}
|
||||
- {r: 0.961, g: 0.902, b: 0.788, a: 1}
|
||||
- {r: 0.753, g: 0.714, b: 0.667, a: 1}
|
||||
- {r: 0.478, g: 0.573, b: 0.431, a: 1}
|
||||
- {r: 0.314, g: 0.427, b: 0.31, a: 1}
|
||||
- {r: 0.596, g: 0.345, b: 0.235, a: 1}
|
||||
- {r: 0.545, g: 0.329, b: 0.318, a: 1}
|
||||
- {r: 0.647, g: 0.204, b: 0.227, a: 1}
|
||||
- {r: 0.435, g: 0.161, b: 0.063, a: 1}
|
||||
- {r: 0.357, g: 0.333, b: 0.278, a: 1}
|
||||
- {r: 0.976, g: 0.98, b: 0.961, a: 1}
|
||||
- {r: 0.165, g: 0.271, b: 0.11, a: 1}
|
||||
- name: Beach
|
||||
showAlpha: 0
|
||||
colors:
|
||||
- {r: 0.996, g: 0.906, b: 0.459, a: 1}
|
||||
- {r: 0.314, g: 0.592, b: 0.035, a: 1}
|
||||
- {r: 0.486, g: 0.953, b: 0.875, a: 1}
|
||||
- {r: 0.996, g: 0.82, b: 0.212, a: 1}
|
||||
- {r: 1, g: 0.769, b: 0.165, a: 1}
|
||||
- {r: 0.804, g: 0.835, b: 0.753, a: 1}
|
||||
- {r: 1, g: 0.769, b: 0.165, a: 1}
|
||||
- {r: 1, g: 0.702, b: 0.063, a: 1}
|
||||
- {r: 1, g: 0.898, b: 0.569, a: 1}
|
||||
- name: Fall
|
||||
showAlpha: 0
|
||||
colors:
|
||||
- {r: 0.82, g: 0.722, b: 0.318, a: 1}
|
||||
- {r: 0.537, g: 0.192, b: 0.153, a: 1}
|
||||
- {r: 0.996, g: 0.812, b: 0.012, a: 1}
|
||||
- {r: 1, g: 0.431, b: 0.02, a: 1}
|
||||
- {r: 0.937, g: 0.267, b: 0.094, a: 1}
|
||||
- {r: 0.42, g: 0.212, b: 0.18, a: 1}
|
||||
- {r: 0.992, g: 0.651, b: 0.004, a: 1}
|
||||
- {r: 0.89, g: 0.353, b: 0.086, a: 1}
|
||||
- {r: 1, g: 0.443, b: 0.004, a: 1}
|
||||
- {r: 0.682, g: 0.275, b: 0.137, a: 1}
|
||||
- {r: 0.306, g: 0.231, b: 0.114, a: 1}
|
||||
- {r: 0.384, g: 0.416, b: 0.082, a: 1}
|
||||
- {r: 0.165, g: 0.157, b: 0.008, a: 1}
|
||||
- {r: 0.906, g: 0.635, b: 0.227, a: 1}
|
||||
- {r: 0.82, g: 0.722, b: 0.318, a: 1}
|
||||
- {r: 0.745, g: 0.435, b: 0.031, a: 1}
|
||||
- {r: 0.765, g: 0.682, b: 0.569, a: 1}
|
||||
- {r: 0.18, g: 0.149, b: 0.075, a: 1}
|
||||
- {r: 0.702, g: 0.451, b: 0.059, a: 1}
|
||||
- name: Passion
|
||||
showAlpha: 0
|
||||
colors:
|
||||
- {r: 0.925, g: 0.682, b: 0.624, a: 1}
|
||||
- {r: 0.188, g: 0.114, b: 0.224, a: 1}
|
||||
- {r: 0.349, g: 0.11, b: 0.231, a: 1}
|
||||
- {r: 0.435, g: 0.267, b: 0.357, a: 1}
|
||||
- name: Sepia
|
||||
showAlpha: 0
|
||||
colors:
|
||||
- {r: 0.353, g: 0.098, b: 0.02, a: 1}
|
||||
- {r: 0.663, g: 0.188, b: 0.114, a: 1}
|
||||
- {r: 0.906, g: 0.643, b: 0.082, a: 1}
|
||||
- {r: 0.996, g: 0.839, b: 0.322, a: 1}
|
||||
- {r: 0.486, g: 0.392, b: 0.02, a: 1}
|
||||
- {r: 0.294, g: 0.235, b: 0.012, a: 1}
|
||||
- name: Floral
|
||||
showAlpha: 0
|
||||
colors:
|
||||
- {r: 0.855, g: 0.518, b: 0.412, a: 1}
|
||||
- {r: 0.827, g: 0.294, b: 0.333, a: 1}
|
||||
- {r: 0.737, g: 0.118, b: 0.208, a: 1}
|
||||
- {r: 0.549, g: 0.149, b: 0.235, a: 1}
|
||||
- {r: 0.949, g: 0.925, b: 0.784, a: 1}
|
||||
- {r: 0.945, g: 0.882, b: 0.69, a: 1}
|
||||
- {r: 0.871, g: 0.812, b: 0.698, a: 1}
|
||||
- {r: 0.4, g: 0.196, b: 0.243, a: 1}
|
||||
- {r: 0.271, g: 0.157, b: 0.227, a: 1}
|
||||
- name: Underwater
|
||||
showAlpha: 0
|
||||
colors:
|
||||
- {r: 0.663, g: 0.416, b: 0.733, a: 1}
|
||||
- {r: 0.2, g: 0.6, b: 0.698, a: 1}
|
||||
- {r: 0.11, g: 0.49, b: 0.698, a: 1}
|
||||
- {r: 0.439, g: 0.627, b: 0.227, a: 1}
|
||||
- {r: 0, g: 0.357, b: 0.604, a: 1}
|
||||
- {r: 0.067, g: 0.271, b: 0.353, a: 1}
|
||||
- name: Breeze
|
||||
showAlpha: 0
|
||||
colors:
|
||||
- {r: 0.706, g: 1, b: 0, a: 1}
|
||||
- {r: 0.651, g: 1, b: 0.404, a: 1}
|
||||
- {r: 0.122, g: 1, b: 0.514, a: 1}
|
||||
- {r: 0.216, g: 0.894, b: 0.961, a: 1}
|
||||
- {r: 0.4, g: 1, b: 0.882, a: 1}
|
||||
- {r: 0.027, g: 0.792, b: 0.8, a: 1}
|
||||
- name: Clovers
|
||||
showAlpha: 0
|
||||
colors:
|
||||
- {r: 0.431, g: 0.549, b: 0.102, a: 1}
|
||||
- {r: 0.671, g: 0.714, b: 0.071, a: 1}
|
||||
- {r: 0.969, g: 0.949, b: 0.831, a: 1}
|
||||
- {r: 0.886, g: 0.902, b: 0.702, a: 1}
|
||||
- {r: 0.753, g: 0.824, b: 0.627, a: 1}
|
||||
- {r: 0.404, g: 0.6, b: 0.4, a: 1}
|
||||
- name: Tropical
|
||||
showAlpha: 0
|
||||
colors:
|
||||
- {r: 0.953, g: 0.647, b: 0.804, a: 1}
|
||||
- {r: 0.965, g: 0.741, b: 0.871, a: 1}
|
||||
- {r: 0.949, g: 0.549, b: 0.643, a: 1}
|
||||
- {r: 0.992, g: 0.659, b: 0.498, a: 1}
|
||||
- {r: 0.976, g: 0.792, b: 0.729, a: 1}
|
||||
- {r: 0.984, g: 0.855, b: 0.725, a: 1}
|
||||
- {r: 0.259, g: 0.882, b: 0.663, a: 1}
|
||||
- {r: 0.349, g: 0.753, b: 0.78, a: 1}
|
||||
- {r: 0.725, g: 0.976, b: 0.91, a: 1}
|
||||
- {r: 0.647, g: 0.745, b: 0.957, a: 1}
|
||||
- {r: 0.725, g: 0.863, b: 0.973, a: 1}
|
||||
- {r: 0.89, g: 0.945, b: 0.996, a: 1}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c8c108c70496d3941b217d0196f12edf
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,15 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 188390376, guid: a4865f1ab4504ed8a368670db22f409c, type: 3}
|
||||
m_Name: ImportSettingsConfig
|
||||
m_EditorClassIdentifier:
|
||||
automateBeforeBuild: 1
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b2b839425e3449a4c94900ec879ce821
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -10,7 +10,7 @@ MonoBehaviour:
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: bf4450f8404fb5d4991d2b5a7973ba31, type: 3}
|
||||
m_Name: Chapter1
|
||||
m_Name: Chapter0
|
||||
m_EditorClassIdentifier:
|
||||
serializationData:
|
||||
SerializedFormat: 2
|
||||
@@ -21,9 +21,9 @@ MonoBehaviour:
|
||||
PrefabModificationsReferencedUnityObjects: []
|
||||
PrefabModifications: []
|
||||
SerializationNodes: []
|
||||
chapterIndex: C1
|
||||
chapterIndex: Chapter0
|
||||
chapterName: Departure To Multiverse
|
||||
chapterSubtitle: Chapter 1
|
||||
chapterSubtitle: Chapter 0
|
||||
themeColor: {r: 0.7987421, g: 0.7987421, b: 0.7987421, a: 1}
|
||||
avatar: {fileID: 21300000, guid: c95e8a2cec6d6fb469f3a2e524fbe890, type: 3}
|
||||
chapterSwitch:
|
||||
@@ -58,3 +58,7 @@ MonoBehaviour:
|
||||
displayDifficultyName:
|
||||
designerName:
|
||||
color: {r: 1, g: 0.2, b: 0.2, a: 1}
|
||||
- difficultyName: Chaos
|
||||
displayDifficultyName:
|
||||
designerName:
|
||||
color: {r: 1, g: 0, b: 1, a: 1}
|
||||
@@ -2312,7 +2312,7 @@ MonoBehaviour:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 0}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
|
||||
212
Assets/Prefabs/Story/BeatmapStatusMark.prefab
Normal file
212
Assets/Prefabs/Story/BeatmapStatusMark.prefab
Normal file
@@ -0,0 +1,212 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1597223253758175175
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4784016156976986300}
|
||||
- component: {fileID: 7864473739413828157}
|
||||
- component: {fileID: 6919760681373524986}
|
||||
m_Layer: 5
|
||||
m_Name: Text (TMP)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4784016156976986300
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1597223253758175175}
|
||||
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: 8130309985027027954}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 40, y: 40}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7864473739413828157
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1597223253758175175}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &6919760681373524986
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1597223253758175175}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: FC
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 16
|
||||
m_fontSizeBase: 16
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &7574088478242334147
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8130309985027027954}
|
||||
- component: {fileID: 6489654351169417587}
|
||||
- component: {fileID: 5009749467225280522}
|
||||
m_Layer: 5
|
||||
m_Name: BeatmapStatusMark
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8130309985027027954
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7574088478242334147}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: -0.75416523}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 4784016156976986300}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 40, y: 40}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6489654351169417587
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7574088478242334147}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &5009749467225280522
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7574088478242334147}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 9043ea87d87b2534eac0a4aaa784039f, type: 3}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
@@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7ae5431e0e2c6fe48ba5237e56a42769
|
||||
TextScriptImporter:
|
||||
guid: 1fc633b6a9d4908488b25fdb228da86b
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
@@ -66,22 +66,21 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300002, guid: 66995b6b61aed864daa956ae255d7fee, type: 3}
|
||||
m_Sprite: {fileID: 0}
|
||||
m_improveResolution: 0
|
||||
m_Resolution: 0
|
||||
m_useNativeSize: 0
|
||||
m_points:
|
||||
- {x: 0.50006104, y: -119.49999}
|
||||
- {x: 140.50006, y: 251.5}
|
||||
- {x: 560.50006, y: -99.49999}
|
||||
- {x: 645.50006, y: 260.5}
|
||||
lineThickness: 20
|
||||
- {x: 140.50006, y: 52.7}
|
||||
- {x: 560.50006, y: -6.32}
|
||||
lineThickness: 5
|
||||
relativeSize: 0
|
||||
lineList: 0
|
||||
lineCaps: 0
|
||||
bezierSegmentsPerCurve: 24
|
||||
LineJoins: 1
|
||||
BezierMode: 2
|
||||
BezierMode: 0
|
||||
drivenExternally: 1
|
||||
--- !u!114 &-805279860356291106
|
||||
MonoBehaviour:
|
||||
|
||||
487
Assets/Prefabs/Story/CurrentTextBlockUI.prefab
Normal file
487
Assets/Prefabs/Story/CurrentTextBlockUI.prefab
Normal file
@@ -0,0 +1,487 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &147050084074733619
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5120337310990590007}
|
||||
- component: {fileID: 501271540936040954}
|
||||
- component: {fileID: 4219007272173467644}
|
||||
m_Layer: 5
|
||||
m_Name: OutPort
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5120337310990590007
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 147050084074733619}
|
||||
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: 5350638854831129010}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0.5}
|
||||
m_AnchorMax: {x: 1, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: -30}
|
||||
m_SizeDelta: {x: 25, y: 25}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &501271540936040954
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 147050084074733619}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &4219007272173467644
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 147050084074733619}
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 0, b: 0, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &1093014837187042595
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8088187650405042001}
|
||||
- component: {fileID: 8483913691444022236}
|
||||
- component: {fileID: 8300599191905768772}
|
||||
m_Layer: 5
|
||||
m_Name: InPort
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8088187650405042001
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1093014837187042595}
|
||||
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: 5350638854831129010}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 0, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: -30}
|
||||
m_SizeDelta: {x: 25, y: 25}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8483913691444022236
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1093014837187042595}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8300599191905768772
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1093014837187042595}
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0, g: 0, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &2947357181438598616
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 808855937929311006}
|
||||
- component: {fileID: 3938143345111524688}
|
||||
- component: {fileID: 1269722336407503250}
|
||||
- component: {fileID: 3931523710101296998}
|
||||
m_Layer: 5
|
||||
m_Name: Image
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &808855937929311006
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2947357181438598616}
|
||||
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: 5350638854831129010}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3938143345111524688
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2947357181438598616}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1269722336407503250
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2947357181438598616}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: a53caee9af6d16b44a78a926722a32f5, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &3931523710101296998
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2947357181438598616}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 1269722336407503250}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &7991069327751894070
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 9095470796084918386}
|
||||
- component: {fileID: 606259940963463531}
|
||||
- component: {fileID: 8391808794720387191}
|
||||
- component: {fileID: 6909263626923910701}
|
||||
m_Layer: 5
|
||||
m_Name: Text (TMP)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &9095470796084918386
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7991069327751894070}
|
||||
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: 5350638854831129010}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: -20.000002}
|
||||
m_SizeDelta: {x: 0, y: -39.999996}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &606259940963463531
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7991069327751894070}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8391808794720387191
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7991069327751894070}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: Title
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 48
|
||||
m_fontSizeBase: 48
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!225 &6909263626923910701
|
||||
CanvasGroup:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7991069327751894070}
|
||||
m_Enabled: 1
|
||||
m_Alpha: 1
|
||||
m_Interactable: 0
|
||||
m_BlocksRaycasts: 0
|
||||
m_IgnoreParentGroups: 0
|
||||
--- !u!1 &8279096577214194803
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5350638854831129010}
|
||||
- component: {fileID: 6895756204793606274}
|
||||
- component: {fileID: 7871082850049165166}
|
||||
m_Layer: 5
|
||||
m_Name: CurrentTextBlockUI
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5350638854831129010
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8279096577214194803}
|
||||
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: 808855937929311006}
|
||||
- {fileID: 9095470796084918386}
|
||||
- {fileID: 8088187650405042001}
|
||||
- {fileID: 5120337310990590007}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 400, y: 200}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6895756204793606274
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8279096577214194803}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7871082850049165166
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8279096577214194803}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b976128eb3ec59e4e866dbb610441706, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
blockRect: {fileID: 5350638854831129010}
|
||||
inPort: {fileID: 8088187650405042001}
|
||||
outPort: {fileID: 5120337310990590007}
|
||||
blockName:
|
||||
blockTitle:
|
||||
button: {fileID: 3931523710101296998}
|
||||
titleText: {fileID: 8391808794720387191}
|
||||
8
Assets/Prefabs/Story/Dialog.meta
Normal file
8
Assets/Prefabs/Story/Dialog.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c3724feddb1408843a7995372fbfbe1b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,6 +1,6 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1314285067314511188
|
||||
--- !u!1 &1176251198231594119
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@@ -8,84 +8,10 @@ GameObject:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2016797284792224598}
|
||||
- component: {fileID: 611474904894693993}
|
||||
- component: {fileID: 6633181440282358348}
|
||||
m_Layer: 5
|
||||
m_Name: Image
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2016797284792224598
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1314285067314511188}
|
||||
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: 7636465290159887349}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &611474904894693993
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1314285067314511188}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &6633181440282358348
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1314285067314511188}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 0.3764706}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: e04579cd65e80e848be7d130ab60012a, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &8033017966764082997
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7636465290159887349}
|
||||
- component: {fileID: 595282724017128489}
|
||||
- component: {fileID: 8389971437431979706}
|
||||
- component: {fileID: 7033351746859775176}
|
||||
- component: {fileID: 4985437946617883479}
|
||||
- component: {fileID: 4229387824617991636}
|
||||
- component: {fileID: 1788110989413035462}
|
||||
m_Layer: 5
|
||||
m_Name: ChoiceButton
|
||||
m_TagString: Untagged
|
||||
@@ -93,42 +19,42 @@ GameObject:
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7636465290159887349
|
||||
--- !u!224 &7033351746859775176
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8033017966764082997}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_GameObject: {fileID: 1176251198231594119}
|
||||
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: 2016797284792224598}
|
||||
- {fileID: 1478741180673821888}
|
||||
- {fileID: 2707619886607754100}
|
||||
- {fileID: 618321639625094505}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 560, y: 50}
|
||||
m_SizeDelta: {x: 180, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &595282724017128489
|
||||
--- !u!222 &4985437946617883479
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8033017966764082997}
|
||||
m_GameObject: {fileID: 1176251198231594119}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8389971437431979706
|
||||
--- !u!114 &4229387824617991636
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8033017966764082997}
|
||||
m_GameObject: {fileID: 1176251198231594119}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
@@ -162,11 +88,23 @@ MonoBehaviour:
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 6633181440282358348}
|
||||
m_TargetGraphic: {fileID: 995447401348897857}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &8617754669712873818
|
||||
--- !u!114 &1788110989413035462
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1176251198231594119}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 90f34f59ff260c44796d71c51b7c0ee6, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &5589057778839743913
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@@ -174,10 +112,85 @@ GameObject:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1478741180673821888}
|
||||
- component: {fileID: 5778966826281838880}
|
||||
- component: {fileID: 7578652067859820047}
|
||||
- component: {fileID: 9171400094775339908}
|
||||
- component: {fileID: 2707619886607754100}
|
||||
- component: {fileID: 3917495085193381294}
|
||||
- component: {fileID: 995447401348897857}
|
||||
m_Layer: 5
|
||||
m_Name: Image
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2707619886607754100
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5589057778839743913}
|
||||
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: 7033351746859775176}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3917495085193381294
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5589057778839743913}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &995447401348897857
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5589057778839743913}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 0.3764706}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: e04579cd65e80e848be7d130ab60012a, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &8577723022881073969
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 618321639625094505}
|
||||
- component: {fileID: 8175011701247594375}
|
||||
- component: {fileID: 7738645786476951168}
|
||||
- component: {fileID: 1353276082974954538}
|
||||
m_Layer: 5
|
||||
m_Name: Text (TMP)
|
||||
m_TagString: Untagged
|
||||
@@ -185,40 +198,40 @@ GameObject:
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1478741180673821888
|
||||
--- !u!224 &618321639625094505
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8617754669712873818}
|
||||
m_GameObject: {fileID: 8577723022881073969}
|
||||
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: 7636465290159887349}
|
||||
m_Father: {fileID: 7033351746859775176}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5778966826281838880
|
||||
--- !u!222 &8175011701247594375
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8617754669712873818}
|
||||
m_GameObject: {fileID: 8577723022881073969}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7578652067859820047
|
||||
--- !u!114 &7738645786476951168
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8617754669712873818}
|
||||
m_GameObject: {fileID: 8577723022881073969}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
@@ -260,12 +273,12 @@ MonoBehaviour:
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 32
|
||||
m_fontSize: 48
|
||||
m_fontSizeBase: 32
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_enableAutoSizing: 1
|
||||
m_fontSizeMin: 16
|
||||
m_fontSizeMax: 48
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
@@ -276,7 +289,7 @@ MonoBehaviour:
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
@@ -302,13 +315,13 @@ MonoBehaviour:
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!114 &9171400094775339908
|
||||
--- !u!114 &1353276082974954538
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8617754669712873818}
|
||||
m_GameObject: {fileID: 8577723022881073969}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3}
|
||||
7
Assets/Prefabs/Story/Dialog/ChoiceButton.prefab.meta
Normal file
7
Assets/Prefabs/Story/Dialog/ChoiceButton.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 59466bf171ad3d74aa604302094e1a8f
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
90
Assets/Prefabs/Story/Dialog/ChoiceGroup.prefab
Normal file
90
Assets/Prefabs/Story/Dialog/ChoiceGroup.prefab
Normal file
@@ -0,0 +1,90 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &8033017966764082997
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7636465290159887349}
|
||||
- component: {fileID: 595282724017128489}
|
||||
- component: {fileID: 4618900808982286017}
|
||||
- component: {fileID: 6630610190885680455}
|
||||
m_Layer: 5
|
||||
m_Name: ChoiceGroup
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7636465290159887349
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8033017966764082997}
|
||||
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: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 800, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &595282724017128489
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8033017966764082997}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &4618900808982286017
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8033017966764082997}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Padding:
|
||||
m_Left: 0
|
||||
m_Right: 0
|
||||
m_Top: 0
|
||||
m_Bottom: 0
|
||||
m_ChildAlignment: 4
|
||||
m_Spacing: 25
|
||||
m_ChildForceExpandWidth: 0
|
||||
m_ChildForceExpandHeight: 0
|
||||
m_ChildControlWidth: 0
|
||||
m_ChildControlHeight: 0
|
||||
m_ChildScaleWidth: 0
|
||||
m_ChildScaleHeight: 0
|
||||
m_ReverseArrangement: 0
|
||||
--- !u!114 &6630610190885680455
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8033017966764082997}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: a653477cd0de8794b810214793b04cc9, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
choiceButtonPrefab: {fileID: 1176251198231594119, guid: 59466bf171ad3d74aa604302094e1a8f,
|
||||
type: 3}
|
||||
container: {fileID: 7636465290159887349}
|
||||
choiceButtonList: []
|
||||
@@ -12,7 +12,7 @@ GameObject:
|
||||
- component: {fileID: 611474904894693993}
|
||||
- component: {fileID: 6633181440282358348}
|
||||
m_Layer: 5
|
||||
m_Name: Image
|
||||
m_Name: Background
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
@@ -141,7 +141,7 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: Content
|
||||
m_text: StoryChapter0/C0_Departure_P1_A_D1_S1
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 73f9a9bb620a2b040ab7347b390452fe, type: 2}
|
||||
m_sharedMaterial: {fileID: 1291443754377433884, guid: 73f9a9bb620a2b040ab7347b390452fe,
|
||||
@@ -260,6 +260,7 @@ GameObject:
|
||||
m_Component:
|
||||
- component: {fileID: 7636465290159887349}
|
||||
- component: {fileID: 595282724017128489}
|
||||
- component: {fileID: 4391875194078862085}
|
||||
m_Layer: 5
|
||||
m_Name: DialogText
|
||||
m_TagString: Untagged
|
||||
@@ -297,6 +298,21 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8033017966764082997}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &4391875194078862085
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8033017966764082997}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 831ccff3dc06bfc4884663d623af866d, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
background: {fileID: 6633181440282358348}
|
||||
speakerNameText: {fileID: 9171400094775339908}
|
||||
contentText: {fileID: 7479393659305463332}
|
||||
--- !u!1 &8617754669712873818
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
611
Assets/Prefabs/Story/FinishedTextBlockUI.prefab
Normal file
611
Assets/Prefabs/Story/FinishedTextBlockUI.prefab
Normal file
@@ -0,0 +1,611 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &147050084074733619
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5120337310990590007}
|
||||
- component: {fileID: 501271540936040954}
|
||||
- component: {fileID: 4219007272173467644}
|
||||
m_Layer: 5
|
||||
m_Name: OutPort
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5120337310990590007
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 147050084074733619}
|
||||
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: 5350638854831129010}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0.5}
|
||||
m_AnchorMax: {x: 1, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: -30}
|
||||
m_SizeDelta: {x: 25, y: 25}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &501271540936040954
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 147050084074733619}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &4219007272173467644
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 147050084074733619}
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 0, b: 0, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &1093014837187042595
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8088187650405042001}
|
||||
- component: {fileID: 8483913691444022236}
|
||||
- component: {fileID: 8300599191905768772}
|
||||
m_Layer: 5
|
||||
m_Name: InPort
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8088187650405042001
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1093014837187042595}
|
||||
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: 5350638854831129010}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 0, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: -30}
|
||||
m_SizeDelta: {x: 25, y: 25}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8483913691444022236
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1093014837187042595}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8300599191905768772
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1093014837187042595}
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0, g: 0, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &2947357181438598616
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 808855937929311006}
|
||||
- component: {fileID: 3938143345111524688}
|
||||
- component: {fileID: 1269722336407503250}
|
||||
- component: {fileID: 3931523710101296998}
|
||||
m_Layer: 5
|
||||
m_Name: Image
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &808855937929311006
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2947357181438598616}
|
||||
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: 5350638854831129010}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3938143345111524688
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2947357181438598616}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1269722336407503250
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2947357181438598616}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: a53caee9af6d16b44a78a926722a32f5, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &3931523710101296998
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2947357181438598616}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 1269722336407503250}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &5487477990142788049
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1412140060069810010}
|
||||
- component: {fileID: 7700833151999098032}
|
||||
- component: {fileID: 2834471624508731075}
|
||||
m_Layer: 5
|
||||
m_Name: Text (TMP) (1)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1412140060069810010
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5487477990142788049}
|
||||
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: 5350638854831129010}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -3, y: 80}
|
||||
m_SizeDelta: {x: -6, y: -160}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7700833151999098032
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5487477990142788049}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &2834471624508731075
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5487477990142788049}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: FINISHED
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4278190080
|
||||
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 24
|
||||
m_fontSizeBase: 24
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &7991069327751894070
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 9095470796084918386}
|
||||
- component: {fileID: 606259940963463531}
|
||||
- component: {fileID: 8391808794720387191}
|
||||
m_Layer: 5
|
||||
m_Name: Text (TMP)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &9095470796084918386
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7991069327751894070}
|
||||
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: 5350638854831129010}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -72, y: -20}
|
||||
m_SizeDelta: {x: 135, y: 25}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &606259940963463531
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7991069327751894070}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8391808794720387191
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7991069327751894070}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: Title
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 24
|
||||
m_fontSizeBase: 24
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &8279096577214194803
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5350638854831129010}
|
||||
- component: {fileID: 6895756204793606274}
|
||||
- component: {fileID: 7871082850049165166}
|
||||
m_Layer: 5
|
||||
m_Name: FinishedTextBlockUI
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5350638854831129010
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8279096577214194803}
|
||||
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: 808855937929311006}
|
||||
- {fileID: 9095470796084918386}
|
||||
- {fileID: 1412140060069810010}
|
||||
- {fileID: 8088187650405042001}
|
||||
- {fileID: 5120337310990590007}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 0, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 400, y: 200}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6895756204793606274
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8279096577214194803}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7871082850049165166
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8279096577214194803}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b976128eb3ec59e4e866dbb610441706, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
blockName:
|
||||
position: {x: 0, y: 0}
|
||||
blockRect: {fileID: 5350638854831129010}
|
||||
inPort: {fileID: 8088187650405042001}
|
||||
outPort: {fileID: 5120337310990590007}
|
||||
blockTitle:
|
||||
button: {fileID: 3931523710101296998}
|
||||
titleText: {fileID: 8391808794720387191}
|
||||
state: 0
|
||||
7
Assets/Prefabs/Story/FinishedTextBlockUI.prefab.meta
Normal file
7
Assets/Prefabs/Story/FinishedTextBlockUI.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 44de36b0d423e9c418251e354d843dc4
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -34,7 +34,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0.5}
|
||||
m_AnchorMax: {x: 1, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: -30}
|
||||
m_SizeDelta: {x: 25, y: 25}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &501271540936040954
|
||||
@@ -52,7 +52,7 @@ MonoBehaviour:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 147050084074733619}
|
||||
m_Enabled: 1
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
@@ -109,7 +109,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 0, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: -30}
|
||||
m_SizeDelta: {x: 25, y: 25}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8483913691444022236
|
||||
@@ -127,7 +127,7 @@ MonoBehaviour:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1093014837187042595}
|
||||
m_Enabled: 1
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
@@ -216,7 +216,7 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Sprite: {fileID: 21300000, guid: 7ddd15eec542d5f43a4e8a2e01322627, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
@@ -302,10 +302,10 @@ RectTransform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5350638854831129010}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: -50, y: 75}
|
||||
m_SizeDelta: {x: 200, y: 50}
|
||||
m_AnchorMin: {x: 1, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: -72, y: -20}
|
||||
m_SizeDelta: {x: 135, y: 25}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &606259940963463531
|
||||
CanvasRenderer:
|
||||
@@ -344,8 +344,8 @@ MonoBehaviour:
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4278190080
|
||||
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
@@ -369,7 +369,7 @@ MonoBehaviour:
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 1
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
@@ -416,7 +416,7 @@ GameObject:
|
||||
- component: {fileID: 6895756204793606274}
|
||||
- component: {fileID: 7871082850049165166}
|
||||
m_Layer: 5
|
||||
m_Name: TextBlockUI
|
||||
m_Name: LockedTextBlockUI
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
@@ -443,7 +443,7 @@ RectTransform:
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 0, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 300, y: 200}
|
||||
m_SizeDelta: {x: 400, y: 200}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6895756204793606274
|
||||
CanvasRenderer:
|
||||
7
Assets/Prefabs/Story/LockedTextBlockUI.prefab.meta
Normal file
7
Assets/Prefabs/Story/LockedTextBlockUI.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f6a037648752e004ba8846f352a8f421
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -10,7 +10,6 @@ GameObject:
|
||||
m_Component:
|
||||
- component: {fileID: 5732796955640118753}
|
||||
- component: {fileID: 1686831770413399787}
|
||||
- component: {fileID: 7998495330303362196}
|
||||
m_Layer: 5
|
||||
m_Name: InPort
|
||||
m_TagString: Untagged
|
||||
@@ -34,7 +33,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 0, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 71, y: -82.5}
|
||||
m_SizeDelta: {x: 25, y: 25}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1686831770413399787
|
||||
@@ -45,36 +44,6 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1139654734443167197}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7998495330303362196
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1139654734443167197}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0, g: 0, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &2947357181438598616
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -141,7 +110,7 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Sprite: {fileID: 21300000, guid: 4e9019f9aabcb3c409ea419fdba522f5, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
@@ -205,7 +174,6 @@ GameObject:
|
||||
m_Component:
|
||||
- component: {fileID: 4908100188787544557}
|
||||
- component: {fileID: 9115198829922096935}
|
||||
- component: {fileID: 3907262488122341211}
|
||||
m_Layer: 5
|
||||
m_Name: OutPort
|
||||
m_TagString: Untagged
|
||||
@@ -229,7 +197,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0.5}
|
||||
m_AnchorMax: {x: 1, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: -82.5}
|
||||
m_SizeDelta: {x: 25, y: 25}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &9115198829922096935
|
||||
@@ -240,36 +208,68 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6180957620423729728}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &3907262488122341211
|
||||
--- !u!1 &7352787072520773963
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 572536196246750759}
|
||||
- component: {fileID: 8357542584952053847}
|
||||
m_Layer: 0
|
||||
m_Name: StatusMarkContainer
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &572536196246750759
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7352787072520773963}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0.75416523}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5350638854831129010}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 72.5, y: 115}
|
||||
m_SizeDelta: {x: 300, y: 40}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &8357542584952053847
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6180957620423729728}
|
||||
m_GameObject: {fileID: 7352787072520773963}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 0, b: 0, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
m_Padding:
|
||||
m_Left: 0
|
||||
m_Right: 0
|
||||
m_Top: 0
|
||||
m_Bottom: 0
|
||||
m_ChildAlignment: 0
|
||||
m_Spacing: 3
|
||||
m_ChildForceExpandWidth: 0
|
||||
m_ChildForceExpandHeight: 0
|
||||
m_ChildControlWidth: 0
|
||||
m_ChildControlHeight: 0
|
||||
m_ChildScaleWidth: 0
|
||||
m_ChildScaleHeight: 0
|
||||
m_ReverseArrangement: 0
|
||||
--- !u!1 &7991069327751894070
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -281,8 +281,9 @@ GameObject:
|
||||
- component: {fileID: 9095470796084918386}
|
||||
- component: {fileID: 606259940963463531}
|
||||
- component: {fileID: 8391808794720387191}
|
||||
- component: {fileID: 4504653164803251096}
|
||||
m_Layer: 5
|
||||
m_Name: Text (TMP)
|
||||
m_Name: MusicNameText
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
@@ -304,8 +305,8 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 200, y: 50}
|
||||
m_AnchoredPosition: {x: 72.5, y: -15}
|
||||
m_SizeDelta: {x: 300, y: 300}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &606259940963463531
|
||||
CanvasRenderer:
|
||||
@@ -344,8 +345,8 @@ MonoBehaviour:
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4278190080
|
||||
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
@@ -404,6 +405,18 @@ MonoBehaviour:
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!225 &4504653164803251096
|
||||
CanvasGroup:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7991069327751894070}
|
||||
m_Enabled: 1
|
||||
m_Alpha: 1
|
||||
m_Interactable: 0
|
||||
m_BlocksRaycasts: 0
|
||||
m_IgnoreParentGroups: 0
|
||||
--- !u!1 &8279096577214194803
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -438,12 +451,13 @@ RectTransform:
|
||||
- {fileID: 9095470796084918386}
|
||||
- {fileID: 5732796955640118753}
|
||||
- {fileID: 4908100188787544557}
|
||||
- {fileID: 572536196246750759}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 0, y: 0.5}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 300, y: 100}
|
||||
m_SizeDelta: {x: 470, y: 350}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6895756204793606274
|
||||
CanvasRenderer:
|
||||
@@ -465,10 +479,15 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 5efe0a39fe908354e9ab6d1edfdb8843, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
blockName:
|
||||
blockPosition: {x: 0, y: 0}
|
||||
state: 0
|
||||
blockRect: {fileID: 5350638854831129010}
|
||||
inPort: {fileID: 5732796955640118753}
|
||||
outPort: {fileID: 4908100188787544557}
|
||||
blockName:
|
||||
songName:
|
||||
button: {fileID: 3931523710101296998}
|
||||
musicText: {fileID: 8391808794720387191}
|
||||
songNameText: {fileID: 8391808794720387191}
|
||||
beatmapStatusMarkContainer: {fileID: 572536196246750759}
|
||||
beatmapStatusMarkPrefab: {fileID: 7574088478242334147, guid: 1fc633b6a9d4908488b25fdb228da86b,
|
||||
type: 3}
|
||||
|
||||
@@ -34,7 +34,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0.5}
|
||||
m_AnchorMax: {x: 1, y: 0.5}
|
||||
m_AnchoredPosition: {x: 2, y: 0}
|
||||
m_AnchoredPosition: {x: -15, y: -5}
|
||||
m_SizeDelta: {x: 25, y: 25}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &459525017163665976
|
||||
@@ -52,7 +52,7 @@ MonoBehaviour:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2549272938280010857}
|
||||
m_Enabled: 1
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
@@ -141,7 +141,7 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Sprite: {fileID: 21300000, guid: ba2e784cfa5cc0549bf66051f872367c, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
@@ -229,7 +229,7 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 0, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 35, y: -6}
|
||||
m_SizeDelta: {x: 25, y: 25}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3000483006876940928
|
||||
@@ -247,7 +247,7 @@ MonoBehaviour:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5694744930588099522}
|
||||
m_Enabled: 1
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
@@ -335,17 +335,18 @@ MonoBehaviour:
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: Title
|
||||
m_text: Tutorial
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_fontAsset: {fileID: 11400000, guid: 73f9a9bb620a2b040ab7347b390452fe, type: 2}
|
||||
m_sharedMaterial: {fileID: 1291443754377433884, guid: 73f9a9bb620a2b040ab7347b390452fe,
|
||||
type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4278190080
|
||||
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
@@ -440,10 +441,10 @@ RectTransform:
|
||||
- {fileID: 4937946904652960982}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 0, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 300, y: 200}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: -540}
|
||||
m_SizeDelta: {x: 600, y: 375}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6895756204793606274
|
||||
CanvasRenderer:
|
||||
@@ -465,9 +466,12 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 821e50e1519236a46b03eb1f005acebe, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
blockName:
|
||||
blockPosition: {x: 0, y: 0}
|
||||
state: 0
|
||||
blockRect: {fileID: 5350638854831129010}
|
||||
inPort: {fileID: 5784757909052703056}
|
||||
outPort: {fileID: 4937946904652960982}
|
||||
blockName:
|
||||
button: {fileID: 3931523710101296998}
|
||||
tutorialText: {fileID: 8391808794720387191}
|
||||
tutorialName:
|
||||
tutorialNameText: {fileID: 8391808794720387191}
|
||||
|
||||
@@ -29,7 +29,7 @@ MonoBehaviour:
|
||||
-
|
||||
Flags: 000000000000
|
||||
Languages_Touch: []
|
||||
- Term: Editor UI/settings
|
||||
- Term: Menu UI/settings
|
||||
TermType: 0
|
||||
Description:
|
||||
Languages:
|
||||
@@ -41,7 +41,7 @@ MonoBehaviour:
|
||||
- "C\xE0i \u0111\u1EB7t"
|
||||
Flags: 000000000000
|
||||
Languages_Touch: []
|
||||
- Term: Editor UI/touch_to_start
|
||||
- Term: Menu UI/touch_to_start
|
||||
TermType: 0
|
||||
Description:
|
||||
Languages:
|
||||
@@ -54,16 +54,112 @@ MonoBehaviour:
|
||||
- "- Ch\u1EA1m \u0111\u1EC3 b\u1EAFt \u0111\u1EA7u tr\xF2 ch\u01A1i -"
|
||||
Flags: 000000000000
|
||||
Languages_Touch: []
|
||||
- Term: RegularFont
|
||||
TermType: 9
|
||||
- Term: Characters/Soullies
|
||||
TermType: 0
|
||||
Description:
|
||||
Languages:
|
||||
- SarasaGothicSC-Regular SDF en
|
||||
- SarasaGothicSC-Regular SDF zh-CN
|
||||
- SarasaGothicSC-Regular SDF zh-TW
|
||||
- SarasaGothicSC-Regular SDF ja
|
||||
- SarasaGothicSC-Regular SDF ko
|
||||
- SarasaGothicSC-Regular SDF vi
|
||||
- Soullies
|
||||
- "\u53D7\u4E3D\u4E1D"
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
Flags: 000000000000
|
||||
Languages_Touch: []
|
||||
- Term: Chapter0/C0_Departure_P1_A_D1_S1
|
||||
TermType: 0
|
||||
Description:
|
||||
Languages:
|
||||
- Welcome to story test!
|
||||
- "\u6B22\u8FCE\u6765\u5230\u5267\u60C5\u6D4B\u8BD5\uFF01"
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
Flags: 000000000000
|
||||
Languages_Touch: []
|
||||
- Term: Chapter0/C0_Departure_P1_A_D1_S2
|
||||
TermType: 0
|
||||
Description:
|
||||
Languages:
|
||||
- Please select a story branch.
|
||||
- "\u8BF7\u9009\u4E00\u4E2A\u5267\u60C5\u5206\u652F\u5427\u3002"
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
Flags: 000000000000
|
||||
Languages_Touch: []
|
||||
- Term: Chapter0/C0_Departure_P1_A_C1_S1
|
||||
TermType: 0
|
||||
Description:
|
||||
Languages:
|
||||
- I choose storyline A.
|
||||
- "\u6211\u9009\u62E9\u5206\u652FA\u3002"
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
Flags: 000000000000
|
||||
Languages_Touch: []
|
||||
- Term: Chapter0/C0_Departure_P1_A_C1_S2
|
||||
TermType: 0
|
||||
Description:
|
||||
Languages:
|
||||
- I choose storyline B.
|
||||
- "\u6211\u9009\u62E9\u5206\u652FB\u3002"
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
Flags: 000000000000
|
||||
Languages_Touch: []
|
||||
- Term: Chapter0/C0_Departure_P1_A_D2_S1
|
||||
TermType: 0
|
||||
Description:
|
||||
Languages:
|
||||
- We will go to A now!
|
||||
- "\u6211\u4EEC\u8FD9\u5C31\u524D\u5F80A\u5206\u652F\uFF01"
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
Flags: 000000000000
|
||||
Languages_Touch: []
|
||||
- Term: Chapter0/C0_Departure_P1_A_D3_S1
|
||||
TermType: 0
|
||||
Description:
|
||||
Languages:
|
||||
- We will go to B now!
|
||||
- "\u6211\u4EEC\u9A6C\u4E0A\u8FDB\u5165B\u5206\u652F\uFF01"
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
Flags: 000000000000
|
||||
Languages_Touch: []
|
||||
- Term: Chapter0/C0_Departure_P2_A_D1_S1
|
||||
TermType: 0
|
||||
Description:
|
||||
Languages:
|
||||
- Let's start from the...
|
||||
- "\u8BA9\u6211\u4EEC\u5F00\u59CB\u2026\u2026"
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
Flags: 000000000000
|
||||
Languages_Touch: []
|
||||
- Term: Chapter0/C0_Departure_P2_A_D1_S2
|
||||
TermType: 0
|
||||
Description:
|
||||
Languages:
|
||||
- Chaos Zone!
|
||||
- "\u8FDB\u5165\u6DF7\u6C8C\u7A7A\u95F4\uFF01"
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
Flags: 000000000000
|
||||
Languages_Touch: []
|
||||
CaseInsensitiveTerms: 0
|
||||
@@ -93,7 +189,7 @@ MonoBehaviour:
|
||||
Google_WebServiceURL: https://script.google.com/macros/s/AKfycbyPUuh1rjZLbicNBkY3LFhOHSEBWGRLK13WrmmuwVbrjSobiUGlMpkUT3iMvmv0yiEe/exec
|
||||
Google_SpreadsheetKey: 1Q03aJoMd4NawhUg2VQiSsaCHiKqXKcL--4-ZtGq8-_E
|
||||
Google_SpreadsheetName: I2Loc ichni Official Localization
|
||||
Google_LastUpdatedVersion: 1748878309400
|
||||
Google_LastUpdatedVersion: 1749822296184
|
||||
Google_Password: change_this
|
||||
GoogleUpdateFrequency: 3
|
||||
GoogleInEditorCheckFrequency: 2
|
||||
|
||||
8
Assets/Resources/Story.meta
Normal file
8
Assets/Resources/Story.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e17b95f6df6430643b7511e916eb25c4
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Resources/Story/Chapter0.meta
Normal file
8
Assets/Resources/Story/Chapter0.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a86cfdfeb26292546876402f87f761c5
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
19
Assets/Resources/Story/Chapter0/Dialogs/Departure_P1_A.txt
Normal file
19
Assets/Resources/Story/Chapter0/Dialogs/Departure_P1_A.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
$[Start]
|
||||
$Soullies: C0_Departure_P1_A_D1_S1
|
||||
$Soullies: C0_Departure_P1_A_D1_S2
|
||||
$Choice(Departure_Path_Choose_1){
|
||||
C0_Departure_P1_A_C1_S1 -> [ChooseP2_A];
|
||||
C0_Departure_P1_A_C1_S2 -> [ChooseP2_B];
|
||||
}
|
||||
|
||||
$[ChooseP2_A]{
|
||||
SetVariable("ChooseResult", 1);
|
||||
GenerateDialogBlock("Departure_P2_A");
|
||||
}
|
||||
$Soullies: C0_Departure_P1_A_D2_S1
|
||||
|
||||
$[ChooseP2_B]{
|
||||
SetVariable("ChooseResult", 2);
|
||||
GenerateDialogBlock("Departure_P2_B");
|
||||
}
|
||||
$Soullies: C0_Departure_P1_A_D3_S1
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: afd46b56ef0cc5c4699710c478ff7c55
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,5 @@
|
||||
$[Entry]{
|
||||
GenerateSongBlock("Chaos_Zone");
|
||||
}
|
||||
$Soullies: C0_Departure_P2_A_D1_S1
|
||||
$Soullies: C0_Departure_P2_A_D1_S2
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4d0a8b411a62bd9449344eb530b3234f
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ce2f5ed054e5d4d4082038afac4c472c
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
49
Assets/Resources/Story/Chapter0/Dialogs/Example.txt
Normal file
49
Assets/Resources/Story/Chapter0/Dialogs/Example.txt
Normal file
@@ -0,0 +1,49 @@
|
||||
$[开始]
|
||||
$Condition{
|
||||
GetVariable("Branch") == 1 -> [标题1];
|
||||
GetVariable("Branch") == 2 -> [标题2];
|
||||
}
|
||||
|
||||
#上面是条件判断,获取变量Branch的值,决定进入哪个标题。
|
||||
#这是一个注释。
|
||||
#-----------
|
||||
|
||||
|
||||
$[标题1]
|
||||
$角色名字1: 说话内容1
|
||||
|
||||
#Dialog结束了
|
||||
#-----------
|
||||
|
||||
|
||||
$[标题2]
|
||||
$角色名字2: 说话内容2
|
||||
$Choice(选项名字){
|
||||
选项内容A -> [选择A];
|
||||
选项内容B -> [选择B];
|
||||
}
|
||||
#上面是选项
|
||||
#-----------
|
||||
|
||||
|
||||
$[选择A]{
|
||||
SetVariable("ChooseResult", 1);
|
||||
GenerateDialogBlock("Departure_P2_A");
|
||||
}
|
||||
$角色名字2: 说话内容3-1
|
||||
$角色名字2: 说话内容3-2
|
||||
|
||||
#标题后面的{}内为自定义函数。
|
||||
#SetVariable("ChooseResult", 1) 设置变量ChooseResult的值为1。
|
||||
#GenerateTextBlock("Departure_P2_A") 生成名字为Departure_P2_A的文本块。
|
||||
#-----------
|
||||
|
||||
|
||||
$[选择B]{
|
||||
SetVariable("ChooseResult", 2);
|
||||
GenerateDialogBlock("Departure_P2_B");
|
||||
}
|
||||
$角色名字2: 说话内容4-1
|
||||
$角色名字2: 说话内容4-2
|
||||
$角色名字2: 说话内容4-3
|
||||
#-----------
|
||||
7
Assets/Resources/Story/Chapter0/Dialogs/Example.txt.meta
Normal file
7
Assets/Resources/Story/Chapter0/Dialogs/Example.txt.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8b05c7949169cc048afaeb7635fd7638
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
19
Assets/Resources/Story/Chapter0/Dialogs/ZakoCurse 0.txt
Normal file
19
Assets/Resources/Story/Chapter0/Dialogs/ZakoCurse 0.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
$[Entry]
|
||||
$Condition{
|
||||
GetGlobalVariable("IsCursed") == 1 -> [Cursed-Start];
|
||||
GetGlobalVariable("IsCursed") == 0 -> [NotCursed-Start];
|
||||
}
|
||||
|
||||
#这是一个注释。
|
||||
|
||||
$[Cursed-Start]
|
||||
$Zako-1(Calm): You are cursed! You are cursed!
|
||||
$Zako-1(Calm): Go find Zako 0 to get rid of the curse!
|
||||
$Zako-1(Calm): I won't lie to you!
|
||||
|
||||
#这是另一个注释。
|
||||
-这个注释有两行。
|
||||
|
||||
$[NotCursed-Start]
|
||||
$Zako-1(Happy): You are not cursed!
|
||||
$Zako-1(Happy): Enjoy your adventure!
|
||||
56
Assets/Resources/Story/Chapter0/StoryData_Chapter0.asset
Normal file
56
Assets/Resources/Story/Chapter0/StoryData_Chapter0.asset
Normal file
@@ -0,0 +1,56 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7ab917c50249812429ebd44d6574497c, type: 3}
|
||||
m_Name: StoryData_Chapter0
|
||||
m_EditorClassIdentifier:
|
||||
serializationData:
|
||||
SerializedFormat: 2
|
||||
SerializedBytes:
|
||||
ReferencedUnityObjects: []
|
||||
SerializedBytesString:
|
||||
Prefab: {fileID: 0}
|
||||
PrefabModificationsReferencedUnityObjects: []
|
||||
PrefabModifications: []
|
||||
SerializationNodes: []
|
||||
dialogBlockDatas:
|
||||
- blockName: Departure_P1_A
|
||||
blockID: C0_D_Departure_P1_A
|
||||
blockSize: {x: 400, y: 200}
|
||||
dialogTitle: P1-A
|
||||
- blockName: Departure_P2_A
|
||||
blockID: C0_D_Departure_P2_A
|
||||
blockSize: {x: 400, y: 200}
|
||||
dialogTitle: P2-A
|
||||
- blockName: Departure_P2_B
|
||||
blockID: C0_D_Departure_P2_B
|
||||
blockSize: {x: 400, y: 200}
|
||||
dialogTitle: P2-B
|
||||
songBlockDatas:
|
||||
- blockName: Chaos_Zone
|
||||
blockID: C0_S_Departure_Chaos_Zone
|
||||
blockSize: {x: 470, y: 350}
|
||||
songName: Chaos Zone
|
||||
tutorialBlockDatas:
|
||||
- blockName: Departure_Tutorial_A
|
||||
blockID: C0_T_Departure_Tutorial_A
|
||||
blockSize: {x: 600, y: 375}
|
||||
tutorialName: Departure Tutorial
|
||||
initialBlocks:
|
||||
- blockName: Departure_Tutorial_A
|
||||
initialState: 2
|
||||
blockPosition: {x: 200, y: -720}
|
||||
nextBlocks:
|
||||
- Departure_P1_A
|
||||
- blockName: Departure_P1_A
|
||||
initialState: 1
|
||||
blockPosition: {x: 1000, y: -720}
|
||||
nextBlocks: []
|
||||
8
Assets/Scenes/MenuScene.meta
Normal file
8
Assets/Scenes/MenuScene.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c263413406835674eb266e9f04d562a3
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
78
Assets/Scenes/MenuScene/MenuVolume.asset
Normal file
78
Assets/Scenes/MenuScene/MenuVolume.asset
Normal file
@@ -0,0 +1,78 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-6091830294524258670
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 29fa0085f50d5e54f8144f766051a691, type: 3}
|
||||
m_Name: FilmGrain
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
type:
|
||||
m_OverrideState: 1
|
||||
m_Value: 9
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
response:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
texture:
|
||||
m_OverrideState: 0
|
||||
m_Value: {fileID: 0}
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3}
|
||||
m_Name: MenuVolume
|
||||
m_EditorClassIdentifier:
|
||||
components:
|
||||
- {fileID: -6091830294524258670}
|
||||
- {fileID: 8215794205551719707}
|
||||
- {fileID: 4375261676646749473}
|
||||
--- !u!114 &4375261676646749473
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fb60a22f311433c4c962b888d1393f88, type: 3}
|
||||
m_Name: PaniniProjection
|
||||
m_EditorClassIdentifier:
|
||||
active: 0
|
||||
distance:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
cropToFit:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
--- !u!114 &8215794205551719707
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 81180773991d8724ab7f2d216912b564, type: 3}
|
||||
m_Name: ChromaticAberration
|
||||
m_EditorClassIdentifier:
|
||||
active: 0
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1
|
||||
8
Assets/Scenes/MenuScene/MenuVolume.asset.meta
Normal file
8
Assets/Scenes/MenuScene/MenuVolume.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 586224155c7ef7a4d82dd5e831185e96
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
192
Assets/Scripts/Game/GameSaveManager.cs
Normal file
192
Assets/Scripts/Game/GameSaveManager.cs
Normal file
@@ -0,0 +1,192 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Ichni.RhythmGame;
|
||||
using Ichni.Story;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ichni
|
||||
{
|
||||
public class GameSaveManager : SerializedMonoBehaviour
|
||||
{
|
||||
public static GameSaveManager instance;
|
||||
|
||||
public SongSaveModule SongSaveModule;
|
||||
public StorySaveModule StorySaveModule;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (instance == null)
|
||||
{
|
||||
instance = this;
|
||||
|
||||
SongSaveModule = new SongSaveModule();
|
||||
SongSaveModule.LoadSongStatuses();
|
||||
|
||||
StorySaveModule = new StorySaveModule();
|
||||
StorySaveModule.LoadStoryVariables();
|
||||
StorySaveModule.LoadChoices();
|
||||
|
||||
DontDestroyOnLoad(gameObject);
|
||||
}
|
||||
else
|
||||
{
|
||||
Destroy(gameObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public partial class SongSaveModule
|
||||
{
|
||||
public Dictionary<string, SongStatusSave> songStatusSaves;
|
||||
private string SongSavePath => Application.streamingAssetsPath + "/GameSaves/SongSaves.json";
|
||||
|
||||
public SongSaveModule()
|
||||
{
|
||||
songStatusSaves = new Dictionary<string, SongStatusSave>();
|
||||
Debug.Log("Song save path: " + SongSavePath);
|
||||
}
|
||||
}
|
||||
|
||||
public partial class SongSaveModule
|
||||
{
|
||||
[Button]
|
||||
public void SaveSongStatuses()
|
||||
{
|
||||
ES3.Save("SongSaves", songStatusSaves, SongSavePath);
|
||||
}
|
||||
|
||||
public void LoadSongStatuses()
|
||||
{
|
||||
if (ES3.FileExists(SongSavePath))
|
||||
{
|
||||
songStatusSaves = ES3.Load<Dictionary<string, SongStatusSave>>("SongSaves", SongSavePath);
|
||||
}
|
||||
else
|
||||
{
|
||||
songStatusSaves = new Dictionary<string, SongStatusSave>();
|
||||
|
||||
//TODO: delete
|
||||
songStatusSaves.Add("Chaos Zone", new SongStatusSave
|
||||
{
|
||||
isCompleted = false,
|
||||
additionalInfo = "",
|
||||
beatmapSaves = new Dictionary<string, BeatmapSave>()
|
||||
{
|
||||
{ "Easy", new BeatmapSave { accuracy = 0.0f, isFullCombo = false, isAllPerfect = false } },
|
||||
{ "Hard", new BeatmapSave { accuracy = 0.0f, isFullCombo = false, isAllPerfect = false } },
|
||||
{ "Chaos", new BeatmapSave { accuracy = 0.0f, isFullCombo = false, isAllPerfect = false } }
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
[Button]
|
||||
public void ClearBeatmapRecords()
|
||||
{
|
||||
foreach (var songStatus in songStatusSaves.Values)
|
||||
{
|
||||
foreach (var beatmapSave in songStatus.beatmapSaves.Values)
|
||||
{
|
||||
beatmapSave.accuracy = 0.0f;
|
||||
beatmapSave.isFullCombo = false;
|
||||
beatmapSave.isAllPerfect = false;
|
||||
}
|
||||
}
|
||||
|
||||
SaveSongStatuses();
|
||||
}
|
||||
}
|
||||
|
||||
public partial class StorySaveModule
|
||||
{
|
||||
public Dictionary<string, List<TutorialBlockSave>> tutorialBlockSaves;
|
||||
public Dictionary<string, List<SongBlockSave>> songBlockSaves;
|
||||
public Dictionary<string, List<DialogBlockSave>> dialogBlockSaves;
|
||||
public Dictionary<string, List<BlockConnectorSave>> connectorSaves;
|
||||
|
||||
public Dictionary<string, int> storyVariables;
|
||||
public Dictionary<string, int> selectedChoices;
|
||||
|
||||
private string GetStorySavePath(string chapterName) => Application.streamingAssetsPath + "/StorySaves/" + chapterName + ".json";
|
||||
private string StoryVariablesPath => Application.streamingAssetsPath + "/StorySaves/StoryVariables.json";
|
||||
private string ChoicesPath => Application.streamingAssetsPath + "/StorySaves/Choices.json";
|
||||
|
||||
public StorySaveModule()
|
||||
{
|
||||
tutorialBlockSaves = new Dictionary<string, List<TutorialBlockSave>>();
|
||||
songBlockSaves = new Dictionary<string, List<SongBlockSave>>();
|
||||
dialogBlockSaves = new Dictionary<string, List<DialogBlockSave>>();
|
||||
connectorSaves = new Dictionary<string, List<BlockConnectorSave>>();
|
||||
storyVariables = new Dictionary<string, int>();
|
||||
selectedChoices = new Dictionary<string, int>();
|
||||
Debug.Log("Story Variables path: " + StoryVariablesPath);
|
||||
}
|
||||
}
|
||||
|
||||
public partial class StorySaveModule
|
||||
{
|
||||
public void LoadStoryline(string chapterName)
|
||||
{
|
||||
tutorialBlockSaves[chapterName] = ES3.Load<List<TutorialBlockSave>>("TutorialBlockSaves", GetStorySavePath(chapterName));
|
||||
songBlockSaves[chapterName] = ES3.Load<List<SongBlockSave>>("SongBlockSaves", GetStorySavePath(chapterName));
|
||||
dialogBlockSaves[chapterName] = ES3.Load<List<DialogBlockSave>>("TextBlockSaves", GetStorySavePath(chapterName));
|
||||
connectorSaves[chapterName] = ES3.Load<List<BlockConnectorSave>>("BlockConnectorSaves", GetStorySavePath(chapterName));
|
||||
}
|
||||
|
||||
public void SaveStoryline(string chapterName, List<TutorialBlockSave> tutorialBlocks,
|
||||
List<SongBlockSave> songBlocks, List<DialogBlockSave> dialogBlocks,
|
||||
List<BlockConnectorSave> connectors)
|
||||
{
|
||||
ES3.Save("TutorialBlockSaves", tutorialBlocks, GetStorySavePath(chapterName));
|
||||
ES3.Save("SongBlockSaves", songBlocks, GetStorySavePath(chapterName));
|
||||
ES3.Save("TextBlockSaves", dialogBlocks, GetStorySavePath(chapterName));
|
||||
ES3.Save("BlockConnectorSaves", connectors, GetStorySavePath(chapterName));
|
||||
|
||||
SaveStoryVariables();
|
||||
SaveChoices();
|
||||
}
|
||||
}
|
||||
|
||||
public partial class StorySaveModule
|
||||
{
|
||||
public void SaveStoryVariables()
|
||||
{
|
||||
string path = Application.streamingAssetsPath + "/StorySaves/" + "StoryVariables.json";
|
||||
ES3.Save("StoryVariables", storyVariables, path);
|
||||
}
|
||||
|
||||
public void LoadStoryVariables()
|
||||
{
|
||||
string path = Application.streamingAssetsPath + "/StorySaves/" + "StoryVariables.json";
|
||||
if (ES3.FileExists(path))
|
||||
{
|
||||
storyVariables = ES3.Load<Dictionary<string, int>>("StoryVariables", path);
|
||||
}
|
||||
else
|
||||
{
|
||||
storyVariables = new Dictionary<string, int>();
|
||||
}
|
||||
}
|
||||
|
||||
public void SaveChoices()
|
||||
{
|
||||
string path = Application.streamingAssetsPath + "/StorySaves/" + "Choices.json";
|
||||
ES3.Save("Choices", selectedChoices, path);
|
||||
}
|
||||
|
||||
public void LoadChoices()
|
||||
{
|
||||
string path = Application.streamingAssetsPath + "/StorySaves/" + "Choices.json";
|
||||
if (ES3.FileExists(path))
|
||||
{
|
||||
selectedChoices = ES3.Load<Dictionary<string, int>>("Choices", path);
|
||||
}
|
||||
else
|
||||
{
|
||||
selectedChoices = new Dictionary<string, int>();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6de7129c47df0eb47858a380f344dfe2
|
||||
guid: cffb558157bfb9a49a2a624f025f8958
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
13
Assets/Scripts/Menu/SongSelection/BeatmapSave.cs
Normal file
13
Assets/Scripts/Menu/SongSelection/BeatmapSave.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ichni.RhythmGame
|
||||
{
|
||||
public class BeatmapSave
|
||||
{
|
||||
public float accuracy;
|
||||
public bool isFullCombo;
|
||||
public bool isAllPerfect;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c427891d163b0a5468cedefc05f055dc
|
||||
guid: 6b751bb37660d844780656591830afff
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@@ -1,18 +1,26 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Ichni.RhythmGame;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
public class SongSelectionManager : MonoBehaviour
|
||||
namespace Ichni.Menu
|
||||
{
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
public partial class SongSelectionManager : SerializedMonoBehaviour
|
||||
{
|
||||
|
||||
}
|
||||
public static SongSelectionManager instance;
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
instance = this;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public partial class SongSelectionManager
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
13
Assets/Scripts/Menu/SongSelection/SongStatusSave.cs
Normal file
13
Assets/Scripts/Menu/SongSelection/SongStatusSave.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ichni.RhythmGame
|
||||
{
|
||||
public class SongStatusSave
|
||||
{
|
||||
public bool isCompleted;
|
||||
public string additionalInfo;
|
||||
public Dictionary<string, BeatmapSave> beatmapSaves;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6be21a0f3163e154ca67d55f70a2617b
|
||||
guid: 0e15d295a0ae77041ad0269ab3801bc3
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@@ -89,5 +89,15 @@ namespace Ichni
|
||||
// 最后赋值 target.anchoredPosition = localPos;
|
||||
return localPos;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取目标 RectTransform 在目标空间 RectTransform 中的本地位置
|
||||
/// </summary>
|
||||
public static Vector2 GetLocalUIPosition(RectTransform targetRect, RectTransform targetSpace)
|
||||
{
|
||||
Vector2 screenPos = RectTransformUtility.WorldToScreenPoint(null, targetRect.position);
|
||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(targetSpace, screenPos, null, out Vector2 localPos);
|
||||
return localPos;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,7 @@ namespace Ichni.Story
|
||||
|
||||
public Dictionary<string, List<string>> functionDictionary;
|
||||
public Dictionary<string, List<DialogSentence>> dialogDictionary;
|
||||
public Dictionary<string, List<Choice>> choiceDictionary;
|
||||
public Dictionary<string, ChoiceGroup> choiceDictionary;
|
||||
public Dictionary<string, List<Condition>> conditionDictionary;
|
||||
|
||||
private string currentLoadingDialog;
|
||||
@@ -41,32 +41,32 @@ namespace Ichni.Story
|
||||
|
||||
public void SetDialog(string dialogName)
|
||||
{
|
||||
TextAsset dialog = Resources.Load<TextAsset>("Dialogs/" + dialogName);
|
||||
SetDialog(new List<TextAsset> { dialog }, "Entry");
|
||||
string chapter = StoryManager.instance.currentChapter;
|
||||
TextAsset dialog = Resources.Load<TextAsset>("Story/" + chapter + "/Dialogs/" + dialogName);
|
||||
SetDialog(new List<TextAsset> { dialog });
|
||||
}
|
||||
|
||||
public void SetDialog(List<TextAsset> dialogFiles, string dialogParagraphName)
|
||||
public void SetDialog(List<TextAsset> dialogFiles, string dialogParagraphName = "")
|
||||
{
|
||||
dialogUIPage.FadeIn();
|
||||
|
||||
currentDialog = "NULL";
|
||||
isPlayingDialog = true;
|
||||
LoadDialog(dialogFiles);
|
||||
|
||||
if (!string.IsNullOrEmpty(dialogParagraphName))
|
||||
{
|
||||
currentDialog = dialogParagraphName;
|
||||
}
|
||||
|
||||
PlayNextDialogParagraph(currentDialog);
|
||||
currentDialog = "NULL";
|
||||
LoadDialog(dialogFiles, out string firstHeader);
|
||||
|
||||
Debug.Log($"Loaded dialog, first header: {firstHeader}");
|
||||
currentDialog = dialogParagraphName == "" ? firstHeader : dialogParagraphName;
|
||||
|
||||
Debug.Log($"Setting dialog to: {currentDialog}");
|
||||
}
|
||||
|
||||
public void PlayNextDialogParagraph(string nextDialog)
|
||||
public void PlayNextDialogParagraph(string nextDialog, bool invokeFunctions = true)
|
||||
{
|
||||
currentDialog = nextDialog;
|
||||
currentDialogSentenceIndex = 0;
|
||||
|
||||
if (functionDictionary.TryGetValue(currentDialog, out List<string> functionList))
|
||||
if (invokeFunctions && functionDictionary.TryGetValue(currentDialog, out List<string> functionList))
|
||||
{
|
||||
functionList.ForEach(x => StoryInterpreters.FunctionInterpreter.Eval(x));
|
||||
}
|
||||
@@ -83,11 +83,8 @@ namespace Ichni.Story
|
||||
{
|
||||
currentFinalType = "None";
|
||||
}
|
||||
|
||||
PlayDialog();
|
||||
}
|
||||
|
||||
[Button("Test Play")]
|
||||
public void PlayDialog()
|
||||
{
|
||||
if(currentDialog == "NULL")
|
||||
@@ -95,11 +92,10 @@ namespace Ichni.Story
|
||||
throw new Exception("Current dialog is NULL");
|
||||
}
|
||||
|
||||
/*if (dialogInterface.dialogTextFrame.isPlayingSentence)
|
||||
if (isPlayingChoice)
|
||||
{
|
||||
dialogInterface.dialogTextFrame.FinishSentence();
|
||||
return;
|
||||
}*/
|
||||
}
|
||||
|
||||
if (dialogDictionary[currentDialog].Count > 0 && currentDialogSentenceIndex < dialogDictionary[currentDialog].Count)
|
||||
{
|
||||
@@ -107,7 +103,7 @@ namespace Ichni.Story
|
||||
|
||||
string interpretedContent = currentSentence.GetInterpretedContent();
|
||||
|
||||
dialogUIPage.textFrame.PlaySentence(currentSentence.characterName, interpretedContent);
|
||||
dialogUIPage.dialogContentFrame.PlaySentence(currentSentence.characterName, interpretedContent);
|
||||
currentDialogSentenceIndex++;
|
||||
|
||||
if (currentDialogSentenceIndex <= dialogDictionary[currentDialog].Count)
|
||||
@@ -121,7 +117,7 @@ namespace Ichni.Story
|
||||
if (currentFinalType == "Choice")
|
||||
{
|
||||
isPlayingChoice = true;
|
||||
dialogUIPage.choiceFrame.PlayChoice(choiceDictionary[currentDialog]);
|
||||
dialogUIPage.dialogContentFrame.PlayChoice(choiceDictionary[currentDialog]);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -140,21 +136,65 @@ namespace Ichni.Story
|
||||
|
||||
if (currentFinalType == "None" && currentDialogSentenceIndex >= dialogDictionary[currentDialog].Count)
|
||||
{
|
||||
dialogUIPage.FadeOut();
|
||||
dialogUIPage.choiceFrame.gameObject.SetActive(false);
|
||||
//currentDialogNPC.priorStoryTexts.Remove(dialogTextAsset);
|
||||
//currentDialogNPC = null;
|
||||
StoryManager.instance.storyline.currentBlock.state = StoryBlockState.Completed;
|
||||
isPlayingDialog = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void RevealDialog()
|
||||
{
|
||||
string finalType;
|
||||
int max = 0;
|
||||
|
||||
do
|
||||
{
|
||||
finalType = currentFinalType;
|
||||
currentDialogSentenceIndex = 0;
|
||||
|
||||
foreach (DialogSentence sentence in dialogDictionary[currentDialog])
|
||||
{
|
||||
string interpretedContent = sentence.GetInterpretedContent();
|
||||
dialogUIPage.dialogContentFrame.PlaySentence(sentence.characterName, interpretedContent);
|
||||
currentDialogSentenceIndex++;
|
||||
}
|
||||
|
||||
if (finalType == "Choice")
|
||||
{
|
||||
ChoiceGroup choiceGroup = choiceDictionary[currentDialog];
|
||||
int choiceIndex = GameSaveManager.instance.StorySaveModule.selectedChoices[choiceGroup.choiceName];
|
||||
dialogUIPage.dialogContentFrame.SelectChoice(choiceGroup, choiceIndex);
|
||||
}
|
||||
|
||||
if (finalType == "Condition")
|
||||
{
|
||||
foreach (var condition in conditionDictionary[currentDialog])
|
||||
{
|
||||
if (condition.GetConditionResult())
|
||||
{
|
||||
PlayNextDialogParagraph(condition.nextDialogName, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
max++;
|
||||
|
||||
if (max > 1024)
|
||||
{
|
||||
throw new Exception("An infinite loop may detected in dialog parsing. Please check the dialog structure.");
|
||||
}
|
||||
|
||||
} while (finalType != "None");
|
||||
}
|
||||
}
|
||||
|
||||
public partial class DialogManager
|
||||
{
|
||||
public void LoadDialog(List<TextAsset> dialogFiles)
|
||||
public void LoadDialog(List<TextAsset> dialogFiles, out string firstHeader)
|
||||
{
|
||||
ClearDictionaries();
|
||||
|
||||
firstHeader = string.Empty;
|
||||
|
||||
dialogTextAssets = dialogFiles;
|
||||
List<string> dialogLines = new List<string>();
|
||||
|
||||
@@ -165,20 +205,34 @@ namespace Ichni.Story
|
||||
|
||||
dialogLines.RemoveAll(line => line.Trim() == "");
|
||||
|
||||
dialogLines.ForEach(Debug.Log);
|
||||
//dialogLines.ForEach(Debug.Log);
|
||||
|
||||
foreach (var line in from line in dialogLines
|
||||
where !ParseHeader(line)
|
||||
where !ParseChoiceModule(line)
|
||||
where !ParseConditionModule(line)
|
||||
where !ParseDialogSentence(line)
|
||||
select line)
|
||||
foreach (string line in dialogLines)
|
||||
{
|
||||
throw new Exception($"Invalid dialog line: {line}"); // 抛出异常,提示不合法的对话行
|
||||
if (!ParseHeader(line))
|
||||
{
|
||||
if (!ParseChoiceModule(line))
|
||||
{
|
||||
if (!ParseConditionModule(line))
|
||||
{
|
||||
if (!ParseDialogSentence(line))
|
||||
{
|
||||
throw new Exception($"Invalid dialog line: {line}"); // 抛出异常,提示不合法的对话行
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (firstHeader == string.Empty)
|
||||
{
|
||||
firstHeader = currentDialog;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//dialogDictionary.RemoveWhere((header, sentences) => sentences == null || sentences.Count == 0);
|
||||
choiceDictionary.RemoveWhere((header, choices) => choices == null || choices.Count == 0);
|
||||
choiceDictionary.RemoveWhere((header, choices) => choices == null || choices.choices.Count == 0);
|
||||
conditionDictionary.RemoveWhere((header, conditions) => conditions == null || conditions.Count == 0);
|
||||
}
|
||||
|
||||
@@ -244,7 +298,7 @@ namespace Ichni.Story
|
||||
currentLoadingDialog = dialogTitle.Replace("[", "").Replace("]", "");
|
||||
|
||||
dialogDictionary.Add(currentLoadingDialog, new List<DialogSentence>());
|
||||
choiceDictionary.Add(currentLoadingDialog, new List<Choice>());
|
||||
//choiceDictionary.Add(currentLoadingDialog, new ChoiceGroup("Error"));
|
||||
conditionDictionary.Add(currentLoadingDialog, new List<Condition>());
|
||||
|
||||
if (currentDialog == "NULL")
|
||||
@@ -278,7 +332,7 @@ namespace Ichni.Story
|
||||
|
||||
public bool ParseDialogSentence(string line)
|
||||
{
|
||||
//speakerName(emotion):sentence
|
||||
//speakerName:sentence
|
||||
|
||||
string[] sentenceData;
|
||||
if (line.Contains(":"))
|
||||
@@ -291,30 +345,14 @@ namespace Ichni.Story
|
||||
}
|
||||
|
||||
string character = sentenceData[0];
|
||||
|
||||
string speakerName = character;
|
||||
string emotion = "Default";
|
||||
|
||||
|
||||
if (character.Contains("("))
|
||||
{
|
||||
emotion = character.Split("(")[1].Replace(")", "");
|
||||
speakerName = character.Split("(")[0];
|
||||
}
|
||||
else if (character.Contains("("))
|
||||
{
|
||||
emotion = character.Split("(")[1].Replace(")", "");
|
||||
speakerName = character.Split("(")[0];
|
||||
}
|
||||
|
||||
DialogSentence dialogSentence = new DialogSentence
|
||||
{
|
||||
characterName = speakerName,
|
||||
characterEmotion = emotion,
|
||||
content = sentenceData[1]
|
||||
characterName = speakerName.Trim(),
|
||||
content = sentenceData[1].Trim()
|
||||
};
|
||||
|
||||
|
||||
dialogDictionary[currentLoadingDialog].Add(dialogSentence);
|
||||
|
||||
return true;
|
||||
@@ -322,9 +360,9 @@ namespace Ichni.Story
|
||||
|
||||
public bool ParseChoiceModule(string line)
|
||||
{
|
||||
//$Choice{
|
||||
//choiceText0(Hint0)->[nextDialogName0];
|
||||
//choiceText1(Hint1)->[nextDialogName1];
|
||||
//$Choice(ChoiceName){
|
||||
//choiceText0->[nextDialogName0];
|
||||
//choiceText1->[nextDialogName1];
|
||||
//}
|
||||
|
||||
line = line.Trim();
|
||||
@@ -333,23 +371,21 @@ namespace Ichni.Story
|
||||
{
|
||||
string[] choiceModuleData = line.Split('{');
|
||||
|
||||
List<Choice> choices = new List<Choice>();
|
||||
string choiceName = choiceModuleData[0].Split('(')[1].Replace(")", "").Trim();
|
||||
ChoiceGroup choiceGroup = new ChoiceGroup(choiceName);
|
||||
|
||||
string[] choiceData = choiceModuleData[1].Split(';');
|
||||
|
||||
for (var index = 0; index < choiceData.Length - 1; index++)
|
||||
{
|
||||
Choice choice = new Choice
|
||||
{
|
||||
choiceText = choiceData[index].Split("->")[0].Split("(")[0].Trim(),
|
||||
hint = choiceData[index].Split("->")[0].Split("(")[1].Replace(")", "").Trim(),
|
||||
nextDialogName = choiceData[index].Split("->[")[1].Replace("]", "").Trim(),
|
||||
};
|
||||
choiceData[index] = choiceData[index].Replace(" ", "").Replace("\n", "").Replace("\r", "").Trim();
|
||||
|
||||
string choiceText = choiceData[index].Split("->[")[0].Trim();
|
||||
string nextDialogName = choiceData[index].Split("->[")[1].Replace("]", "").Trim();
|
||||
|
||||
choices.Add(choice);
|
||||
choiceGroup.choices.Add(new Choice(choiceText, nextDialogName));
|
||||
}
|
||||
|
||||
choiceDictionary[currentLoadingDialog] = choices;
|
||||
choiceDictionary[currentLoadingDialog] = choiceGroup;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -10,19 +10,17 @@ namespace Ichni.Story
|
||||
public string audioEventName;
|
||||
|
||||
public string characterName;
|
||||
public string characterEmotion;
|
||||
|
||||
public DialogSentence()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public DialogSentence(string content, string audioEventName, string characterName, string characterEmotion)
|
||||
public DialogSentence(string content, string audioEventName, string characterName)
|
||||
{
|
||||
this.content = content;
|
||||
this.audioEventName = audioEventName;
|
||||
this.characterName = characterName;
|
||||
this.characterEmotion = characterEmotion;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -62,12 +60,29 @@ namespace Ichni.Story
|
||||
return string.Join("", parts);
|
||||
}
|
||||
}
|
||||
|
||||
public class ChoiceGroup
|
||||
{
|
||||
public string choiceName;
|
||||
public List<Choice> choices;
|
||||
|
||||
public ChoiceGroup(string choiceName)
|
||||
{
|
||||
this.choiceName = choiceName;
|
||||
this.choices = new List<Choice>();
|
||||
}
|
||||
}
|
||||
|
||||
public class Choice
|
||||
{
|
||||
public string choiceText;
|
||||
public string hint;
|
||||
public string nextDialogName;
|
||||
|
||||
public Choice(string choiceText, string nextDialogName)
|
||||
{
|
||||
this.choiceText = choiceText;
|
||||
this.nextDialogName = nextDialogName;
|
||||
}
|
||||
}
|
||||
|
||||
public class Condition
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using DynamicExpresso;
|
||||
using Ichni.Story;
|
||||
using Ichni.Story.UI;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ichni.Story
|
||||
@@ -21,23 +22,34 @@ namespace Ichni.Story
|
||||
|
||||
static void SetFunctionInterpreter()
|
||||
{
|
||||
FunctionInterpreter.SetFunction("GetGlobalVariable", new Func<string, int>(GetGlobalVariable));
|
||||
FunctionInterpreter.SetFunction("SetVariable", new Action<string, int>(SetStoryVariable));
|
||||
FunctionInterpreter.SetFunction("GetVariable", new Func<string, int>(GetStoryVariable));
|
||||
FunctionInterpreter.SetFunction("GenerateDialogBlock", new Action<string>(GenerateDialogBlock));
|
||||
FunctionInterpreter.SetFunction("GenerateSongBlock", new Action<string>(GenerateSongBlock));
|
||||
}
|
||||
|
||||
static void SetConditionInterpreter()
|
||||
{
|
||||
ConditionInterpreter.SetFunction("GetGlobalVariable", new Func<string, int>(GetGlobalVariable));
|
||||
ConditionInterpreter.SetFunction("GetVariable", new Func<string, int>(GetStoryVariable));
|
||||
}
|
||||
}
|
||||
|
||||
public static partial class StoryInterpreters
|
||||
{
|
||||
/// <summary>
|
||||
/// 设置全局变量的值
|
||||
/// </summary>
|
||||
static void SetStoryVariable(string variableName, int value)
|
||||
{
|
||||
GameSaveManager.instance.StorySaveModule.storyVariables[variableName] = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取全局变量的值
|
||||
/// </summary>
|
||||
static int GetGlobalVariable(string variableName)
|
||||
static int GetStoryVariable(string variableName)
|
||||
{
|
||||
if (StoryManager.instance.globalVariables.TryGetValue(variableName, out int value))
|
||||
if (GameSaveManager.instance.StorySaveModule.storyVariables.TryGetValue(variableName, out int value))
|
||||
{
|
||||
return value;
|
||||
}
|
||||
@@ -45,4 +57,23 @@ namespace Ichni.Story
|
||||
throw new ArgumentException($"Global variable '{variableName}' not found.");
|
||||
}
|
||||
}
|
||||
|
||||
public static partial class StoryInterpreters
|
||||
{
|
||||
static void GenerateDialogBlock(string blockName)
|
||||
{
|
||||
StoryBlockUIBase currentBlock = StoryManager.instance.storyline.currentBlock;
|
||||
Vector2 positionOffset = new Vector2(500, 0);
|
||||
DialogBlockUI newBlock = StoryManager.instance.storyline.GenerateDialogBlock(blockName, currentBlock.blockPosition + positionOffset, StoryBlockState.Current);
|
||||
StoryManager.instance.storyline.GenerateConnector(currentBlock, newBlock);
|
||||
}
|
||||
|
||||
static void GenerateSongBlock(string blockName)
|
||||
{
|
||||
StoryBlockUIBase currentBlock = StoryManager.instance.storyline.currentBlock;
|
||||
Vector2 positionOffset = new Vector2(500, 0);
|
||||
SongBlockUI newBlock = StoryManager.instance.storyline.GenerateSongBlock(blockName, currentBlock.blockPosition + positionOffset, StoryBlockState.Current);
|
||||
StoryManager.instance.storyline.GenerateConnector(currentBlock, newBlock);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,18 +8,32 @@ using UnityEngine.Serialization;
|
||||
|
||||
namespace Ichni.Story
|
||||
{
|
||||
public class StoryManager : SerializedMonoBehaviour
|
||||
public partial class StoryManager : SerializedMonoBehaviour
|
||||
{
|
||||
public static StoryManager instance;
|
||||
|
||||
[FormerlySerializedAs("storylineDisplay")] public Storyline storyline;
|
||||
public StoryUIPage storyUIPage;
|
||||
|
||||
public string currentChapter;
|
||||
public Dictionary<string, StoryData> storyDatas;
|
||||
|
||||
public StorylineDisplay storylineDisplay;
|
||||
[FormerlySerializedAs("StoryPage")] public StoryUIPage storyUIPage;
|
||||
|
||||
public Dictionary<string, int> globalVariables;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
instance = this;
|
||||
}
|
||||
}
|
||||
|
||||
public partial class StoryManager
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public enum StoryBlockState
|
||||
{
|
||||
Locked,
|
||||
Current,
|
||||
Completed
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ichni.Story
|
||||
{
|
||||
public class StoryBlock
|
||||
{
|
||||
public string blockName; // 单元格标识名
|
||||
public int rowIndex; // 剧情线编号
|
||||
public int timeColumn; // 时间列索引
|
||||
public bool isCompleted = false; // 完成状态
|
||||
public int requiredCount; // 前序节点未完成计数
|
||||
public StoryBlock nextBlock; // 下一个单元格
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ichni.Story
|
||||
{
|
||||
public class StoryChapter : MonoBehaviour
|
||||
{
|
||||
public List<Storyline> storylines;
|
||||
}
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ichni.Story
|
||||
{
|
||||
[CreateAssetMenu(fileName = "StoryData", menuName = "Ichni/Story/StoryData")]
|
||||
public class StoryData : SerializedScriptableObject
|
||||
{
|
||||
public List<StoryBlockData> StoryBlockDatas; // 剧情单元格名称列表
|
||||
public Dictionary<string, int> storyVariables; // 剧情变量字典,键为变量名,值为默认值,如果Save中没有该变量,则生成,并使用默认值
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class StoryBlockData
|
||||
{
|
||||
public string blockName;
|
||||
public string blockID;
|
||||
|
||||
public StoryBlockData(string blockName, string blockID)
|
||||
{
|
||||
this.blockName = blockName;
|
||||
this.blockID = blockID;
|
||||
}
|
||||
}
|
||||
}
|
||||
8
Assets/Scripts/Story/StoryData.meta
Normal file
8
Assets/Scripts/Story/StoryData.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 31a6a9bf0919951489cacfb86fb715c9
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
106
Assets/Scripts/Story/StoryData/StoryData.cs
Normal file
106
Assets/Scripts/Story/StoryData/StoryData.cs
Normal file
@@ -0,0 +1,106 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace Ichni.Story
|
||||
{
|
||||
[CreateAssetMenu(fileName = "StoryData", menuName = "Ichni/Story/StoryData")]
|
||||
public class StoryData : SerializedScriptableObject
|
||||
{
|
||||
public List<DialogBlockData> dialogBlockDatas; // 剧情单元格名称列表
|
||||
public List<SongBlockData> songBlockDatas; // 音乐单元格名称列表
|
||||
public List<TutorialBlockData> tutorialBlockDatas; // 教程单元格名称列表
|
||||
public List<InitialBlockData> initialBlocks; // 初始剧情单元格列表,包含所有初始剧情单元格的名称
|
||||
|
||||
public StoryBlockData GetDataByName(string blockName, out Type dataType)
|
||||
{
|
||||
foreach (var block in tutorialBlockDatas.Where(block => block.blockName == blockName))
|
||||
{
|
||||
dataType = typeof(TutorialBlockData);
|
||||
return block;
|
||||
}
|
||||
|
||||
foreach (var block in songBlockDatas.Where(block => block.blockName == blockName))
|
||||
{
|
||||
dataType = typeof(SongBlockData);
|
||||
return block;
|
||||
}
|
||||
|
||||
foreach (var block in dialogBlockDatas.Where(block => block.blockName == blockName))
|
||||
{
|
||||
dataType = typeof(DialogBlockData);
|
||||
return block;
|
||||
}
|
||||
|
||||
throw new ArgumentException($"No block found with name: {blockName}");
|
||||
}
|
||||
}
|
||||
|
||||
[InlineProperty]
|
||||
[Serializable]
|
||||
public class InitialBlockData
|
||||
{
|
||||
public string blockName;
|
||||
public StoryBlockState initialState; // 初始状态
|
||||
public Vector2 blockPosition; // 初始位置
|
||||
public List<string> nextBlocks; // 下一步可选的剧情单元格名称列表
|
||||
}
|
||||
|
||||
[InlineProperty]
|
||||
[Serializable]
|
||||
public class StoryBlockData
|
||||
{
|
||||
[FoldoutGroup("$blockName", true)]
|
||||
public string blockName;
|
||||
[FoldoutGroup("$blockName")]
|
||||
public string blockID;
|
||||
[FoldoutGroup("$blockName")]
|
||||
public Vector2 blockSize;
|
||||
}
|
||||
|
||||
[InlineProperty]
|
||||
[Serializable]
|
||||
public class TutorialBlockData : StoryBlockData
|
||||
{
|
||||
[FoldoutGroup("$blockName")]
|
||||
public string tutorialName;
|
||||
|
||||
|
||||
public TutorialBlockData()
|
||||
{
|
||||
this.blockSize = new Vector2(400, 200);
|
||||
}
|
||||
}
|
||||
|
||||
[InlineProperty]
|
||||
[Serializable]
|
||||
public class DialogBlockData : StoryBlockData
|
||||
{
|
||||
[FoldoutGroup("$blockName")]
|
||||
public string dialogTitle;
|
||||
|
||||
|
||||
public DialogBlockData()
|
||||
{
|
||||
this.blockSize = new Vector2(400, 200);
|
||||
}
|
||||
}
|
||||
|
||||
[InlineProperty]
|
||||
[Serializable]
|
||||
public class SongBlockData : StoryBlockData
|
||||
{
|
||||
[FoldoutGroup("$blockName")]
|
||||
public string songName;
|
||||
|
||||
|
||||
public SongBlockData()
|
||||
{
|
||||
this.blockSize = new Vector2(400, 200);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7ab917c50249812429ebd44d6574497c, type: 3}
|
||||
m_Name: StoryData_Chapter1
|
||||
m_EditorClassIdentifier:
|
||||
serializationData:
|
||||
SerializedFormat: 2
|
||||
SerializedBytes:
|
||||
ReferencedUnityObjects: []
|
||||
SerializedBytesString:
|
||||
Prefab: {fileID: 0}
|
||||
PrefabModificationsReferencedUnityObjects: []
|
||||
PrefabModifications: []
|
||||
SerializationNodes:
|
||||
- Name: storyVariables
|
||||
Entry: 7
|
||||
Data: 0|System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Int32,
|
||||
mscorlib]], mscorlib
|
||||
- Name: comparer
|
||||
Entry: 7
|
||||
Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.String,
|
||||
mscorlib]], mscorlib
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 12
|
||||
Data: 1
|
||||
- Name:
|
||||
Entry: 7
|
||||
Data:
|
||||
- Name: $k
|
||||
Entry: 1
|
||||
Data: TestVariable
|
||||
- Name: $v
|
||||
Entry: 3
|
||||
Data: 0
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 13
|
||||
Data:
|
||||
- Name:
|
||||
Entry: 8
|
||||
Data:
|
||||
StoryBlockDatas:
|
||||
- blockName:
|
||||
blockID:
|
||||
blockPosition: {x: 0, y: 0}
|
||||
previousBlockIDs: []
|
||||
nextBlockIDs: []
|
||||
@@ -4,26 +4,50 @@ using UnityEngine;
|
||||
|
||||
namespace Ichni.Story
|
||||
{
|
||||
public class StorySave : MonoBehaviour
|
||||
{
|
||||
public StoryBlockSave blockSave;
|
||||
public StoryVariableSave variableSave;
|
||||
}
|
||||
|
||||
public class StoryBlockSave
|
||||
{
|
||||
public enum StoryBlockState
|
||||
public string blockName;
|
||||
public Vector2 position;
|
||||
public StoryBlockState state;
|
||||
|
||||
public StoryBlockSave(string blockName, Vector2 position, StoryBlockState state)
|
||||
{
|
||||
Locked,
|
||||
Current,
|
||||
Completed
|
||||
this.blockName = blockName;
|
||||
this.state = state;
|
||||
this.position = position;
|
||||
}
|
||||
|
||||
public Dictionary<string, StoryBlockState> storyBlockStates = new Dictionary<string, StoryBlockState>();
|
||||
}
|
||||
|
||||
public class StoryVariableSave
|
||||
public class TutorialBlockSave : StoryBlockSave
|
||||
{
|
||||
public Dictionary<string, int> variables = new Dictionary<string, int>();
|
||||
public TutorialBlockSave(string blockName, Vector2 position, StoryBlockState state) : base(blockName, position, state)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public class DialogBlockSave : StoryBlockSave
|
||||
{
|
||||
public DialogBlockSave(string blockName, Vector2 position, StoryBlockState state) : base(blockName, position, state)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public class SongBlockSave : StoryBlockSave
|
||||
{
|
||||
public SongBlockSave(string blockName, Vector2 position, StoryBlockState state) : base(blockName, position, state)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public class BlockConnectorSave
|
||||
{
|
||||
public string startBlockName;
|
||||
public string endBlockName;
|
||||
|
||||
public BlockConnectorSave(string startBlockName, string endBlockName)
|
||||
{
|
||||
this.startBlockName = startBlockName;
|
||||
this.endBlockName = endBlockName;
|
||||
}
|
||||
}
|
||||
}
|
||||
8
Assets/Scripts/Story/StoryUI/Blocks.meta
Normal file
8
Assets/Scripts/Story/StoryUI/Blocks.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b2c23056fb0ab4b45a8db11866018794
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
18
Assets/Scripts/Story/StoryUI/Blocks/BeatmapStatusMark.cs
Normal file
18
Assets/Scripts/Story/StoryUI/Blocks/BeatmapStatusMark.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class BeatmapStatusMark : MonoBehaviour
|
||||
{
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4634e1beb428cb341974c13687d09bfa
|
||||
guid: b547d2cc398393a46a2a4c503f128cac
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Ichni.Story.UI;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI.Extensions;
|
||||
|
||||
@@ -8,6 +9,8 @@ namespace Ichni.Story
|
||||
public class BlockConnectorUI : MonoBehaviour
|
||||
{
|
||||
public UILineRenderer curve;
|
||||
public StoryBlockUIBase startBlock;
|
||||
public StoryBlockUIBase endBlock;
|
||||
|
||||
public void SetCurve(Vector2 startPosition, Vector2 endPosition)
|
||||
{
|
||||
@@ -20,7 +23,7 @@ namespace Ichni.Story
|
||||
curve.Points = new Vector2[]
|
||||
{
|
||||
startPosition,
|
||||
mid1,
|
||||
//mid1,
|
||||
mid2,
|
||||
endPosition
|
||||
};
|
||||
51
Assets/Scripts/Story/StoryUI/Blocks/DialogBlockUI.cs
Normal file
51
Assets/Scripts/Story/StoryUI/Blocks/DialogBlockUI.cs
Normal file
@@ -0,0 +1,51 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Ichni.Story.UI
|
||||
{
|
||||
public class DialogBlockUI : StoryBlockUIBase
|
||||
{
|
||||
public string blockTitle;
|
||||
public TMP_Text titleText;
|
||||
|
||||
public Button button;
|
||||
public List<ChoiceGroupUI> choiceGroups;
|
||||
|
||||
public void Initialize(string blockName, Vector2 position, Vector2 positionOffset,
|
||||
Vector2 size, StoryBlockState state, string blockTitle)
|
||||
{
|
||||
base.Initialize(blockName, position, positionOffset, size, state);
|
||||
|
||||
this.blockTitle = blockTitle;
|
||||
titleText.text = blockTitle;
|
||||
|
||||
button.onClick.AddListener(() =>
|
||||
{
|
||||
if(state == StoryBlockState.Locked) return;
|
||||
|
||||
StoryManager.instance.storyline.currentBlock = this;
|
||||
|
||||
if (state == StoryBlockState.Current)
|
||||
{
|
||||
DialogManager.instance.SetDialog(blockName);
|
||||
DialogManager.instance.PlayNextDialogParagraph(DialogManager.instance.currentDialog);
|
||||
}
|
||||
else if (state == StoryBlockState.Completed)
|
||||
{
|
||||
DialogManager.instance.SetDialog(blockName);
|
||||
DialogManager.instance.PlayNextDialogParagraph(DialogManager.instance.currentDialog, false);
|
||||
DialogManager.instance.RevealDialog();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public override StoryBlockSave GetBlockSave()
|
||||
{
|
||||
return new DialogBlockSave(blockName, blockPosition, state);
|
||||
}
|
||||
}
|
||||
}
|
||||
78
Assets/Scripts/Story/StoryUI/Blocks/SongBlockUI.cs
Normal file
78
Assets/Scripts/Story/StoryUI/Blocks/SongBlockUI.cs
Normal file
@@ -0,0 +1,78 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Ichni.Menu;
|
||||
using Ichni.RhythmGame;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Ichni.Story.UI
|
||||
{
|
||||
public class SongBlockUI : StoryBlockUIBase
|
||||
{
|
||||
public string songName;
|
||||
public Button button;
|
||||
public TMP_Text songNameText;
|
||||
public RectTransform beatmapStatusMarkContainer;
|
||||
|
||||
public GameObject beatmapStatusMarkPrefab;
|
||||
|
||||
public void Initialize(string blockName, Vector2 position, Vector2 positionOffset,
|
||||
Vector2 size, StoryBlockState state, string songName)
|
||||
{
|
||||
base.Initialize(blockName, position, positionOffset, size, state);
|
||||
|
||||
this.songName = songName;
|
||||
songNameText.text = songName;
|
||||
|
||||
button.onClick.AddListener(() =>
|
||||
{
|
||||
MenuManager.instance.prepareUIPage.FadeIn();
|
||||
});
|
||||
|
||||
SetUpBeatmapStatusMarks();
|
||||
}
|
||||
|
||||
public override StoryBlockSave GetBlockSave()
|
||||
{
|
||||
return new SongBlockSave(blockName, blockPosition, state);
|
||||
}
|
||||
|
||||
public void SetUpBeatmapStatusMarks()
|
||||
{
|
||||
SongStatusSave songStatusSave = GameSaveManager.instance.SongSaveModule.songStatusSaves[songName];
|
||||
|
||||
string chapter = StoryManager.instance.currentChapter;
|
||||
ChapterSelectionUnit cpt = ChapterSelectionManager.instance.chapters.First(c => c.chapterIndex == chapter);
|
||||
SongItemData song = cpt.songs.First(s => s.songName == this.songName);
|
||||
foreach (DifficultyData difficulty in song.difficultyDataList)
|
||||
{
|
||||
foreach (KeyValuePair<string, BeatmapSave> beatmapSave in songStatusSave.beatmapSaves)
|
||||
{
|
||||
if (beatmapSave.Key == difficulty.difficultyName)
|
||||
{
|
||||
if (beatmapSave.Value.isAllPerfect)
|
||||
{
|
||||
GameObject mark = Instantiate(beatmapStatusMarkPrefab, beatmapStatusMarkContainer);
|
||||
mark.GetComponent<Image>().color = difficulty.color;
|
||||
mark.transform.GetChild(0).GetComponent<TMP_Text>().color = difficulty.color;
|
||||
mark.transform.GetChild(0).GetComponent<TMP_Text>().text = "AP";
|
||||
break;
|
||||
}
|
||||
|
||||
if (beatmapSave.Value.isFullCombo)
|
||||
{
|
||||
GameObject mark = Instantiate(beatmapStatusMarkPrefab, beatmapStatusMarkContainer);
|
||||
mark.GetComponent<Image>().color = difficulty.color;
|
||||
mark.transform.GetChild(0).GetComponent<TMP_Text>().color = difficulty.color;
|
||||
mark.transform.GetChild(0).GetComponent<TMP_Text>().text = "FC";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
30
Assets/Scripts/Story/StoryUI/Blocks/StoryBlockUIBase.cs
Normal file
30
Assets/Scripts/Story/StoryUI/Blocks/StoryBlockUIBase.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace Ichni.Story.UI
|
||||
{
|
||||
public abstract class StoryBlockUIBase : MonoBehaviour
|
||||
{
|
||||
public string blockName;
|
||||
public Vector2 blockPosition;
|
||||
public StoryBlockState state;
|
||||
|
||||
public RectTransform blockRect;
|
||||
public RectTransform inPort;
|
||||
public RectTransform outPort;
|
||||
|
||||
protected void Initialize(string blockName, Vector2 position, Vector2 positionOffset, Vector2 size, StoryBlockState state)
|
||||
{
|
||||
this.blockName = blockName;
|
||||
this.blockPosition = position;
|
||||
this.state = state;
|
||||
|
||||
blockRect.anchoredPosition = position + positionOffset;
|
||||
blockRect.sizeDelta = size;
|
||||
}
|
||||
|
||||
public abstract StoryBlockSave GetBlockSave();
|
||||
}
|
||||
}
|
||||
34
Assets/Scripts/Story/StoryUI/Blocks/TutorialBlockUI.cs
Normal file
34
Assets/Scripts/Story/StoryUI/Blocks/TutorialBlockUI.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Ichni.Story.UI
|
||||
{
|
||||
public class TutorialBlockUI : StoryBlockUIBase
|
||||
{
|
||||
public Button button;
|
||||
public string tutorialName;
|
||||
public TMP_Text tutorialNameText;
|
||||
|
||||
public void Initialize(string blockName, Vector2 position, Vector2 positionOffset, Vector2 size, StoryBlockState state, string tutorialName)
|
||||
{
|
||||
base.Initialize(blockName, position, positionOffset, size, state);
|
||||
|
||||
this.tutorialName = tutorialName;
|
||||
tutorialNameText.text = tutorialName;
|
||||
|
||||
button.onClick.AddListener(() =>
|
||||
{
|
||||
//DialogManager.instance.SetDialog(blockName);
|
||||
});
|
||||
}
|
||||
|
||||
public override StoryBlockSave GetBlockSave()
|
||||
{
|
||||
return new TutorialBlockSave(blockName, blockPosition, state);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,9 +2,9 @@ using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ichni.Story
|
||||
namespace Ichni.Story.UI
|
||||
{
|
||||
public class Storyline : MonoBehaviour
|
||||
public class ChoiceButtonUI : MonoBehaviour
|
||||
{
|
||||
|
||||
}
|
||||
11
Assets/Scripts/Story/StoryUI/DialogUI/ChoiceButtonUI.cs.meta
Normal file
11
Assets/Scripts/Story/StoryUI/DialogUI/ChoiceButtonUI.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 90f34f59ff260c44796d71c51b7c0ee6
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
45
Assets/Scripts/Story/StoryUI/DialogUI/ChoiceGroupUI.cs
Normal file
45
Assets/Scripts/Story/StoryUI/DialogUI/ChoiceGroupUI.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using I2.Loc;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Ichni.Story.UI
|
||||
{
|
||||
public class ChoiceGroupUI : MonoBehaviour
|
||||
{
|
||||
public GameObject choiceButtonPrefab;
|
||||
public RectTransform container;
|
||||
|
||||
public List<Button> choiceButtonList;
|
||||
|
||||
public string choiceName;
|
||||
public int choiceIndex;
|
||||
|
||||
public void Initialize(ChoiceGroup choiceGroup)
|
||||
{
|
||||
this.choiceName = choiceGroup.choiceName;
|
||||
choiceButtonList = new List<Button>();
|
||||
|
||||
for (var index = 0; index < choiceGroup.choices.Count; index++)
|
||||
{
|
||||
var choice = choiceGroup.choices[index];
|
||||
int cIndex = index; // Capture the current index for the listener
|
||||
|
||||
GameObject choiceButton = Instantiate(choiceButtonPrefab, container);
|
||||
choiceButton.GetComponentInChildren<Localize>().SetTerm(StoryManager.instance.currentChapter + "/" + choice.choiceText);
|
||||
choiceButton.GetComponent<Button>().onClick.AddListener(() =>
|
||||
{
|
||||
DialogManager.instance.PlayNextDialogParagraph(choice.nextDialogName);
|
||||
DialogManager.instance.isPlayingChoice = false;
|
||||
choiceButtonList.ForEach(b => b.interactable = false);
|
||||
DialogManager.instance.PlayDialog();
|
||||
this.choiceIndex = cIndex;
|
||||
GameSaveManager.instance.StorySaveModule.selectedChoices[choiceName] = cIndex;
|
||||
});
|
||||
choiceButtonList.Add(choiceButton.GetComponent<Button>());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Story/StoryUI/DialogUI/ChoiceGroupUI.cs.meta
Normal file
11
Assets/Scripts/Story/StoryUI/DialogUI/ChoiceGroupUI.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a653477cd0de8794b810214793b04cc9
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
81
Assets/Scripts/Story/StoryUI/DialogUI/DialogContentFrame.cs
Normal file
81
Assets/Scripts/Story/StoryUI/DialogUI/DialogContentFrame.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using DG.Tweening;
|
||||
using DG.Tweening.Core;
|
||||
using DG.Tweening.Plugins.Options;
|
||||
using I2.Loc;
|
||||
using Ichni.Story.UI;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.Serialization;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Ichni.Story
|
||||
{
|
||||
public class DialogContentFrame : MonoBehaviour, IPointerClickHandler
|
||||
{
|
||||
public GameObject textPrefab;
|
||||
public GameObject choiceGroupPrefab;
|
||||
|
||||
public RectTransform dialogContentContainer;
|
||||
public List<DialogTextUI> dialogTexts;
|
||||
public List<ChoiceGroupUI> choiceGroups;
|
||||
|
||||
public void PlaySentence(string speakerName, string content)
|
||||
{
|
||||
DialogTextUI dialogTextUI = Instantiate(textPrefab, dialogContentContainer).GetComponent<DialogTextUI>();
|
||||
dialogTextUI.speakerNameText.SetTerm("Characters/" + speakerName);
|
||||
dialogTextUI.contentText.SetTerm(StoryManager.instance.currentChapter +"/" +content);
|
||||
dialogTexts.Add(dialogTextUI);
|
||||
}
|
||||
|
||||
public ChoiceGroupUI PlayChoice(ChoiceGroup choiceGroup)
|
||||
{
|
||||
ChoiceGroupUI choiceGroupUI = Instantiate(choiceGroupPrefab, dialogContentContainer).GetComponent<ChoiceGroupUI>();
|
||||
choiceGroupUI.Initialize(choiceGroup);
|
||||
choiceGroups.Add(choiceGroupUI);
|
||||
|
||||
return choiceGroupUI;
|
||||
}
|
||||
|
||||
public void SelectChoice(ChoiceGroup choiceGroup, int index)
|
||||
{
|
||||
ChoiceGroupUI choiceGroupUI = PlayChoice(choiceGroup);
|
||||
for (var buttonIndex = 0; buttonIndex < choiceGroupUI.choiceButtonList.Count; buttonIndex++)
|
||||
{
|
||||
Button b = choiceGroupUI.choiceButtonList[buttonIndex];
|
||||
b.interactable = false;
|
||||
|
||||
if (buttonIndex == index)
|
||||
{
|
||||
b.image.color = Color.red;
|
||||
}
|
||||
}
|
||||
|
||||
DialogManager.instance.PlayNextDialogParagraph(choiceGroup.choices[index].nextDialogName, false);
|
||||
}
|
||||
|
||||
public void ClearAllSentences()
|
||||
{
|
||||
foreach (DialogTextUI dialogText in dialogTexts)
|
||||
{
|
||||
Destroy(dialogText.gameObject);
|
||||
}
|
||||
|
||||
foreach (ChoiceGroupUI choiceGroup in choiceGroups)
|
||||
{
|
||||
Destroy(choiceGroup.gameObject);
|
||||
}
|
||||
|
||||
dialogTexts.Clear();
|
||||
choiceGroups.Clear();
|
||||
}
|
||||
|
||||
public void OnPointerClick(PointerEventData eventData)
|
||||
{
|
||||
DialogManager.instance.PlayDialog();
|
||||
}
|
||||
}
|
||||
}
|
||||
16
Assets/Scripts/Story/StoryUI/DialogUI/DialogTextUI.cs
Normal file
16
Assets/Scripts/Story/StoryUI/DialogUI/DialogTextUI.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using I2.Loc;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Ichni.Story.UI
|
||||
{
|
||||
public class DialogTextUI : MonoBehaviour
|
||||
{
|
||||
public Image background;
|
||||
public Localize speakerNameText;
|
||||
public Localize contentText;
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Story/StoryUI/DialogUI/DialogTextUI.cs.meta
Normal file
11
Assets/Scripts/Story/StoryUI/DialogUI/DialogTextUI.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 831ccff3dc06bfc4884663d623af866d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -10,7 +10,6 @@ namespace Ichni.Story.UI
|
||||
{
|
||||
public class DialogUIPage : UIPageBase
|
||||
{
|
||||
public TextFrame textFrame;
|
||||
public ChoiceFrame choiceFrame;
|
||||
public DialogContentFrame dialogContentFrame;
|
||||
}
|
||||
}
|
||||
279
Assets/Scripts/Story/StoryUI/Storyline.cs
Normal file
279
Assets/Scripts/Story/StoryUI/Storyline.cs
Normal file
@@ -0,0 +1,279 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace Ichni.Story.UI
|
||||
{
|
||||
public partial class Storyline : MonoBehaviour
|
||||
{
|
||||
[Header("UI References")]
|
||||
public RectTransform content; // Content of ScrollRect
|
||||
[FormerlySerializedAs("textBlockPrefab")] public GameObject dialogBlockPrefab; // Prefab of UI Node
|
||||
public GameObject musicBlockPrefab;
|
||||
public GameObject tutorialBlockPrefab;
|
||||
public GameObject connectionCurvePrefab; // Prefab of connection curve
|
||||
|
||||
[Header("Layout Settings")]
|
||||
public float marginLeft = 50f; // additive space on the left
|
||||
public float marginRight = 50f; // Extra space on the right
|
||||
public float marginTop = 50f; // Extra space on the top
|
||||
public float marginBottom = 50f; // Extra space on the bottom
|
||||
public RectTransform connectionContainer;
|
||||
|
||||
public StoryBlockUIBase currentBlock;
|
||||
|
||||
public List<StoryBlockUIBase> storyBlocks;
|
||||
public List<DialogBlockUI> dialogBlocks;
|
||||
public List<SongBlockUI> songBlocks;
|
||||
public List<TutorialBlockUI> tutorialBlocks;
|
||||
public List<BlockConnectorUI> connectors;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
storyBlocks = new List<StoryBlockUIBase>();
|
||||
dialogBlocks = new List<DialogBlockUI>();
|
||||
songBlocks = new List<SongBlockUI>();
|
||||
tutorialBlocks = new List<TutorialBlockUI>();
|
||||
connectors = new List<BlockConnectorUI>();
|
||||
|
||||
//TutorialBlockUI t0 = GenerateTutorialBlock(new Vector2(200, -400), "ZakoCurse 0");
|
||||
//TextBlockUI b1 = GenerateTextBlock("Departure_P1_A", new Vector2(1000, -400), StoryBlockState.Current);
|
||||
|
||||
SetUpStoryline(StoryManager.instance.currentChapter);
|
||||
|
||||
/*GenerateTextBlock("Departure_P1_A", new Vector2(1000, -400), StoryBlockState.Current);
|
||||
GenerateTextBlock("Departure_P2_A", new Vector2(1500, -400), StoryBlockState.Current);
|
||||
GenerateConnector("Departure_P1_A", "Departure_P2_A");*/
|
||||
|
||||
SetUpBackground();
|
||||
connectionContainer.SetParent(content);
|
||||
connectionContainer.SetAsFirstSibling();
|
||||
}
|
||||
}
|
||||
|
||||
public partial class Storyline
|
||||
{
|
||||
public TutorialBlockUI GenerateTutorialBlock(string blockName, Vector2 position, StoryBlockState state)
|
||||
{
|
||||
TutorialBlockUI block = Instantiate(tutorialBlockPrefab, content).GetComponent<TutorialBlockUI>();
|
||||
StoryData storyData = StoryManager.instance.storyDatas[StoryManager.instance.currentChapter];
|
||||
TutorialBlockData blockData = storyData.tutorialBlockDatas.FirstOrDefault(data => data.blockName == blockName);
|
||||
|
||||
if (blockData == null) throw new KeyNotFoundException("There is no block with name " + blockName);
|
||||
|
||||
block.Initialize(blockData.blockName, position, new Vector2(marginLeft, 0), blockData.blockSize, state, blockData.tutorialName);
|
||||
|
||||
storyBlocks.Add(block);
|
||||
tutorialBlocks.Add(block);
|
||||
|
||||
return block;
|
||||
}
|
||||
|
||||
public DialogBlockUI GenerateDialogBlock(string blockName, Vector2 position, StoryBlockState state)
|
||||
{
|
||||
DialogBlockUI block = Instantiate(dialogBlockPrefab, content).GetComponent<DialogBlockUI>();
|
||||
StoryData storyData = StoryManager.instance.storyDatas[StoryManager.instance.currentChapter];
|
||||
DialogBlockData blockData = storyData.dialogBlockDatas.FirstOrDefault(data => data.blockName == blockName);
|
||||
|
||||
if (blockData == null) throw new KeyNotFoundException("There is no block with name " + blockName);
|
||||
|
||||
block.Initialize(blockData.blockName, position, new Vector2(marginLeft, 0), blockData.blockSize, state, blockData.dialogTitle);
|
||||
|
||||
storyBlocks.Add(block);
|
||||
dialogBlocks.Add(block);
|
||||
|
||||
return block;
|
||||
}
|
||||
|
||||
public SongBlockUI GenerateSongBlock(string blockName, Vector2 position, StoryBlockState state)
|
||||
{
|
||||
SongBlockUI block = Instantiate(musicBlockPrefab, content).GetComponent<SongBlockUI>();
|
||||
StoryData storyData = StoryManager.instance.storyDatas[StoryManager.instance.currentChapter];
|
||||
SongBlockData blockData = storyData.songBlockDatas.FirstOrDefault(data => data.blockName == blockName);
|
||||
|
||||
if (blockData == null) throw new KeyNotFoundException("There is no block with name " + blockName);
|
||||
|
||||
block.Initialize(blockName,position,new Vector2(marginLeft, 0), blockData.blockSize, state, blockData.songName);
|
||||
|
||||
storyBlocks.Add(block);
|
||||
songBlocks.Add(block);
|
||||
|
||||
return block;
|
||||
}
|
||||
|
||||
public void GenerateConnector(StoryBlockUIBase startBlock, StoryBlockUIBase endBlock)
|
||||
{
|
||||
BlockConnectorUI connector = Instantiate(connectionCurvePrefab, connectionContainer).GetComponent<BlockConnectorUI>();
|
||||
|
||||
Vector2 startPosition = SpaceConverter.GetLocalUIPosition(startBlock.outPort, GetComponent<RectTransform>());
|
||||
Vector2 endPosition = SpaceConverter.GetLocalUIPosition(endBlock.inPort, GetComponent<RectTransform>());
|
||||
|
||||
connector.startBlock = startBlock;
|
||||
connector.endBlock = endBlock;
|
||||
|
||||
connector.SetCurve(startPosition, endPosition);
|
||||
connectors.Add(connector);
|
||||
}
|
||||
|
||||
public void GenerateConnector(string startBlockName, string endBlockName)
|
||||
{
|
||||
StoryBlockUIBase startBlock = storyBlocks.FirstOrDefault(block => block.blockName == startBlockName);
|
||||
StoryBlockUIBase endBlock = storyBlocks.FirstOrDefault(block => block.blockName == endBlockName);
|
||||
GenerateConnector(startBlock, endBlock);
|
||||
}
|
||||
}
|
||||
|
||||
public partial class Storyline
|
||||
{
|
||||
private void ClearStoryline()
|
||||
{
|
||||
foreach (var block in storyBlocks)
|
||||
{
|
||||
Destroy(block.gameObject);
|
||||
}
|
||||
storyBlocks.Clear();
|
||||
dialogBlocks.Clear();
|
||||
songBlocks.Clear();
|
||||
tutorialBlocks.Clear();
|
||||
|
||||
foreach (var connector in connectors)
|
||||
{
|
||||
Destroy(connector.gameObject);
|
||||
}
|
||||
connectors.Clear();
|
||||
|
||||
content.sizeDelta = Vector2.zero;
|
||||
}
|
||||
|
||||
private void SetUpBackground()
|
||||
{
|
||||
float maxRight = float.MinValue;
|
||||
|
||||
foreach (var block in storyBlocks)
|
||||
{
|
||||
float rightEdge = block.blockRect.anchoredPosition.x + block.blockRect.sizeDelta.x * 0.5f;
|
||||
if (rightEdge > maxRight)
|
||||
{
|
||||
maxRight = rightEdge;
|
||||
}
|
||||
}
|
||||
|
||||
maxRight += marginRight;
|
||||
|
||||
if (maxRight < 2560f)
|
||||
{
|
||||
maxRight = 2560f;
|
||||
}
|
||||
|
||||
|
||||
float lowY = float.MaxValue;
|
||||
|
||||
foreach (var block in storyBlocks)
|
||||
{
|
||||
float bottomEdge = block.blockRect.anchoredPosition.y - block.blockRect.sizeDelta.y * 0.5f;
|
||||
if (bottomEdge < lowY)
|
||||
{
|
||||
lowY = bottomEdge;
|
||||
}
|
||||
}
|
||||
|
||||
float maxHeight = Mathf.Abs(lowY) + marginTop + marginBottom;
|
||||
|
||||
if (maxHeight < 1440f)
|
||||
{
|
||||
maxHeight = 1440f;
|
||||
}
|
||||
|
||||
content.sizeDelta = new Vector2(maxRight, maxHeight);
|
||||
}
|
||||
}
|
||||
|
||||
public partial class Storyline
|
||||
{
|
||||
public void SetUpStoryline(string chapterName)
|
||||
{
|
||||
GameSaveManager.instance.StorySaveModule.LoadStoryline(chapterName);
|
||||
|
||||
foreach (var blockSave in GameSaveManager.instance.StorySaveModule.tutorialBlockSaves[chapterName])
|
||||
{
|
||||
GenerateTutorialBlock(blockSave.blockName, blockSave.position, blockSave.state);
|
||||
}
|
||||
|
||||
foreach (var blockSave in GameSaveManager.instance.StorySaveModule.songBlockSaves[chapterName])
|
||||
{
|
||||
GenerateSongBlock(blockSave.blockName, blockSave.position, blockSave.state);
|
||||
}
|
||||
|
||||
foreach (var blockSave in GameSaveManager.instance.StorySaveModule.dialogBlockSaves[chapterName])
|
||||
{
|
||||
GenerateDialogBlock(blockSave.blockName, blockSave.position, blockSave.state);
|
||||
}
|
||||
|
||||
foreach (var connectorSave in GameSaveManager.instance.StorySaveModule.connectorSaves[chapterName])
|
||||
{
|
||||
GenerateConnector(connectorSave.startBlockName, connectorSave.endBlockName);
|
||||
}
|
||||
}
|
||||
|
||||
[Button]
|
||||
public void SaveStoryline(string chapterName)
|
||||
{
|
||||
List<TutorialBlockSave> tutorialBlockSaves =
|
||||
tutorialBlocks.Select(block => block.GetBlockSave() as TutorialBlockSave).ToList();
|
||||
|
||||
List<SongBlockSave> songBlockSaves =
|
||||
songBlocks.Select(block => block.GetBlockSave() as SongBlockSave).ToList();
|
||||
|
||||
List<DialogBlockSave> dialogBlockSaves =
|
||||
dialogBlocks.Select(block => block.GetBlockSave() as DialogBlockSave).ToList();
|
||||
|
||||
List<BlockConnectorSave> connectorSaves =
|
||||
connectors.Select(connector => new BlockConnectorSave(connector.startBlock.blockName, connector.endBlock.blockName)).ToList();
|
||||
|
||||
GameSaveManager.instance.StorySaveModule.SaveStoryline(
|
||||
chapterName, tutorialBlockSaves, songBlockSaves, dialogBlockSaves, connectorSaves);
|
||||
}
|
||||
|
||||
[Button]
|
||||
public void ResetStory()
|
||||
{
|
||||
ClearStoryline();
|
||||
|
||||
StoryData storyData = StoryManager.instance.storyDatas[StoryManager.instance.currentChapter];
|
||||
List<InitialBlockData> initialBlocks = storyData.initialBlocks;
|
||||
|
||||
foreach (InitialBlockData blockData in initialBlocks)
|
||||
{
|
||||
storyData.GetDataByName(blockData.blockName, out Type dataType);
|
||||
|
||||
if (dataType == typeof(TutorialBlockData))
|
||||
{
|
||||
GenerateTutorialBlock(blockData.blockName, blockData.blockPosition, blockData.initialState);
|
||||
}
|
||||
else if (dataType == typeof(DialogBlockData))
|
||||
{
|
||||
GenerateDialogBlock(blockData.blockName, blockData.blockPosition, blockData.initialState);
|
||||
}
|
||||
else if (dataType == typeof(SongBlockData))
|
||||
{
|
||||
GenerateSongBlock(blockData.blockName, blockData.blockPosition, blockData.initialState);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (InitialBlockData blockData in initialBlocks)
|
||||
{
|
||||
foreach (string nextBlockName in blockData.nextBlocks)
|
||||
{
|
||||
GenerateConnector(blockData.blockName, nextBlockName);
|
||||
}
|
||||
}
|
||||
|
||||
SetUpBackground();
|
||||
SaveStoryline(StoryManager.instance.currentChapter);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using CsvHelper;
|
||||
using CsvHelper.Configuration;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ichni.Story
|
||||
{
|
||||
public class StorylineSheetReader : SerializedMonoBehaviour
|
||||
{
|
||||
public TextAsset csvFile; // 直接拖拽到 Inspector
|
||||
public List<StoryBlock> allNodes;
|
||||
|
||||
void Awake() {
|
||||
if (csvFile == null) {
|
||||
Debug.LogError("请在 Inspector 中指定 CSV TextAsset 文件。");
|
||||
return;
|
||||
}
|
||||
|
||||
allNodes = new List<StoryBlock>();
|
||||
|
||||
using (var reader = new StringReader(csvFile.text)) {
|
||||
var config = new CsvConfiguration(CultureInfo.InvariantCulture) {
|
||||
HasHeaderRecord = false,
|
||||
IgnoreBlankLines = true
|
||||
};
|
||||
|
||||
using (var csv = new CsvReader(reader, config)) {
|
||||
int rowIndex = 0;
|
||||
while (csv.Read()) {
|
||||
for (int col = 0; csv.TryGetField<string>(col, out var cell); col++) {
|
||||
if (!string.IsNullOrWhiteSpace(cell)) {
|
||||
allNodes.Add(new StoryBlock() {
|
||||
blockName = cell.Trim(),
|
||||
rowIndex = rowIndex,
|
||||
timeColumn = col
|
||||
});
|
||||
}
|
||||
}
|
||||
rowIndex++;
|
||||
}
|
||||
}
|
||||
}
|
||||
BuildDependencies();
|
||||
}
|
||||
|
||||
void BuildDependencies() {
|
||||
var groups = allNodes.GroupBy(n => n.rowIndex);
|
||||
foreach (var group in groups) {
|
||||
var list = group.OrderBy(n => n.timeColumn).ToList();
|
||||
for (int i = 1; i < list.Count; i++) {
|
||||
var prev = list[i - 1];
|
||||
var curr = list[i];
|
||||
prev.nextBlock = curr; // 设置前一个单元格的下一个单元格
|
||||
curr.requiredCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
Tutorial,L1-P1,L1-P2,L1-P3,L1-P4
|
||||
,,L2-P1,L2-P2,
|
||||
,,,,L3-P1
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user