Localization-System-Mini

🌐 English | Π£ΠΊΡ€Π°Ρ—Π½ΡΡŒΠΊΠ°

Localization System Mini для Unity

ΠœΠžΠ–Π›Π˜Π’ΠžΠ‘Π’Π† | Π¨Π’Π˜Π”ΠšΠ˜Π™ БВАРВ | ΠŸΠ†Π”ΠšΠΠ—ΠšΠ | ЀОРМАВ CSV | ШРИЀВИ | API | Π”Π•ΠœΠž БЦЕНА | ΠŸΠ Π˜ΠœΠ†Π’ΠšΠ˜ | ЛІЦЕНЗІЯ | ΠŸΠ†Π”Π’Π Π˜ΠœΠšΠ

Π†ΠΌΠΏΠΎΡ€Ρ‚ CSV Ρ‚Π°Π±Π»ΠΈΡ†Ρ– ΠΠ°Π»Π°ΡˆΡ‚ΡƒΠ²Π°Π½Π½Ρ ScriptableObject ДСмонстрація Π²ΠΈΠΊΠ»ΠΈΠΊΡ–Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ–Π²

ΠŸΡ€ΠΎΡΡ‚Π° систСма Π»ΠΎΠΊΠ°Π»Ρ–Π·Π°Ρ†Ρ–Ρ— тСксту Π½Π° основі CSV для ΠΏΡ€ΠΎΡ”ΠΊΡ‚Ρ–Π² Unity Π· використанням TextMeshPro. Π§ΠΈΡ‚Π°Ρ” CSV-Ρ„Π°ΠΉΠ», ΠΏΠΎΠ²Π΅Ρ€Ρ‚Π°Ρ” рядки, Π·ΠΌΡ–Π½ΡŽΡ” ΡˆΡ€ΠΈΡ„Ρ‚ΠΈ Ρ‚Π° ΠΊΠ΅ΡˆΡƒΡ” всС для ΠΎΠΏΡ‚ΠΈΠΌΡ–Π·Π°Ρ†Ρ–Ρ—. Π‘Ρ‚Π²ΠΎΡ€Π΅Π½ΠΎ для соло-Ρ€ΠΎΠ·Ρ€ΠΎΠ±Π½ΠΈΠΊΡ–Π² Ρ‚Π° Ρ–Π½Π΄Ρ–-ΠΊΠΎΠΌΠ°Π½Π΄, які Ρ…ΠΎΡ‡ΡƒΡ‚ΡŒ Ρ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ тСкстові значСння ΠΏΠΎΠ·Π° скриптами ΠΉ ΠΊΠ΅Ρ€ΡƒΠ²Π°Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»Π°Π΄Π°ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· Π·ΠΎΠ²Π½Ρ–ΡˆΠ½Ρ– Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΈ.

Π”ΠΆΠ΅Ρ€Π΅Π»ΠΎ: Π¦Π΅ спрощСна вСрсія систСми Π»ΠΎΠΊΠ°Π»Ρ–Π·Π°Ρ†Ρ–Ρ— Π· асСту Automatic Tutorial Maker.

ΠœΠΎΠΆΠ»ΠΈΠ²ΠΎΡΡ‚Ρ–

Tooltip Localization System Unity

Π¨Π²ΠΈΠ΄ΠΊΠΈΠΉ старт

1. ΠΠ°Π»Π°ΡˆΡ‚ΡƒΠ²Π°Π½Π½Ρ

  1. Π†ΠΌΠΏΠΎΡ€Ρ‚ΡƒΠΉΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ Ρƒ ваш ΠΏΡ€ΠΎΡ”ΠΊΡ‚ Unity
  2. Π—Π½Π°ΠΉΠ΄Ρ–Ρ‚ΡŒ ΠΏΠΎΠΏΠ΅Ρ€Π΅Π΄Π½ΡŒΠΎ Π½Π°Π»Π°ΡˆΡ‚ΠΎΠ²Π°Π½ΠΈΠΉ асСт InputData Ρƒ Assets/CSV Localization/InputData
  3. Π’ΡΡ‚Π°Π½ΠΎΠ²Ρ–Ρ‚ΡŒ Default Language Π² інспСкторі (Π°Π½Π³Π»Ρ–ΠΉΡΡŒΠΊΠ° Π·Π° замовчуванням)
  4. ΠŸΡ€ΠΈΠ·Π½Π°Ρ‡Ρ‚Π΅ Π²Π°ΡˆΡ– ΡˆΡ€ΠΈΡ„Ρ‚ΠΈ Π² інспСкторі:
    • Default Font для ΠΌΠΎΠ² Π½Π° основі Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Ρ–
    • Language Special Fonts для CJK ΠΌΠΎΠ² (ΠΊΠΈΡ‚Π°ΠΉΡΡŒΠΊΠ°, японська, ΠΊΠΎΡ€Π΅ΠΉΡΡŒΠΊΠ°)
  5. Π”ΠΎΠ΄Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»Π°Π΄ΠΈ Π΄ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Ρƒ CSV (Π΄ΠΈΠ². Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½ΠΈΠΆΡ‡Π΅)

ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°: Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ створити власний асСт InputData (ΠŸΡ€Π°Π²ΠΈΠΉ ΠΊΠ»Ρ–ΠΊ β†’ Create β†’ Localization System Mini β†’ InputData) Ρ‚Π° Ρ„Π°ΠΉΠ» CSV Π·Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈ.

2. Ініціалізація

using LocalizationSystemMini;

public class GameManager : MonoBehaviour
{
    [SerializeField] private InputStringsScriptableObject textStrings;
    
    void Start()
    {
        // Ініціалізація систСми Π»ΠΎΠΊΠ°Π»Ρ–Π·Π°Ρ†Ρ–Ρ— (Π·Π°Π²Π°Π½Ρ‚Π°ΠΆΡƒΡ” Π·Π±Π΅Ρ€Π΅ΠΆΠ΅Π½Ρƒ ΠΌΠΎΠ²Ρƒ Π°Π±ΠΎ Π²ΡΡ‚Π°Π½ΠΎΠ²Π»ΡŽΡ” Π·Π° замовчуванням)
        textStrings.InitializeLocalizator();
    }
}

3. ΠŸΡ–Π΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ Π΄ΠΎ UI ΠΊΠ½ΠΎΠΏΠΎΠΊ

Π’ інспСкторі β†’ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Button β†’ OnClick():

4. Використання Π² ΠΊΠΎΠ΄Ρ–

ІндСксація рядків: Π’Ρ–Π·ΡƒΠ°Π»ΡŒΠ½Ρ– Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΈ (Excel, Google Sheets) ΠΏΠΎΡ‡ΠΈΠ½Π°ΡŽΡ‚ΡŒΡΡ Π· рядка 1, Π°Π»Π΅ ΠΊΠΎΠ΄ використовує Ρ–Π½Π΄Π΅ΠΊΡΠ°Ρ†Ρ–ΡŽ Π²Ρ–Π΄ 0. Коли Π²ΠΊΠ°Π·ΡƒΡ”Ρ‚Π΅ Π½ΠΎΠΌΠ΅Ρ€ рядка, Π²Ρ–Π΄Π½Ρ–ΠΌΠ°ΠΉΡ‚Π΅ 1 Π²Ρ–Π΄ Ρ‚ΠΎΠ³ΠΎ, Ρ‰ΠΎ Π±Π°Ρ‡ΠΈΡ‚Π΅ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ– (Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, рядок 2 Π² Excel = індСкс 1 Π² ΠΊΠΎΠ΄Ρ–). ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ, використовуйтС ΠΊΠ»ΡŽΡ‡Ρ– Π·Π°ΠΌΡ–ΡΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Ρ–Π² рядків. Π¦Π΅ Π½Π°Π΄Ρ–ΠΉΠ½Ρ–ΡˆΠ΅ Ρ– дозволяє міняти рядки Ρ‚Π°Π±Π»ΠΈΡ†Ρ– місцями.

Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π½ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ – ΠΊΠ΅ΡˆΡƒΡ” тСкстові об’єкти, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΎΠ½ΠΎΠ²Π»ΡŽΡ” ΠΏΡ€ΠΈ Π·ΠΌΡ–Π½Ρ– ΠΌΠΎΠ²ΠΈ, ΠΊΠ΅Ρ€ΡƒΡ” Π·ΠΌΡ–Π½ΠΎΡŽ ΡˆΡ€ΠΈΡ„Ρ‚Ρƒ
Π’ΠΈΠΊΠ»ΠΈΠΊΠ°ΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·: Π½Π° Start Π°Π±ΠΎ ΠΏΡ€ΠΈ створСнні тСкстових об’єктів

void Start()
{
// ΠŸΡ€ΠΎΡΡ‚ΠΈΠΉ тСкст
textStrings.FillTextObject(2, textComponent);

// Π—Π° ΠΊΠ»ΡŽΡ‡Π΅ΠΌ (ΡˆΡƒΠΊΠ°Ρ” ΠΊΠ»ΡŽΡ‡ Π² ΠΊΠΎΠ»ΠΎΠ½Ρ†Ρ– A)
textStrings.FillTextObjectByKey("settings_key", textComponent);

// Π— плСйсхолдСрами (ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡ” ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊΡƒ для оновлСння Π·ΠΌΡ–Π½Π½ΠΈΡ…)
textStrings.FillTextObjectWithPlaceholders(2, textComponent, userName, score);

textStrings.FillTextObjectWithPlaceholdersByKey("row_key", textComponent, userName, score);
}

Π”ΠΈΠ½Π°ΠΌΡ–Ρ‡Π½ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ – Π·Ρ‡ΠΈΡ‚ΡƒΡ” Π½Π° Π²ΠΈΠΌΠΎΠ³Ρƒ, Π±Π΅Π· Π·ΠΌΡ–Π½ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚Ρƒ
Π’ΠΈΠΊΠ»ΠΈΠΊΠ°ΠΉΡ‚Π΅ Π² Update() Π°Π±ΠΎ ΠΊΠΎΠ»ΠΈ Π΄Π°Π½Ρ– часто Π·ΠΌΡ–Π½ΡŽΡŽΡ‚ΡŒΡΡ

void Update()
{
    // Π—Π° індСксом рядка
    textComponent.text = textStrings.GetStringText(2);
    
    // Π—Π° ΠΊΠ»ΡŽΡ‡Π΅ΠΌ
    textComponent.text = textStrings.GetStringTextByKey("greeting_key");
    
    // Π— плСйсхолдСрами
    textComponent.text = textStrings.ReplacePlaceholders(3, playerName, level);

    textComponent.text = textStrings.ReplacePlaceholdersByKey("row_key", playerName, level);

    // Π ΡƒΡ‡Π½Π΅ оновлСння ΡˆΡ€ΠΈΡ„Ρ‚Ρƒ (Π²ΠΈΠΊΠ»ΠΈΠΊΠ°ΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π·Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈ)
    textComponent.font = textStrings.GetCurrentFont();
}

Π—ΠΌΡ–Π½Π° ΠΌΠΎΠ²ΠΈ – ΠΏΡ€ΠΈΠ²β€™ΡΠΆΡ–Ρ‚ΡŒ Π΄ΠΎ UI ΠΊΠ½ΠΎΠΏΠΎΠΊ для пСрСмикання ΠΌΠΎΠ²ΠΈ

// Π—Π° enum
textStrings.ChangeLanguage(InputStringsScriptableObject.Language.Japanese);

// Π—Π° рядком (Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ для власних ΠΌΠΎΠ²)
textStrings.ChangeLanguage("Ukrainian");

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Localized Tooltip

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΡ— Π»ΠΎΠΊΠ°Π»Ρ–Π·Π°Ρ†Ρ–Ρ— тСксту Π±Π΅Π·ΠΏΠΎΡΠ΅Ρ€Π΅Π΄Π½ΡŒΠΎ Π½Π° об’єктах сцСни Π±Π΅Π· написання ΠΊΠΎΠ΄Ρƒ.

ΠΠ°Π»Π°ΡˆΡ‚ΡƒΠ²Π°Π½Π½Ρ

  1. Π”ΠΎΠ΄Π°ΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ LocalizedTooltip Π΄ΠΎ GameObject Π· TextMeshPro
  2. ΠŸΡ€ΠΈΠ·Π½Π°Ρ‡Ρ‚Π΅ InputData Ρƒ ΠΏΠΎΠ»Π΅ Input Text Settings
  3. Π’Π²Π΅Π΄Ρ–Ρ‚ΡŒ Connected Table Key (ΠΊΠ»ΡŽΡ‡ рядка Π· CSV)
  4. ВСкст Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΎΠ½ΠΎΠ²Π»ΡŽΡ”Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Start Ρ‚Π° Π·ΠΌΡ–Π½Ρ– ΠΌΠΎΠ²ΠΈ

    Π”ΠΈΠ½Π°ΠΌΡ–Ρ‡Π½Ρ– ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ

    Для тСксту Π·Ρ– Π·ΠΌΡ–Π½Π½ΠΈΠΌΠΈ використовуйтС Parameter Selector:

  5. ΠΠ°Ρ‚ΠΈΡΠ½Ρ–Ρ‚ΡŒ + Ρƒ списку Dynamic Parameters
  6. Π’ΠΈΠ±Π΅Ρ€Ρ–Ρ‚ΡŒ Target Object (GameObject Π· ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ)
  7. Π’ΠΈΠ±Π΅Ρ€Ρ–Ρ‚ΡŒ Component Π·Ρ– спадного списку
  8. Π’ΠΈΠ±Π΅Ρ€Ρ–Ρ‚ΡŒ Field/Property для відобраТСння ОновлСння ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ–Π²:
    • АвтоматичнС: Π ΠΎΠ·ΠΊΠΎΠΌΠ΅Π½Ρ‚ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Update() Ρƒ LocalizedTooltip.cs
    • Π ΡƒΡ‡Π½Π΅: Π’ΠΈΠΊΠ»ΠΈΠΊΠ°ΠΉΡ‚Π΅ FillTextObject() після Π·ΠΌΡ–Π½ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΡŒ

Π€ΠΎΡ€ΠΌΠ°Ρ‚ CSV

Β  A B C D E F …
1 Use keys Default English Chinese Japanese German …
2 greeting_key hello hello δ½ ε₯½ こんにけは hallo …
3 welcome_key Welcome, {name}! Welcome, {name}! 欒迎,{name}! γ‚ˆγ†γ“γγ€{name}! Willkommen, {name}! …
4 yes_key Yes Yes 是 はい Ja …

Π’Π°ΠΆΠ»ΠΈΠ²ΠΎ: ΠŸΠ»Π΅ΠΉΡΡ…ΠΎΠ»Π΄Π΅Ρ€ΠΈ Π·Π°ΠΌΡ–Π½ΡŽΡŽΡ‚ΡŒΡΡ Π·Π° ΠΏΠΎΠ·ΠΈΡ†Ρ–Ρ”ΡŽ, Π° Π½Π΅ Π·Π° назвою. БистСма Π·Π°ΠΌΡ–Π½ΡŽΡ” 1-ΠΉ плСйсхолдСр Π½Π° 1-Π΅ значСння, 2-ΠΉ Π½Π° 2-Π΅ значСння Ρ‚ΠΎΡ‰ΠΎ, Π½Π΅Π·Π°Π»Π΅ΠΆΠ½ΠΎ Π²Ρ–Π΄ Ρ‚ΠΎΠ³ΠΎ, Ρ‰ΠΎ всСрСдині Ρ„Ρ–Π³ΡƒΡ€Π½ΠΈΡ… Π΄ΡƒΠΆΠΎΠΊ.

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ Π· Π²ΠΈΠΊΠ»ΠΈΠΊΠΎΠΌ: ReplacePlaceholders(row, "John", 100)

βœ… ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
EN: "Player {name} has {score} coins" β†’ β€œPlayer John has 100 coins”
UA: "Π£ гравця {name} Ρ” {score} ΠΌΠΎΠ½Π΅Ρ‚" β†’ β€œΠ£ гравця John Ρ” 100 монСт”
(Однаковий порядок: {name} ΠΏΠ΅Ρ€ΡˆΠΈΠΉ, {score} Π΄Ρ€ΡƒΠ³ΠΈΠΉ)

❌ ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:
UA: "{score} ΠΌΠΎΠ½Π΅Ρ‚ Ρƒ гравця {name}" β†’ β€œJohn ΠΌΠΎΠ½Π΅Ρ‚ Ρƒ гравця 100” (Π—ΠΌΡ–Π½Π΅Π½ΠΈΠΉ порядок: систСма Π·Π°ΠΌΡ–Π½ΡŽΡ” {score} Π½Π° β€œJohn”, {name} Π½Π° 100)

ΠšΠ΅Ρ€ΡƒΠ²Π°Π½Π½Ρ ΡˆΡ€ΠΈΡ„Ρ‚Π°ΠΌΠΈ

Для ΠΌΠΎΠ² Π·Ρ– ΡΠΏΠ΅Ρ†Ρ–Π°Π»ΡŒΠ½ΠΈΠΌΠΈ символами (ΠΊΠΈΡ‚Π°ΠΉΡΡŒΠΊΠ°, японська, ΠΊΠΎΡ€Π΅ΠΉΡΡŒΠΊΠ°):

  1. Π’ інспСкторі InputData β†’ Language Special Fonts:
    • Π”ΠΎΠ΄Π°ΠΉΡ‚Π΅ Π½Π°Π·Π²Ρƒ ΠΌΠΎΠ²ΠΈ: Chinese
    • ΠŸΡ€ΠΈΠ·Π½Π°Ρ‡Ρ‚Π΅ TMP_FontAsset: NotoSansTC-Regular SDF
  2. Π’ΡΡ‚Π°Π½ΠΎΠ²Ρ–Ρ‚ΡŒ Default Font для всіх Ρ–Π½ΡˆΠΈΡ… ΠΌΠΎΠ²

БистСма Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π·ΠΌΡ–Π½ΡŽΡ” ΡˆΡ€ΠΈΡ„Ρ‚ΠΈ Π½Π° Ρ‚Ρ–, Ρ‰ΠΎ Ρƒ списку, ΠΏΡ€ΠΈ Π·ΠΌΡ–Π½Ρ– ΠΌΠΎΠ²ΠΈ.

Π”ΠΎΠ²Ρ–Π΄Π½ΠΈΠΊ API

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈ

ΠœΠ΅Ρ‚ΠΎΠ΄ Опис Π’ΠΈΠΏΠ°Π΄ΠΎΠΊ використання
InitializeLocalizator() Π—Π°Π²Π°Π½Ρ‚Π°ΠΆΠΈΡ‚ΠΈ Π·Π±Π΅Ρ€Π΅ΠΆΠ΅Π½Ρƒ ΠΌΠΎΠ²Ρƒ Π°Π±ΠΎ встановити Π·Π° замовчуванням Π’ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ‚ΠΈ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π½Π° старті Π³Ρ€ΠΈ
ChangeLanguage(Language) ΠŸΠ΅Ρ€Π΅ΠΌΠΊΠ½ΡƒΡ‚ΠΈ Π½Π° ΠΌΠΎΠ²Ρƒ Π· enum ВСстування Π² інспСкторі
ChangeLanguage(string) ΠŸΠ΅Ρ€Π΅ΠΌΠΊΠ½ΡƒΡ‚ΠΈ Π·Π° назвою рядка UI ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΠΎΠ², власні ΠΌΠΎΠ²ΠΈ
GetStringText(int row) ΠžΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ тСкст Π·Π° рядком Π”ΠΈΠ½Π°ΠΌΡ–Ρ‡Π½Π΅ зчитування
GetStringTextByKey(string key) ΠžΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ тСкст Π·Π° ΠΊΠ»ΡŽΡ‡Π΅ΠΌ Π”ΠΈΠ½Π°ΠΌΡ–Ρ‡Π½Π΅ зчитування
FillTextObject(int row, TMP_Text) ΠšΠ΅ΡˆΡƒΠ²Π°Ρ‚ΠΈ тСкстовий об’єкт Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π½ΠΈΠΉ UI
ReplacePlaceholders(int row, params object[]) ΠžΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ тСкст Π·Ρ– Π·ΠΌΡ–Π½Π½ΠΈΠΌΠΈ Π”ΠΈΠ½Π°ΠΌΡ–Ρ‡Π½ΠΈΠΉ Π·Ρ– Π·ΠΌΡ–Π½Π½ΠΈΠΌΠΈ
FillTextObjectWithPlaceholders(int row, TMP_Text, params object[]) ΠšΠ΅ΡˆΡƒΠ²Π°Ρ‚ΠΈ тСкст Π·Ρ– Π·ΠΌΡ–Π½Π½ΠΈΠΌΠΈ Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π½ΠΈΠΉ Π·Ρ– Π·ΠΌΡ–Π½Π½ΠΈΠΌΠΈ
ReplacePlaceholdersByKey(string key, params object[]) ΠžΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ тСкст Π·Ρ– Π·ΠΌΡ–Π½Π½ΠΈΠΌΠΈ Π”ΠΈΠ½Π°ΠΌΡ–Ρ‡Π½ΠΈΠΉ Π·Ρ– Π·ΠΌΡ–Π½Π½ΠΈΠΌΠΈ
FillTextObjectWithPlaceholdersByKey(string key, TMP_Text textToFill, params object[]) ΠšΠ΅ΡˆΡƒΠ²Π°Ρ‚ΠΈ тСкст Π·Ρ– Π·ΠΌΡ–Π½Π½ΠΈΠΌΠΈ Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π½ΠΈΠΉ Π·Ρ– Π·ΠΌΡ–Π½Π½ΠΈΠΌΠΈ
GetCurrentFont() ΠžΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚ ΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡ— ΠΌΠΎΠ²ΠΈ Π ΡƒΡ‡Π½Π΅ кСрування ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ

Властивості

_currentLanguageString – ΠŸΠΎΡ‚ΠΎΡ‡Π½Π° ΠΌΠΎΠ²Π° як string. ВідстСТуйтС Ρ†Π΅ для виявлСння Π·ΠΌΡ–Π½ ΠΌΠΎΠ²ΠΈ Π² Π·ΠΎΠ²Π½Ρ–ΡˆΠ½Ρ–Ρ… скриптах (Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, if (language != textStrings._currentLanguageString)).

Localization System Mini code

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ сцСни

Π’Ρ–Π΄ΠΊΡ€ΠΈΠΉΡ‚Π΅ DemoScene Ρ‰ΠΎΠ± ΠΏΠΎΠ±Π°Ρ‡ΠΈΡ‚ΠΈ всі моТливості Π² Π΄Ρ–Ρ—.

Watch the video

ΠŸΠ΅Ρ€Π΅ΠΌΠΈΠΊΠ°Π½Π½Ρ ΠΌΠΎΠ²

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ΠΈ Π΄ΠΈΠ½Π°ΠΌΡ–Ρ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΡƒ

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ΠΈ статичного Ρ€Π΅ΠΆΠΈΠΌΡƒ

ΠšΠ΅Ρ€ΡƒΠ²Π°Π½Π½Ρ ΡˆΡ€ΠΈΡ„Ρ‚Π°ΠΌΠΈ

ΠΠ°Π²Ρ‡Π°Π»ΡŒΠ½Ρ– рСсурси

Π’ΠΈΠ²Ρ‡Ρ–Ρ‚ΡŒ TextCallExamples.cs для ΡˆΠ°Π±Π»ΠΎΠ½Ρ–Π² Ρ€Π΅Π°Π»Ρ–Π·Π°Ρ†Ρ–Ρ—:

ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠΈ

ЛіцСнзія

Π‘Π΅Π·ΠΊΠΎΡˆΡ‚ΠΎΠ²Π½ΠΎ для використання Π² особистих Ρ‚Π° ΠΊΠΎΠΌΠ΅Ρ€Ρ†Ρ–ΠΉΠ½ΠΈΡ… ΠΏΡ€ΠΎΡ”ΠΊΡ‚Π°Ρ….

ΠŸΡ–Π΄Ρ‚Ρ€ΠΈΠΌΠΊΠ°

Для ΠΏΠΎΠ²Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†Ρ–ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡ— вСрсії Ρ‡Π΅ΠΊΠ½Ρ–Ρ‚ΡŒ: Automatic Tutorial Maker Π² Unity Asset Store

Ця систСма Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚ΡŒΡΡ для Π»ΠΎΠΊΠ°Π»Ρ–Π·Π°Ρ†Ρ–Ρ— тСкстових ΠΏΡ–Π΄ΠΊΠ°Π·ΠΎΠΊ, Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π·Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΠΈ значСння Π·Π° Π½Π°ΠΉΠ±Π»ΠΈΠΆΡ‡ΠΈΠΌ співпадінням (Π±Π΅Π· ΠΏΡ€ΠΈΠ²`язки Π΄ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π° Ρ‡ΠΈ ΠΊΠ»ΡŽΡ‡Π° рядка) Ρ‚Π° Скспортувати Π°Π²Ρ‚ΠΎ-Π·Π³Π΅Π½Π΅Ρ€ΠΎΠ²Π°Π½Ρ– Π°Π±ΠΎ Π²Ρ€ΡƒΡ‡Π½Ρƒ створСні тСксти Ρƒ CSV Π·Ρ– Scriptable Object. Π‘Ρ…ΠΎΠ²ΠΈΡ‰Π΅ ΠΌΡ–ΡΡ‚ΠΈΡ‚ΡŒ усі Π²Π±ΡƒΠ΄ΠΎΠ²Π°Π½Ρ– ΠΏΡ–Π΄ΠΊΠ°Π·ΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΎΠΆ Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²Ρ– тСксти, створСні Π² усіх сцСнах Ρ– Π½Π°Π²Ρ‡Π°Π»ΡŒΠ½ΠΈΡ… ΠΊΡ€ΠΎΠΊΠ°Ρ… Unity-ΠΏΡ€ΠΎΡ”ΠΊΡ‚Ρƒ.

YouTube

ATM_full

P.S. На Π±Π°Π·Ρ– CSV Π²ΠΆΠ΅ Ρ” Ρ€Ρ–ΡˆΠ΅Π½Π½Ρ Localization Package Π²Ρ–Π΄ Unity, якС ΠΌΡ–ΡΡ‚ΠΈΡ‚ΡŒ Π±Ρ–Π»ΡŒΡˆΡ–ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ»ΠΈΠ²ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†Ρ–ΠΉ. А Ρ†Π΅ - як проста вСрсія для Ρ–Π½Π΄Ρ–, Π· дСякими своїми ΠΏΠ΅Ρ€Π΅Π²Π°Π³Π°ΠΌΠΈ. Наприклад, Π²ΠΌΡ–Ρ” ΠΊΠ΅ΡˆΡƒΠ²Π°Ρ‚ΠΈ ΠΏΠ°Ρ€Ρƒ TMP_Text + ΠΉΠΎΠ³ΠΎ рядок, Ρ‰ΠΎΠ± ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»Π°Π΄Ρ– ΠΎΠ½ΠΎΠ²ΠΈΡ‚ΠΈ всі ΠΏΠ°Ρ€ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ, Ρ€Π°Π·ΠΎΠΌ Π·Ρ– ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ. Π„ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΠΊΠ° ΠΌΠΎΠ² ΠΏΠΎ Π±ΡƒΠ΄ΡŒ-якій Π½Π°Π·Π²Ρ– (ΠΌΠΎΠΆΠ½Π° вписати стовпчик β€œElvish” - Ρ– ΠΏΠΎ β€œElvish” Π·Π²Π΅Ρ€Ρ‚Π°Ρ‚ΠΈΡΡŒ). Π† лишС ΠΎΠ΄ΠΈΠ½ ScriptableObject як β€œΠΏΠΎΡΠ΅Ρ€Π΅Π΄Π½ΠΈΠΊβ€, доступний Π·Π²Ρ–Π΄ΡƒΡΡ–Π»ΡŒ, Π½Π΅ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ ΠΏΡ€Π°Ρ†ΡŽΠ²Π°Ρ‚ΠΈ Π· ΠΊΡƒΠΏΠΎΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ–Π².

Π ΠΎΠ·Ρ€ΠΎΠ±Π½ΠΈΠΊ: https://www.octantastudio.com/

Gmail: octantastudio@gmail.com

Discord: https://discord.gg/6SPxKpFZFC

ΠœΠžΠ–Π›Π˜Π’ΠžΠ‘Π’Π† Π¨Π’Π˜Π”ΠšΠ˜Π™ БВАРВ ΠŸΠ†Π”ΠšΠΠ—ΠšΠ ЀОРМАВ CSV ШРИЀВИ API Π”Π•ΠœΠž БЦЕНА ΠŸΠ Π˜ΠœΠ†Π’ΠšΠ˜ ЛІЦЕНЗІЯ ΠŸΠ†Π”Π’Π Π˜ΠœΠšΠ