wip : subtitles & flash hallu

This commit is contained in:
Ferlat Thibaud
2026-05-29 17:48:08 +02:00
parent 23be332bc7
commit 5a091c80a8
16 changed files with 2825 additions and 5213 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e95aa075062183d429dea5ae1ab773ef
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,21 @@
%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: cbde7b14ca8fbf24c917c47aa3c51676, type: 3}
m_Name: subtitle_stairOne
m_EditorClassIdentifier: OctoCore.Runtime::OctoCore.Localization.OctoLocalizedTextData
Languages:
_keys:
- English
- French
_values:
- 'Hello ! '
- 'Bonjour ! '
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f8c2c11cba7317b49b0cf7e0748c1af4
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because one or more lines are too long
+252 -58
View File
@@ -4501,6 +4501,160 @@ Transform:
- {fileID: 584192747}
m_Father: {fileID: 1168906488}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &621915870
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 621915871}
- component: {fileID: 621915873}
- component: {fileID: 621915872}
- component: {fileID: 621915874}
m_Layer: 0
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &621915871
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 621915870}
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: 5962582289737676859}
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_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &621915872
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 621915870}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
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: New Text
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: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 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!222 &621915873
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 621915870}
m_CullTransparentMesh: 1
--- !u!114 &621915874
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 621915870}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1023fdbb836c50f48bd4b52575ed3689, type: 3}
m_Name:
m_EditorClassIdentifier: OctoCore.Runtime::OctoCore.Localization.OctoLocalizedText
data: {fileID: 0}
text: {fileID: 0}
textMeshPro: {fileID: 0}
textMeshProUGUI: {fileID: 621915872}
--- !u!1 &622343289
GameObject:
m_ObjectHideFlags: 0
@@ -7540,8 +7694,8 @@ MonoBehaviour:
_state:
PlayerInside: 0
Portals:
- {fileID: 0}
- {fileID: 0}
- {fileID: 1954982146}
- {fileID: 13773347}
- {fileID: 0}
--- !u!1 &929818110
GameObject:
@@ -7804,8 +7958,8 @@ GameObject:
- component: {fileID: 938880779}
- component: {fileID: 938880778}
- component: {fileID: 938880777}
- component: {fileID: 938880776}
- component: {fileID: 938880775}
- component: {fileID: 938880776}
m_Layer: 0
m_Name: DialogueOne
m_TagString: Untagged
@@ -10318,8 +10472,9 @@ GameObject:
- component: {fileID: 1161394549}
- component: {fileID: 1161394548}
- component: {fileID: 1161394547}
- component: {fileID: 1161394546}
- component: {fileID: 1161394545}
- component: {fileID: 1161394550}
- component: {fileID: 1161394551}
m_Layer: 0
m_Name: DialogueThree
m_TagString: Untagged
@@ -10386,22 +10541,6 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &1161394546
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1161394543}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1023fdbb836c50f48bd4b52575ed3689, type: 3}
m_Name:
m_EditorClassIdentifier: OctoCore.Runtime::OctoCore.Localization.OctoLocalizedText
data: {fileID: 0}
text: {fileID: 0}
textMeshPro: {fileID: 0}
textMeshProUGUI: {fileID: 1161394548}
--- !u!114 &1161394547
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -10527,6 +10666,34 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1161394543}
m_CullTransparentMesh: 1
--- !u!114 &1161394550
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1161394543}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1023fdbb836c50f48bd4b52575ed3689, type: 3}
m_Name:
m_EditorClassIdentifier: OctoCore.Runtime::OctoCore.Localization.OctoLocalizedText
data: {fileID: 0}
text: {fileID: 0}
textMeshPro: {fileID: 0}
textMeshProUGUI: {fileID: 1161394548}
--- !u!114 &1161394551
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1161394543}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a2fcf97d75546f147adf431e737bce52, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Features.Dialogue.LocalizedSubtitle
--- !u!1 &1162934183
GameObject:
m_ObjectHideFlags: 0
@@ -11593,8 +11760,8 @@ GameObject:
- component: {fileID: 1221498299}
- component: {fileID: 1221498298}
- component: {fileID: 1221498297}
- component: {fileID: 1221498296}
- component: {fileID: 1221498295}
- component: {fileID: 1221498296}
m_Layer: 0
m_Name: DialogueThree
m_TagString: Untagged
@@ -11819,8 +11986,8 @@ GameObject:
- component: {fileID: 1270400839}
- component: {fileID: 1270400838}
- component: {fileID: 1270400837}
- component: {fileID: 1270400836}
- component: {fileID: 1270400835}
- component: {fileID: 1270400836}
m_Layer: 0
m_Name: DialogueTwo
m_TagString: Untagged
@@ -12822,8 +12989,9 @@ GameObject:
- component: {fileID: 1385908343}
- component: {fileID: 1385908342}
- component: {fileID: 1385908341}
- component: {fileID: 1385908340}
- component: {fileID: 1385908339}
- component: {fileID: 1385908345}
- component: {fileID: 1385908344}
m_Layer: 0
m_Name: DialogueTwo
m_TagString: Untagged
@@ -12901,22 +13069,6 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &1385908340
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1385908337}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1023fdbb836c50f48bd4b52575ed3689, type: 3}
m_Name:
m_EditorClassIdentifier: OctoCore.Runtime::OctoCore.Localization.OctoLocalizedText
data: {fileID: 0}
text: {fileID: 0}
textMeshPro: {fileID: 0}
textMeshProUGUI: {fileID: 1385908342}
--- !u!114 &1385908341
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -13042,6 +13194,34 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1385908337}
m_CullTransparentMesh: 1
--- !u!114 &1385908344
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1385908337}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1023fdbb836c50f48bd4b52575ed3689, type: 3}
m_Name:
m_EditorClassIdentifier: OctoCore.Runtime::OctoCore.Localization.OctoLocalizedText
data: {fileID: 11400000, guid: f8c2c11cba7317b49b0cf7e0748c1af4, type: 2}
text: {fileID: 0}
textMeshPro: {fileID: 0}
textMeshProUGUI: {fileID: 1385908342}
--- !u!114 &1385908345
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1385908337}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a2fcf97d75546f147adf431e737bce52, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Features.Dialogue.LocalizedSubtitle
--- !u!1 &1395214469
GameObject:
m_ObjectHideFlags: 0
@@ -21091,7 +21271,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 'Bonjour ! Comment allez vous ? '
m_text:
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 9861d68f4cda1504f8e39cc1464e8bec, type: 2}
m_sharedMaterial: {fileID: -7153799593197912463, guid: 9861d68f4cda1504f8e39cc1464e8bec, type: 2}
@@ -21240,15 +21420,16 @@ GameObject:
- component: {fileID: 6820444050397160330}
- component: {fileID: 160056245658704172}
- component: {fileID: 6984622148685993083}
- component: {fileID: 6145378488011164339}
- component: {fileID: 6984622148685993084}
- component: {fileID: 6984622148685993087}
- component: {fileID: 6984622148685993085}
m_Layer: 0
m_Name: DialogueOne
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!223 &1419697914149756368
Canvas:
m_ObjectHideFlags: 0
@@ -23152,6 +23333,7 @@ RectTransform:
- {fileID: 4568054855754503388}
- {fileID: 1385908338}
- {fileID: 1161394544}
- {fileID: 621915871}
m_Father: {fileID: 4912455518784749444}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
@@ -23159,22 +23341,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &6145378488011164339
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1011309933828299120}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1023fdbb836c50f48bd4b52575ed3689, type: 3}
m_Name:
m_EditorClassIdentifier: OctoCore.Runtime::OctoCore.Localization.OctoLocalizedText
data: {fileID: 0}
text: {fileID: 0}
textMeshPro: {fileID: 0}
textMeshProUGUI: {fileID: 160056245658704172}
--- !u!114 &6197325093009242922
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -23801,6 +23967,34 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &6984622148685993085
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1011309933828299120}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1023fdbb836c50f48bd4b52575ed3689, type: 3}
m_Name:
m_EditorClassIdentifier: OctoCore.Runtime::OctoCore.Localization.OctoLocalizedText
data: {fileID: 11400000, guid: f8c2c11cba7317b49b0cf7e0748c1af4, type: 2}
text: {fileID: 0}
textMeshPro: {fileID: 0}
textMeshProUGUI: {fileID: 160056245658704172}
--- !u!114 &6984622148685993087
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1011309933828299120}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a2fcf97d75546f147adf431e737bce52, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Unheimlich.Features.Dialogue.LocalizedSubtitle
--- !u!224 &7021944922167921922
RectTransform:
m_ObjectHideFlags: 0
@@ -0,0 +1,57 @@
using UnityEngine;
using OctoCore.Localization;
using OctoFramework = OctoCore.OctoCore;
using Unheimlich.UI;
namespace Unheimlich.Features.Dialogue
{
/// <summary>
/// Bridges OctoLocalizedText and PerLetterFontShifter.
/// OctoLocalizedText writes to the source TMP, which is disabled by the shifter —
/// this component intercepts Localize() and forwards the result to SetText() instead.
/// </summary>
[RequireComponent(typeof(OctoLocalizedText))]
[RequireComponent(typeof(PerLetterFontShifter))]
public class LocalizedSubtitle : MonoBehaviour
{
private OctoLocalizedText _localizedText;
private PerLetterFontShifter _shifter;
private void Awake()
{
_localizedText = GetComponent<OctoLocalizedText>();
_shifter = GetComponent<PerLetterFontShifter>();
}
private void Start()
{
// OctoLocalizedText.Awake() has already run and called Localize() into the dead TMP.
// Pull the resolved text back out and push it into the shifter.
Refresh();
// Re-hook on language change so the shifter stays in sync.
if (OctoFramework.Instance)
OctoFramework.Instance.Localization.SubscribeOnLanguageWrittenChange(Refresh);
}
private void OnDestroy()
{
if (OctoFramework.Instance)
OctoFramework.Instance.Localization.UnsubscribeOnLanguageWrittenChange(Refresh);
}
/// <summary>
/// Pulls the current localized string and pushes it to the shifter.
/// </summary>
private void Refresh()
{
// Force OctoLocalizedText to re-resolve the string into the source TMP.
_localizedText.Localize();
// Read it back from the source TMP (it's disabled but the .text field is still set).
string resolved = GetComponent<TMPro.TextMeshProUGUI>().text;
_shifter.SetText(resolved);
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: a2fcf97d75546f147adf431e737bce52
@@ -3,50 +3,43 @@ using UnityEngine;
namespace OctoCore.Localization.Editor
{
[CustomEditor(typeof(OctoLocalizedText))]
public class OctoLocalizedTextEditor : UnityEditor.Editor
{
SerializedProperty dataProp;
SerializedProperty textProp;
SerializedProperty textMeshProProp;
SerializedProperty textMeshProUGUIProp;
void OnEnable()
[CustomEditor(typeof(OctoLocalizedText))]
public class OctoLocalizedTextEditor : UnityEditor.Editor
{
dataProp = serializedObject.FindProperty("data");
textProp = serializedObject.FindProperty("text");
textMeshProProp = serializedObject.FindProperty("textMeshPro");
textMeshProUGUIProp = serializedObject.FindProperty("textMeshProUGUI");
public override void OnInspectorGUI()
{
serializedObject.Update();
OctoLocalizedText target = (OctoLocalizedText)this.target;
target.Data = (OctoLocalizedTextData)EditorGUILayout.ObjectField(
"Data",
target.Data,
typeof(OctoLocalizedTextData),
false
);
GUI.enabled = false;
SerializedProperty textProp = serializedObject.FindProperty("text");
SerializedProperty textMeshProProp = serializedObject.FindProperty("textMeshPro");
SerializedProperty textMeshProUGUIProp = serializedObject.FindProperty("textMeshProUGUI");
if (textProp.objectReferenceValue != null)
EditorGUILayout.PropertyField(textProp, new GUIContent("Text"));
else if (textMeshProProp.objectReferenceValue != null)
EditorGUILayout.PropertyField(textMeshProProp, new GUIContent("Text"));
else if (textMeshProUGUIProp.objectReferenceValue != null)
EditorGUILayout.PropertyField(textMeshProUGUIProp, new GUIContent("Text"));
else
EditorGUILayout.HelpBox("No text component found.", MessageType.Info);
GUI.enabled = true;
serializedObject.ApplyModifiedProperties();
if (GUI.changed)
EditorUtility.SetDirty(target);
}
}
public override void OnInspectorGUI()
{
serializedObject.Update();
EditorGUILayout.PropertyField(dataProp);
GUI.enabled = false;
if (textProp.objectReferenceValue != null)
{
EditorGUILayout.PropertyField(textProp, new GUIContent("Text"));
}
else if (textMeshProProp.objectReferenceValue != null)
{
EditorGUILayout.PropertyField(textMeshProProp, new GUIContent("Text"));
}
else if (textMeshProUGUIProp.objectReferenceValue != null)
{
EditorGUILayout.PropertyField(textMeshProUGUIProp, new GUIContent("Text"));
}
else
{
EditorGUILayout.HelpBox("No text componant found.", MessageType.Info);
}
GUI.enabled = true;
serializedObject.ApplyModifiedProperties();
}
}
}
@@ -8,6 +8,11 @@ namespace OctoCore.Localization
public class OctoLocalizedText : MonoBehaviour
{
[SerializeField] OctoLocalizedTextData data;
public OctoLocalizedTextData Data
{
get => data;
set => data = value;
}
[SerializeField] Text text;
[SerializeField] TextMeshPro textMeshPro;
[SerializeField] TextMeshProUGUI textMeshProUGUI;
@@ -1,2 +1,15 @@
fileFormatVersion: 2
guid: 1023fdbb836c50f48bd4b52575ed3689
guid: 1023fdbb836c50f48bd4b52575ed3689
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences:
- _data: {instanceID: 0}
- text: {instanceID: 0}
- textMeshPro: {instanceID: 0}
- textMeshProUGUI: {instanceID: 0}
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: