From 1b977b69dcd48739fa8952ebf9b1e118f35987bf Mon Sep 17 00:00:00 2001 From: chrisgregan Date: Wed, 19 Aug 2015 11:53:16 +0100 Subject: [PATCH] Localization now supports Write and Set Text commands --- .../Fungus/Narrative/Scripts/Localization.cs | 86 +- Assets/Fungus/UI/Editor/WriteEditor.cs | 3 + Assets/Fungus/UI/Scripts/Commands/SetText.cs | 10 +- Assets/Fungus/UI/Scripts/Commands/Write.cs | 3 + .../CSV/localization_Commands.csv | 5 + .../CSV/localization_Commands.csv.meta | 8 + .../Localisation/LocalisationTests.unity | 825 +++++++++++++++++- 7 files changed, 934 insertions(+), 6 deletions(-) create mode 100644 Assets/Tests/Localisation/CSV/localization_Commands.csv create mode 100644 Assets/Tests/Localisation/CSV/localization_Commands.csv.meta diff --git a/Assets/Fungus/Narrative/Scripts/Localization.cs b/Assets/Fungus/Narrative/Scripts/Localization.cs index 7ef691ea..4b23b951 100644 --- a/Assets/Fungus/Narrative/Scripts/Localization.cs +++ b/Assets/Fungus/Narrative/Scripts/Localization.cs @@ -179,7 +179,7 @@ namespace Fungus System.Type type = command.GetType(); if (type == typeof(Say)) { - // String id for Say commands is SAY... + // String id for Say commands is SAY... Say sayCommand = command as Say; standardText = sayCommand.storyText; description = sayCommand.description; @@ -191,12 +191,28 @@ namespace Fungus } else if (type == typeof(Menu)) { - // String id for Menu commands is MENU.. + // String id for Menu commands is MENU.. Menu menuCommand = command as Menu; standardText = menuCommand.text; description = menuCommand.description; stringId = "MENU." + localizationId + "." + menuCommand.itemId; } + else if (type == typeof(Write)) + { + // String id for Write commands is WRITE.. + Write writeCommand = command as Write; + standardText = writeCommand.text; + description = writeCommand.description; + stringId = "WRITE." + localizationId + "." + writeCommand.itemId; + } + else if (type == typeof(SetText)) + { + // String id for Set Text commands is SETTEXT.. + SetText setTextCommand = command as SetText; + standardText = setTextCommand.text; + description = setTextCommand.description; + stringId = "SETTEXT." + localizationId + "." + setTextCommand.itemId; + } else { continue; @@ -512,6 +528,72 @@ namespace Fungus return true; } } + else if (stringType == "WRITE") + { + if (idParts.Length != 3) + { + return false; + } + + string flowchartId = idParts[1]; + if (!flowchartDict.ContainsKey(flowchartId)) + { + return false; + } + Flowchart flowchart = flowchartDict[flowchartId]; + + int itemId = int.Parse(idParts[2]); + + if (flowchart != null) + { + foreach (Write write in flowchart.GetComponentsInChildren()) + { + if (write.itemId == itemId && + write.text != newText) + { + #if UNITY_EDITOR + Undo.RecordObject(write, "Write"); + #endif + + write.text.Value = newText; + return true; + } + } + } + } + else if (stringType == "SETTEXT") + { + if (idParts.Length != 3) + { + return false; + } + + string flowchartId = idParts[1]; + if (!flowchartDict.ContainsKey(flowchartId)) + { + return false; + } + Flowchart flowchart = flowchartDict[flowchartId]; + + int itemId = int.Parse(idParts[2]); + + if (flowchart != null) + { + foreach (SetText setText in flowchart.GetComponentsInChildren()) + { + if (setText.itemId == itemId && + setText.text != newText) + { + #if UNITY_EDITOR + Undo.RecordObject(setText, "Set Text"); + #endif + + setText.text.Value = newText; + return true; + } + } + } + } return false; } diff --git a/Assets/Fungus/UI/Editor/WriteEditor.cs b/Assets/Fungus/UI/Editor/WriteEditor.cs index 3154a3f5..a2a65fae 100644 --- a/Assets/Fungus/UI/Editor/WriteEditor.cs +++ b/Assets/Fungus/UI/Editor/WriteEditor.cs @@ -15,6 +15,7 @@ namespace Fungus protected SerializedProperty textObjectProp; protected SerializedProperty textProp; + protected SerializedProperty descriptionProp; protected SerializedProperty clearTextProp; protected SerializedProperty textColorProp; protected SerializedProperty setAlphaProp; @@ -35,6 +36,7 @@ namespace Fungus { textObjectProp = serializedObject.FindProperty("textObject"); textProp = serializedObject.FindProperty("text"); + descriptionProp = serializedObject.FindProperty("description"); clearTextProp = serializedObject.FindProperty("clearText"); textColorProp = serializedObject.FindProperty("textColor"); setAlphaProp = serializedObject.FindProperty("setAlpha"); @@ -48,6 +50,7 @@ namespace Fungus EditorGUILayout.PropertyField(textObjectProp); EditorGUILayout.PropertyField(textProp); + EditorGUILayout.PropertyField(descriptionProp); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); diff --git a/Assets/Fungus/UI/Scripts/Commands/SetText.cs b/Assets/Fungus/UI/Scripts/Commands/SetText.cs index 084995e4..b2f09e3c 100644 --- a/Assets/Fungus/UI/Scripts/Commands/SetText.cs +++ b/Assets/Fungus/UI/Scripts/Commands/SetText.cs @@ -17,12 +17,16 @@ namespace Fungus public GameObject targetTextObject; [Tooltip("String value to assign to the text object")] - public StringData stringData; + [FormerlySerializedAs("stringData")] + public StringData text; + + [Tooltip("Notes about this story text for other authors, localization, etc.")] + public string description; public override void OnEnter() { Flowchart flowchart = GetFlowchart(); - string newText = flowchart.SubstituteVariables(stringData.Value); + string newText = flowchart.SubstituteVariables(text.Value); if (targetTextObject == null) { @@ -60,7 +64,7 @@ namespace Fungus { if (targetTextObject != null) { - return targetTextObject.name + " : " + stringData.Value; + return targetTextObject.name + " : " + text.Value; } return "Error: No text object selected"; diff --git a/Assets/Fungus/UI/Scripts/Commands/Write.cs b/Assets/Fungus/UI/Scripts/Commands/Write.cs index 46558203..6bac3083 100644 --- a/Assets/Fungus/UI/Scripts/Commands/Write.cs +++ b/Assets/Fungus/UI/Scripts/Commands/Write.cs @@ -19,6 +19,9 @@ namespace Fungus [Tooltip("String value to assign to the text object")] public StringData text; + [Tooltip("Notes about this story text for other authors, localization, etc.")] + public string description; + public bool clearText = true; public bool waitUntilFinished = true; diff --git a/Assets/Tests/Localisation/CSV/localization_Commands.csv b/Assets/Tests/Localisation/CSV/localization_Commands.csv new file mode 100644 index 00000000..a4094ab4 --- /dev/null +++ b/Assets/Tests/Localisation/CSV/localization_Commands.csv @@ -0,0 +1,5 @@ +Key,Description,Standard,FR +WRITE.Flowchart.1,,English text,texte français +SETTEXT.Flowchart.5,,English text,texte français +WRITE.Flowchart.3,,English text,texte français +SETTEXT.Flowchart.6,,English text,texte français diff --git a/Assets/Tests/Localisation/CSV/localization_Commands.csv.meta b/Assets/Tests/Localisation/CSV/localization_Commands.csv.meta new file mode 100644 index 00000000..e333ea9d --- /dev/null +++ b/Assets/Tests/Localisation/CSV/localization_Commands.csv.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f4a19faae37354696ad9363ee85617eb +timeCreated: 1439911904 +licenseType: Free +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Localisation/LocalisationTests.unity b/Assets/Tests/Localisation/LocalisationTests.unity index b592247f..83d62c09 100644 --- a/Assets/Tests/Localisation/LocalisationTests.unity +++ b/Assets/Tests/Localisation/LocalisationTests.unity @@ -128,6 +128,140 @@ MonoBehaviour: m_EditorClassIdentifier: csvFileWindows: {fileID: 4900000, guid: cfe751e1299764c0bb5b1baa0ac5f7e2, type: 3} csvFileMac: {fileID: 4900000, guid: 8d5a303a2b2644e32938f8c9c15b2366, type: 3} +--- !u!114 &37282964 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58783f051e477fd4e93b42ec7a43bb64, type: 3} + m_Name: + m_EditorClassIdentifier: + go: {fileID: 1748886008} + thisPropertyPath: Text.text + compareToType: 1 + other: {fileID: 0} + otherPropertyPath: + constantValueGeneric: English text + compareType: 0 + comparisonType: 4 + ignoreCase: 0 +--- !u!114 &99307093 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58783f051e477fd4e93b42ec7a43bb64, type: 3} + m_Name: + m_EditorClassIdentifier: + go: {fileID: 1134558494} + thisPropertyPath: Text.text + compareToType: 1 + other: {fileID: 0} + otherPropertyPath: + constantValueGeneric: English text + compareType: 0 + comparisonType: 4 + ignoreCase: 0 +--- !u!114 &127997295 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58783f051e477fd4e93b42ec7a43bb64, type: 3} + m_Name: + m_EditorClassIdentifier: + go: {fileID: 1134558494} + thisPropertyPath: Text.text + compareToType: 1 + other: {fileID: 0} + otherPropertyPath: + constantValueGeneric: "texte fran\xE7ais" + compareType: 0 + comparisonType: 4 + ignoreCase: 0 +--- !u!1 &207978036 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 207978040} + - 114: {fileID: 207978039} + - 114: {fileID: 207978038} + - 114: {fileID: 207978037} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &207978037 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 207978036} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AllowActivationOnStandalone: 0 +--- !u!114 &207978038 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 207978036} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: .5 + m_AllowActivationOnMobileDevice: 0 +--- !u!114 &207978039 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 207978036} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &207978040 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 207978036} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 --- !u!1 &263238434 GameObject: m_ObjectHideFlags: 0 @@ -195,7 +329,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 61dddfdc5e0e44ca298d8f46f7f5a915, type: 3} m_Name: m_EditorClassIdentifier: - selectedFlowchart: {fileID: 0} + selectedFlowchart: {fileID: 587159255} --- !u!4 &365459146 Transform: m_ObjectHideFlags: 1 @@ -208,6 +342,357 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 +--- !u!1 &453921373 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 453921374} + - 114: {fileID: 453921375} + m_Layer: 0 + m_Name: CommandsTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &453921374 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 453921373} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 587159260} + - {fileID: 1242222013} + - {fileID: 550868903} + - {fileID: 2104226804} + m_Father: {fileID: 0} + m_RootOrder: 3 +--- !u!114 &453921375 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 453921373} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b1dba0b27b0864740a8720e920aa88c0, type: 3} + m_Name: + m_EditorClassIdentifier: + timeout: 5 + ignored: 0 + succeedAfterAllAssertionsAreExecuted: 1 + expectException: 0 + expectedExceptionList: + succeedWhenExceptionIsThrown: 0 + includedPlatforms: -1 + platformsToIgnore: [] + dynamic: 0 + dynamicTypeName: +--- !u!1 &550868902 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 149266, guid: ffbd0831d997545eab75c364da082c1b, type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 550868903} + - 114: {fileID: 550868904} + m_Layer: 0 + m_Name: Localization + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &550868903 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 480768, guid: ffbd0831d997545eab75c364da082c1b, type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 550868902} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 453921374} + m_RootOrder: 2 +--- !u!114 &550868904 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11438504, guid: ffbd0831d997545eab75c364da082c1b, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 550868902} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e5724422a635e425bae0af9ffe2615d6, type: 3} + m_Name: + m_EditorClassIdentifier: + activeLanguage: + localizationFile: {fileID: 4900000, guid: f4a19faae37354696ad9363ee85617eb, type: 3} +--- !u!1 &587159254 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 142980, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, type: 2} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 587159260} + - 114: {fileID: 587159255} + - 114: {fileID: 587159257} + - 114: {fileID: 587159258} + - 114: {fileID: 587159256} + - 114: {fileID: 587159261} + - 114: {fileID: 587159259} + - 114: {fileID: 587159262} + - 114: {fileID: 587159264} + - 114: {fileID: 587159263} + m_Layer: 0 + m_Name: Flowchart + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &587159255 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 11430050, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 587159254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a334fe2ffb574b3583ff3b18b4792d3, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1.0 + scrollPos: {x: 0, y: 0} + variablesScrollPos: {x: 0, y: 0} + variablesExpanded: 1 + blockViewHeight: 280 + zoom: 1 + scrollViewRect: + serializedVersion: 2 + x: -343 + y: -340 + width: 1114 + height: 859 + selectedBlock: {fileID: 587159257} + selectedCommands: [] + variables: [] + description: + stepPause: 0 + colorCommands: 1 + hideComponents: 1 + saveSelection: 1 + localizationId: +--- !u!114 &587159256 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 587159254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ad2261dbe44de43a980e6f7c77c88f7f, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 1 + errorMessage: + indentLevel: 0 + textObject: {fileID: 1134558494} + text: + stringRef: {fileID: 0} + stringVal: English text + description: + clearText: 1 + waitUntilFinished: 1 + textColor: 0 + setAlpha: + floatRef: {fileID: 0} + floatVal: 1 + setColor: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} +--- !u!114 &587159257 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_PrefabParentObject: {fileID: 11433304, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, + type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 587159254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3} + m_Name: + m_EditorClassIdentifier: + nodeRect: + serializedVersion: 2 + x: 64 + y: 69 + width: 120 + height: 40 + itemId: 0 + blockName: Start + description: + eventHandler: {fileID: 587159258} + commandList: + - {fileID: 587159264} + - {fileID: 587159256} + - {fileID: 587159262} + - {fileID: 587159261} + - {fileID: 587159263} + - {fileID: 587159259} +--- !u!114 &587159258 +MonoBehaviour: + m_ObjectHideFlags: 2 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 587159254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2f6487d21a03404cb21b245f0242e79, type: 3} + m_Name: + m_EditorClassIdentifier: + parentBlock: {fileID: 587159257} +--- !u!114 &587159259 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 587159254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ad2261dbe44de43a980e6f7c77c88f7f, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 3 + errorMessage: + indentLevel: 0 + textObject: {fileID: 1134558494} + text: + stringRef: {fileID: 0} + stringVal: English text + description: + clearText: 1 + waitUntilFinished: 1 + textColor: 0 + setAlpha: + floatRef: {fileID: 0} + floatVal: 1 + setColor: + colorRef: {fileID: 0} + colorVal: {r: 1, g: 1, b: 1, a: 1} +--- !u!4 &587159260 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 467082, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, type: 2} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 587159254} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 453921374} + m_RootOrder: 0 +--- !u!114 &587159261 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 587159254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3fc625e237d6048bf86f34835d8266d9, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 2 + errorMessage: + indentLevel: 0 + languageCode: FR +--- !u!114 &587159262 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 587159254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3315ad2ebb85443909a1203d56d9344e, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 4 + errorMessage: + indentLevel: 0 + duration: 1 +--- !u!114 &587159263 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 587159254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78c0367bf08d147bd80b5454de50e9d4, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 6 + errorMessage: + indentLevel: 0 + targetTextObject: {fileID: 1748886008} + text: + stringRef: {fileID: 0} + stringVal: English text + description: + _textObjectObsolete: {fileID: 0} +--- !u!114 &587159264 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 587159254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78c0367bf08d147bd80b5454de50e9d4, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 5 + errorMessage: + indentLevel: 0 + targetTextObject: {fileID: 1748886008} + text: + stringRef: {fileID: 0} + stringVal: English text + description: + _textObjectObsolete: {fileID: 0} +--- !u!114 &617267302 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58783f051e477fd4e93b42ec7a43bb64, type: 3} + m_Name: + m_EditorClassIdentifier: + go: {fileID: 1748886008} + thisPropertyPath: Text.text + compareToType: 1 + other: {fileID: 0} + otherPropertyPath: + constantValueGeneric: "texte fran\xE7ais" + compareType: 0 + comparisonType: 4 + ignoreCase: 0 --- !u!1 &881473892 GameObject: m_ObjectHideFlags: 0 @@ -293,6 +778,163 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 +--- !u!1 &1134558494 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1134558495} + - 222: {fileID: 1134558497} + - 114: {fileID: 1134558496} + m_Layer: 5 + m_Name: Write Output + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1134558495 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1134558494} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1242222013} + m_RootOrder: 0 + m_AnchorMin: {x: .5, y: .5} + m_AnchorMax: {x: .5, y: .5} + m_AnchoredPosition: {x: 33, y: 139} + m_SizeDelta: {x: 550, y: 50} + m_Pivot: {x: .5, y: .5} +--- !u!114 &1134558496 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1134558494} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Write output +--- !u!222 &1134558497 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1134558494} +--- !u!1 &1242222009 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1242222013} + - 223: {fileID: 1242222012} + - 114: {fileID: 1242222011} + - 114: {fileID: 1242222010} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1242222010 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1242222009} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1242222011 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1242222009} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &1242222012 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1242222009} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!224 &1242222013 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1242222009} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1134558495} + - {fileID: 1748886011} + m_Father: {fileID: 453921374} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} --- !u!1 &1417630598 GameObject: m_ObjectHideFlags: 0 @@ -343,3 +985,184 @@ Transform: - {fileID: 10089113} m_Father: {fileID: 0} m_RootOrder: 1 +--- !u!1 &1748886008 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1748886011} + - 222: {fileID: 1748886010} + - 114: {fileID: 1748886009} + m_Layer: 5 + m_Name: Set Text Output + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1748886009 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1748886008} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Set text output +--- !u!222 &1748886010 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1748886008} +--- !u!224 &1748886011 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1748886008} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1242222013} + m_RootOrder: 1 + m_AnchorMin: {x: .5, y: .5} + m_AnchorMax: {x: .5, y: .5} + m_AnchoredPosition: {x: 33, y: 89} + m_SizeDelta: {x: 550, y: 50} + m_Pivot: {x: .5, y: .5} +--- !u!1 &2104226803 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 2104226804} + - 114: {fileID: 2104226805} + - 114: {fileID: 2104226806} + - 114: {fileID: 2104226808} + - 114: {fileID: 2104226807} + m_Layer: 0 + m_Name: TestAssertions + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2104226804 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2104226803} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 420.761017, y: 174.027649, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 453921374} + m_RootOrder: 3 +--- !u!114 &2104226805 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2104226803} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8bafa54482a87ac4cbd7ff1bfd1ac93a, type: 3} + m_Name: + m_EditorClassIdentifier: + checkAfterTime: 1 + repeatCheckTime: 0 + repeatEveryTime: 1 + checkAfterFrames: 1 + repeatCheckFrame: 1 + repeatEveryFrame: 1 + hasFailed: 0 + checkMethods: 1 + m_ActionBase: {fileID: 99307093} + checksPerformed: 0 +--- !u!114 &2104226806 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2104226803} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8bafa54482a87ac4cbd7ff1bfd1ac93a, type: 3} + m_Name: + m_EditorClassIdentifier: + checkAfterTime: 3 + repeatCheckTime: 0 + repeatEveryTime: 1 + checkAfterFrames: 1 + repeatCheckFrame: 1 + repeatEveryFrame: 1 + hasFailed: 0 + checkMethods: 1 + m_ActionBase: {fileID: 127997295} + checksPerformed: 0 +--- !u!114 &2104226807 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2104226803} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8bafa54482a87ac4cbd7ff1bfd1ac93a, type: 3} + m_Name: + m_EditorClassIdentifier: + checkAfterTime: 3 + repeatCheckTime: 0 + repeatEveryTime: 1 + checkAfterFrames: 1 + repeatCheckFrame: 1 + repeatEveryFrame: 1 + hasFailed: 0 + checkMethods: 1 + m_ActionBase: {fileID: 617267302} + checksPerformed: 0 +--- !u!114 &2104226808 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2104226803} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8bafa54482a87ac4cbd7ff1bfd1ac93a, type: 3} + m_Name: + m_EditorClassIdentifier: + checkAfterTime: 1 + repeatCheckTime: 0 + repeatEveryTime: 1 + checkAfterFrames: 1 + repeatCheckFrame: 1 + repeatEveryFrame: 1 + hasFailed: 0 + checkMethods: 1 + m_ActionBase: {fileID: 37282964} + checksPerformed: 0