Merge branch 'develop' into feature/Steam愿望单
This commit is contained in:
@@ -0,0 +1,144 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using AibisDream.Framework;
|
||||||
|
using AibisDream.Kit;
|
||||||
|
using AibisDream.Utility;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEngine;
|
||||||
|
using YarnProjectDefinition = Yarn.Compiler.Project;
|
||||||
|
|
||||||
|
namespace AibisDream.SystemEditor.Tests
|
||||||
|
{
|
||||||
|
public sealed class LocalizationExpansionTests
|
||||||
|
{
|
||||||
|
private const string FirstRuntimeChapterPath =
|
||||||
|
"Assets/ScriptableObjects/SceneSO/Demo/Day0_Prologue.asset";
|
||||||
|
|
||||||
|
private static readonly string[] AddedLocaleCodes = { "ru", "es", "pt-BR" };
|
||||||
|
|
||||||
|
private static readonly MethodInfo GetLocalizedNameMethod =
|
||||||
|
typeof(CharacterVo).GetMethod(
|
||||||
|
"GetLocalizedNameByKind",
|
||||||
|
BindingFlags.Instance | BindingFlags.NonPublic);
|
||||||
|
|
||||||
|
[TestCase("ru", LocaleKind.Ru)]
|
||||||
|
[TestCase("ru-RU", LocaleKind.Ru)]
|
||||||
|
[TestCase("es", LocaleKind.Es)]
|
||||||
|
[TestCase("es-ES", LocaleKind.Es)]
|
||||||
|
[TestCase("pt", LocaleKind.PtBr)]
|
||||||
|
[TestCase("pt-BR", LocaleKind.PtBr)]
|
||||||
|
public void GetLocaleKind_AddedLocaleCode_ReturnsExpectedKind(
|
||||||
|
string localeCode,
|
||||||
|
LocaleKind expected)
|
||||||
|
{
|
||||||
|
Assert.That(LocalizationKit.GetLocaleKind(localeCode), Is.EqualTo(expected));
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestCase(SystemLanguage.Russian, "ru")]
|
||||||
|
[TestCase(SystemLanguage.Spanish, "es")]
|
||||||
|
[TestCase(SystemLanguage.Portuguese, "pt-BR")]
|
||||||
|
public void MapSystemLanguage_AddedSystemLanguage_ReturnsSupportedLocale(
|
||||||
|
SystemLanguage systemLanguage,
|
||||||
|
string expected)
|
||||||
|
{
|
||||||
|
Assert.That(LocalizationKit.MapSystemLanguage(systemLanguage), Is.EqualTo(expected));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void CharacterVo_AddedLocaleName_ReturnsTranslationOrKey()
|
||||||
|
{
|
||||||
|
Assert.That(GetLocalizedNameMethod, Is.Not.Null);
|
||||||
|
|
||||||
|
var translated = new CharacterVo
|
||||||
|
{
|
||||||
|
key = "actor_key",
|
||||||
|
ru = "Русское имя",
|
||||||
|
es = "Nombre español",
|
||||||
|
ptBr = "Nome português",
|
||||||
|
};
|
||||||
|
|
||||||
|
Assert.That(GetLocalizedName(translated, LocaleKind.Ru), Is.EqualTo(translated.ru));
|
||||||
|
Assert.That(GetLocalizedName(translated, LocaleKind.Es), Is.EqualTo(translated.es));
|
||||||
|
Assert.That(GetLocalizedName(translated, LocaleKind.PtBr), Is.EqualTo(translated.ptBr));
|
||||||
|
|
||||||
|
var untranslated = new CharacterVo { key = "actor_key" };
|
||||||
|
Assert.That(GetLocalizedName(untranslated, LocaleKind.Ru), Is.EqualTo(untranslated.key));
|
||||||
|
Assert.That(GetLocalizedName(untranslated, LocaleKind.Es), Is.EqualTo(untranslated.key));
|
||||||
|
Assert.That(GetLocalizedName(untranslated, LocaleKind.PtBr), Is.EqualTo(untranslated.key));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void CharacterCsv_AddedLocaleColumns_ParseSuccessfully()
|
||||||
|
{
|
||||||
|
string csvPath = Path.Combine(
|
||||||
|
Application.streamingAssetsPath,
|
||||||
|
"Config",
|
||||||
|
"character.csv");
|
||||||
|
|
||||||
|
List<Character> characters = CsvUtil.ReadAsBean<Character>(csvPath);
|
||||||
|
|
||||||
|
Assert.That(characters, Is.Not.Empty);
|
||||||
|
Character peipei = characters.Single(character => character.Key == "peipei");
|
||||||
|
Assert.That(peipei.Ru, Is.Empty);
|
||||||
|
Assert.That(peipei.Es, Is.Empty);
|
||||||
|
Assert.That(peipei.PtBr, Is.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void RuntimeYarnProjects_DeclareAddedLocales()
|
||||||
|
{
|
||||||
|
TalkSceneSO firstChapter =
|
||||||
|
AssetDatabase.LoadAssetAtPath<TalkSceneSO>(FirstRuntimeChapterPath);
|
||||||
|
Assert.That(firstChapter, Is.Not.Null);
|
||||||
|
|
||||||
|
var pending = new Queue<TalkSceneSO>();
|
||||||
|
var visited = new HashSet<TalkSceneSO>();
|
||||||
|
pending.Enqueue(firstChapter);
|
||||||
|
|
||||||
|
while (pending.Count > 0)
|
||||||
|
{
|
||||||
|
TalkSceneSO chapter = pending.Dequeue();
|
||||||
|
if (chapter == null || !visited.Add(chapter))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
Assert.That(chapter.yarnProject, Is.Not.Null, chapter.name);
|
||||||
|
AssertYarnProjectDeclaresAddedLocales(chapter);
|
||||||
|
|
||||||
|
if (chapter.exits == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
foreach (SceneExit sceneExit in chapter.exits)
|
||||||
|
{
|
||||||
|
if (sceneExit?.targetScene != null)
|
||||||
|
pending.Enqueue(sceneExit.targetScene);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Assert.That(visited, Is.Not.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string GetLocalizedName(CharacterVo character, LocaleKind localeKind)
|
||||||
|
{
|
||||||
|
return (string)GetLocalizedNameMethod.Invoke(character, new object[] { localeKind });
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void AssertYarnProjectDeclaresAddedLocales(TalkSceneSO chapter)
|
||||||
|
{
|
||||||
|
string assetPath = AssetDatabase.GetAssetPath(chapter.yarnProject);
|
||||||
|
string projectRoot = Directory.GetParent(Application.dataPath).FullName;
|
||||||
|
string absolutePath = Path.GetFullPath(Path.Combine(projectRoot, assetPath));
|
||||||
|
YarnProjectDefinition project = YarnProjectDefinition.LoadFromFile(absolutePath);
|
||||||
|
|
||||||
|
foreach (string localeCode in AddedLocaleCodes)
|
||||||
|
{
|
||||||
|
Assert.That(
|
||||||
|
project.Localisation.ContainsKey(localeCode),
|
||||||
|
Is.True,
|
||||||
|
$"{chapter.name} ({assetPath}) does not declare Locale {localeCode}.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7f556352cf7f71c4a98e967b54dffc3b
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -8,6 +8,9 @@ namespace AibisDream.Kit
|
|||||||
public string Cn { get; set; }
|
public string Cn { get; set; }
|
||||||
public string En { get; set; }
|
public string En { get; set; }
|
||||||
public string Ja { get; set; }
|
public string Ja { get; set; }
|
||||||
|
public string Ru { get; set; }
|
||||||
|
public string Es { get; set; }
|
||||||
|
public string PtBr { get; set; }
|
||||||
public string NameColor { get; set; }
|
public string NameColor { get; set; }
|
||||||
public string HeadPicPath { get; set; }
|
public string HeadPicPath { get; set; }
|
||||||
public string VoicePath { get; set; }
|
public string VoicePath { get; set; }
|
||||||
@@ -26,6 +29,9 @@ namespace AibisDream.Kit
|
|||||||
vo.cn = Cn;
|
vo.cn = Cn;
|
||||||
vo.en = En;
|
vo.en = En;
|
||||||
vo.ja = Ja;
|
vo.ja = Ja;
|
||||||
|
vo.ru = Ru;
|
||||||
|
vo.es = Es;
|
||||||
|
vo.ptBr = PtBr;
|
||||||
vo.nameColor = NameColor;
|
vo.nameColor = NameColor;
|
||||||
vo.headPicPath = HeadPicPath;
|
vo.headPicPath = HeadPicPath;
|
||||||
vo.voicePath = VoicePath;
|
vo.voicePath = VoicePath;
|
||||||
@@ -43,6 +49,9 @@ namespace AibisDream.Kit
|
|||||||
public string cn;
|
public string cn;
|
||||||
public string en;
|
public string en;
|
||||||
public string ja;
|
public string ja;
|
||||||
|
public string ru;
|
||||||
|
public string es;
|
||||||
|
public string ptBr;
|
||||||
public string nameColor;
|
public string nameColor;
|
||||||
public string headPicPath;
|
public string headPicPath;
|
||||||
public string voicePath;
|
public string voicePath;
|
||||||
@@ -79,6 +88,12 @@ namespace AibisDream.Kit
|
|||||||
case LocaleKind.Ja:
|
case LocaleKind.Ja:
|
||||||
if (!string.IsNullOrWhiteSpace(ja)) return ja;
|
if (!string.IsNullOrWhiteSpace(ja)) return ja;
|
||||||
return string.IsNullOrWhiteSpace(cn) ? key : cn;
|
return string.IsNullOrWhiteSpace(cn) ? key : cn;
|
||||||
|
case LocaleKind.Ru:
|
||||||
|
return string.IsNullOrWhiteSpace(ru) ? key : ru;
|
||||||
|
case LocaleKind.Es:
|
||||||
|
return string.IsNullOrWhiteSpace(es) ? key : es;
|
||||||
|
case LocaleKind.PtBr:
|
||||||
|
return string.IsNullOrWhiteSpace(ptBr) ? key : ptBr;
|
||||||
case LocaleKind.Cn:
|
case LocaleKind.Cn:
|
||||||
default:
|
default:
|
||||||
return string.IsNullOrWhiteSpace(cn) ? key : cn;
|
return string.IsNullOrWhiteSpace(cn) ? key : cn;
|
||||||
@@ -105,4 +120,4 @@ namespace AibisDream.Kit
|
|||||||
Player,
|
Player,
|
||||||
MainActor
|
MainActor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,10 @@ namespace AibisDream.Framework
|
|||||||
{
|
{
|
||||||
Cn,
|
Cn,
|
||||||
En,
|
En,
|
||||||
Ja
|
Ja,
|
||||||
|
Ru,
|
||||||
|
Es,
|
||||||
|
PtBr
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class LocalizationKit
|
public static class LocalizationKit
|
||||||
@@ -34,8 +37,11 @@ namespace AibisDream.Framework
|
|||||||
public static LocaleKind GetLocaleKind(string localeCode)
|
public static LocaleKind GetLocaleKind(string localeCode)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(localeCode)) return LocaleKind.Cn;
|
if (string.IsNullOrEmpty(localeCode)) return LocaleKind.Cn;
|
||||||
if (localeCode.StartsWith("en")) return LocaleKind.En;
|
if (localeCode.StartsWith("en", StringComparison.OrdinalIgnoreCase)) return LocaleKind.En;
|
||||||
if (localeCode.StartsWith("ja")) return LocaleKind.Ja;
|
if (localeCode.StartsWith("ja", StringComparison.OrdinalIgnoreCase)) return LocaleKind.Ja;
|
||||||
|
if (localeCode.StartsWith("ru", StringComparison.OrdinalIgnoreCase)) return LocaleKind.Ru;
|
||||||
|
if (localeCode.StartsWith("es", StringComparison.OrdinalIgnoreCase)) return LocaleKind.Es;
|
||||||
|
if (localeCode.StartsWith("pt", StringComparison.OrdinalIgnoreCase)) return LocaleKind.PtBr;
|
||||||
return LocaleKind.Cn;
|
return LocaleKind.Cn;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,6 +68,9 @@ namespace AibisDream.Framework
|
|||||||
SystemLanguage.Chinese or SystemLanguage.ChineseSimplified or SystemLanguage.ChineseTraditional => "zh-Hans",
|
SystemLanguage.Chinese or SystemLanguage.ChineseSimplified or SystemLanguage.ChineseTraditional => "zh-Hans",
|
||||||
SystemLanguage.Japanese => "ja-JP",
|
SystemLanguage.Japanese => "ja-JP",
|
||||||
SystemLanguage.English => "en",
|
SystemLanguage.English => "en",
|
||||||
|
SystemLanguage.Russian => "ru",
|
||||||
|
SystemLanguage.Spanish => "es",
|
||||||
|
SystemLanguage.Portuguese => "pt-BR",
|
||||||
_ => "en",
|
_ => "en",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,9 @@ namespace AibisDream.UI
|
|||||||
new UIFormOption { prop = "zh-Hans", label = "中文" },
|
new UIFormOption { prop = "zh-Hans", label = "中文" },
|
||||||
new UIFormOption { prop = "en", label = "English" },
|
new UIFormOption { prop = "en", label = "English" },
|
||||||
new UIFormOption { prop = "ja-JP", label = "日本語" },
|
new UIFormOption { prop = "ja-JP", label = "日本語" },
|
||||||
|
new UIFormOption { prop = "ru", label = "Русский" },
|
||||||
|
new UIFormOption { prop = "es", label = "Español" },
|
||||||
|
new UIFormOption { prop = "pt-BR", label = "Português (Brasil)" },
|
||||||
};
|
};
|
||||||
|
|
||||||
private static readonly UIFormOption[] TextSpeedOptions =
|
private static readonly UIFormOption[] TextSpeedOptions =
|
||||||
|
|||||||
@@ -1,77 +1,77 @@
|
|||||||
通过key索引配置,中文名,英文名,日文名,"显示位置,Default使用默认,Screen插线屏幕,OldBox基本对话框",人物角色(Player/MainActor/Aside),名称显示时的颜色,头像Pic路径,语音资源路径,气泡序号(默认0)
|
通过key索引配置,中文名,英文名,日文名,俄文名,西班牙文名,巴西葡萄牙文名,"显示位置,Default使用默认,Screen插线屏幕,OldBox基本对话框",人物角色(Player/MainActor/Aside),名称显示时的颜色,头像Pic路径,语音资源路径,气泡序号(默认0)
|
||||||
Key,Cn,En,Ja,DialogViewType,Role,NameColor,HeadPicPath,VoicePath,BubbleIdx
|
Key,Cn,En,Ja,Ru,Es,PtBr,DialogViewType,Role,NameColor,HeadPicPath,VoicePath,BubbleIdx
|
||||||
jg,警告,Warning,Warning,Default,MainActor,#7ae622,,VO/voice_DN,
|
jg,警告,Warning,Warning,,,,Default,MainActor,#7ae622,,VO/voice_DN,
|
||||||
门,门,Door,,Default,MainActor,#7ae622,,,
|
门,门,Door,,,,,Default,MainActor,#7ae622,,,
|
||||||
矩形,黑暗,Darkness,,Default,MainActor,#7ae622,,VO/voice_DN,
|
矩形,黑暗,Darkness,,,,,Default,MainActor,#7ae622,,VO/voice_DN,
|
||||||
记忆,记忆,Memory,,Default,MainActor,#7ae622,,,
|
记忆,记忆,Memory,,,,,Default,MainActor,#7ae622,,,
|
||||||
peipei,佩佩,Peipei,ペイペイ,Default,MainActor,#00FFFF,peipei_head,VO/voice_PP,
|
peipei,佩佩,Peipei,ペイペイ,,,,Default,MainActor,#00FFFF,peipei_head,VO/voice_PP,
|
||||||
乌鸦,乌鸦,Crow,,Default,MainActor,#e6ddc1,,VO/voice_WYd,
|
乌鸦,乌鸦,Crow,,,,,Default,MainActor,#e6ddc1,,VO/voice_WYd,
|
||||||
wyd?,???,???,???,Default,MainActor,#e6ddc1,,VO/voice_WYd,
|
wyd?,???,???,???,,,,Default,MainActor,#e6ddc1,,VO/voice_WYd,
|
||||||
马尾辫女孩,马尾辫女孩,Girl with ponytail,,Default,MainActor,,,VO/voice_JJ,
|
马尾辫女孩,马尾辫女孩,Girl with ponytail,,,,,Default,MainActor,,,VO/voice_JJ,
|
||||||
pp,佩佩,Peipei,ペイペイ,Default,MainActor,#00FFFF,peipei_head,VO/voice_PP,
|
pp,佩佩,Peipei,ペイペイ,,,,Default,MainActor,#00FFFF,peipei_head,VO/voice_PP,
|
||||||
ppm,佩佩,Peipei,ペイペイ,Default,MainActor,#00FFFF,peipei_head,VO/voice_PPm,
|
ppm,佩佩,Peipei,ペイペイ,,,,Default,MainActor,#00FFFF,peipei_head,VO/voice_PPm,
|
||||||
ppd,女孩,Girl,,Default,MainActor,,,VO/voice_PPd,
|
ppd,女孩,Girl,,,,,Default,MainActor,,,VO/voice_PPd,
|
||||||
ppd?,女孩,Girl,,Default,MainActor,,,VO/voice_PPd,
|
ppd?,女孩,Girl,,,,,Default,MainActor,,,VO/voice_PPd,
|
||||||
me,路斯,Luth,ルース,Default,Player,,me_head,VO/voice_ME,
|
me,路斯,Luth,ルース,,,,Default,Player,,me_head,VO/voice_ME,
|
||||||
med,路斯,Luth,ルース,Default,Player,,me_head,VO/voice_MEd,
|
med,路斯,Luth,ルース,,,,Default,Player,,me_head,VO/voice_MEd,
|
||||||
mem,路斯,Luth,ルース,Default,Player,,me_head,VO/voice_MEm,
|
mem,路斯,Luth,ルース,,,,Default,Player,,me_head,VO/voice_MEm,
|
||||||
mecd,女孩,Young Girl,少女,Default,MainActor,,,VO/voice_MECd,
|
mecd,女孩,Young Girl,少女,,,,Default,MainActor,,,VO/voice_MECd,
|
||||||
mecd?,???,???,???,Default,MainActor,,,VO/voice_MECd,
|
mecd?,???,???,???,,,,Default,MainActor,,,VO/voice_MECd,
|
||||||
bb,BB机,Beeper,,Default,Player,,me_head,,
|
bb,BB机,Beeper,,,,,Default,Player,,me_head,,
|
||||||
jj,姐姐,Sister,姉さん,Default,MainActor,,me_head,VO/voice_JJ,
|
jj,姐姐,Sister,姉さん,,,,Default,MainActor,,me_head,VO/voice_JJ,
|
||||||
jjd,姐姐,Sister,姉さん,Default,MainActor,,me_head,VO/voice_JJd,
|
jjd,姐姐,Sister,姉さん,,,,Default,MainActor,,me_head,VO/voice_JJd,
|
||||||
jjm,姐姐,Sister,姉さん,Default,MainActor,,me_head,VO/voice_JJm,
|
jjm,姐姐,Sister,姉さん,,,,Default,MainActor,,me_head,VO/voice_JJm,
|
||||||
jj?,柔和女声,???,???,Default,MainActor,,me_head,VO/voice_JJ,
|
jj?,柔和女声,???,???,,,,Default,MainActor,,me_head,VO/voice_JJ,
|
||||||
hs,火山,HuoShan,火山,Default,MainActor,#FFA800,peipei_head,VO/voice_HS,
|
hs,火山,HuoShan,火山,,,,Default,MainActor,#FFA800,peipei_head,VO/voice_HS,
|
||||||
hs?,沙哑男声,???,???,Default,MainActor,#FFA800,peipei_head,VO/voice_HS,
|
hs?,沙哑男声,???,???,,,,Default,MainActor,#FFA800,peipei_head,VO/voice_HS,
|
||||||
hsm,火山,HuoShan,火山,Default,MainActor,,,VO/voice_HSm,
|
hsm,火山,HuoShan,火山,,,,Default,MainActor,,,VO/voice_HSm,
|
||||||
hsd,阿灿,Young Boy,少年,Default,MainActor,,,VO/voice_HSd,
|
hsd,阿灿,Young Boy,少年,,,,Default,MainActor,,,VO/voice_HSd,
|
||||||
hsd?,???,???,???,Default,MainActor,#FFA800,peipei_head,VO/voice_HSd,
|
hsd?,???,???,???,,,,Default,MainActor,#FFA800,peipei_head,VO/voice_HSd,
|
||||||
yl,英理,Yingli,エリ,Default,MainActor,#4000FF,peipei_head,VO/voice_YL,
|
yl,英理,Yingli,エリ,,,,Default,MainActor,#4000FF,peipei_head,VO/voice_YL,
|
||||||
ql?,02号调酒机体,Bartender,,Default,MainActor,#00FFFF,peipei_head,VO/voice_YL,
|
ql?,02号调酒机体,Bartender,,,,,Default,MainActor,#00FFFF,peipei_head,VO/voice_YL,
|
||||||
ql,奇琳,Kirin,チーリン,Default,MainActor,#00FFFF,peipei_head,VO/voice_YL,
|
ql,奇琳,Kirin,チーリン,,,,Default,MainActor,#00FFFF,peipei_head,VO/voice_YL,
|
||||||
peipei_novoice,胆怯女声,Timid female voice,怯えた女声,Default,Aside,#00FFFF,,VO/voice_PP,2
|
peipei_novoice,胆怯女声,Timid female voice,怯えた女声,,,,Default,Aside,#00FFFF,,VO/voice_PP,2
|
||||||
yingli_novoice,严厉女声,Stern female voice,厳しい女声,Default,Aside,#FFCC00,,VO/voice_YL,1
|
yingli_novoice,严厉女声,Stern female voice,厳しい女声,,,,Default,Aside,#FFCC00,,VO/voice_YL,1
|
||||||
tutorial,教学,Tutorial,,Default,Aside,,,,
|
tutorial,教学,Tutorial,,,,,Default,Aside,,,,
|
||||||
docter,儿科医生,Doctor (in memory),医者(記憶の中),Default,Aside,#FFCC00,,,
|
docter,儿科医生,Doctor (in memory),医者(記憶の中),,,,Default,Aside,#FFCC00,,,
|
||||||
peipei_child,童年佩佩,Peipei (child),ペイペイ(幼少期),Default,Aside,#00FFFF,,VO/voice_PPm,
|
peipei_child,童年佩佩,Peipei (child),ペイペイ(幼少期),,,,Default,Aside,#00FFFF,,VO/voice_PPm,
|
||||||
unknown,???,???,???,Default,Aside,#FFCC00,,,
|
unknown,???,???,???,,,,Default,Aside,#FFCC00,,,
|
||||||
???,???,???,???,Default,MainActor,#FFCC00,,,
|
???,???,???,???,,,,Default,MainActor,#FFCC00,,,
|
||||||
zls?,???,???,???,Default,MainActor,#FFCC00,,VO/voice_memCommon,
|
zls?,???,???,???,,,,Default,MainActor,#FFCC00,,VO/voice_memCommon,
|
||||||
zls,治疗师,Therapist,セラピスト,Default,MainActor,#FFCC00,,VO/voice_memCommon,
|
zls,治疗师,Therapist,セラピスト,,,,Default,MainActor,#FFCC00,,VO/voice_memCommon,
|
||||||
shitou,石头,Stone,シートウ,Default,MainActor,,,VO/voice_shitou,
|
shitou,石头,Stone,シートウ,,,,Default,MainActor,,,VO/voice_shitou,
|
||||||
Descent,Descent,Descent,,Default,Aside,#FFCC00,,VO/voice_me,
|
Descent,Descent,Descent,,,,,Default,Aside,#FFCC00,,VO/voice_me,
|
||||||
e-assistant,电子助手,Electronic Assistant,,Default,Aside,#FFCC00,,VO/voice_me,
|
e-assistant,电子助手,Electronic Assistant,,,,,Default,Aside,#FFCC00,,VO/voice_me,
|
||||||
Gotashi_unknow,戴纯金雕塑头的男人,*Gotash,*ゴタシュ,Default,Aside,#FFCC00,,,
|
Gotashi_unknow,戴纯金雕塑头的男人,*Gotash,*ゴタシュ,,,,Default,Aside,#FFCC00,,,
|
||||||
dn,无连接,No Connection,No Connection,Screen,Aside,#FFBF5F,,VO/voice_DN,
|
dn,无连接,No Connection,No Connection,,,,Screen,Aside,#FFBF5F,,VO/voice_DN,
|
||||||
Linking,连接中……,Connecting...,Connecting...,Screen,Aside,#E6A23C,,VO/voice_DN,
|
Linking,连接中……,Connecting...,Connecting...,,,,Screen,Aside,#E6A23C,,VO/voice_DN,
|
||||||
Analysing,分析中,Analyzing...,Analyzing...,Screen,Aside,#E6A23C,,VO/voice_DN,
|
Analysing,分析中,Analyzing...,Analyzing...,,,,Screen,Aside,#E6A23C,,VO/voice_DN,
|
||||||
Error,错误警告,Error warning,Error warning,Screen,Aside,#E6A23C,,VO/voice_DN,
|
Error,错误警告,Error warning,Error warning,,,,Screen,Aside,#E6A23C,,VO/voice_DN,
|
||||||
UfModule,Unstable Fusion图像生成模块,Unstable Fusion Module,Unstable Fusion Module,Screen,Aside,#F56C6C,,VO/voice_DN,
|
UfModule,Unstable Fusion图像生成模块,Unstable Fusion Module,Unstable Fusion Module,,,,Screen,Aside,#F56C6C,,VO/voice_DN,
|
||||||
EyeModule,HS9型视觉模块,HS9 Visual Module,HS9 Visual Module,Screen,Aside,#F56C6C,,VO/voice_DN,
|
EyeModule,HS9型视觉模块,HS9 Visual Module,HS9 Visual Module,,,,Screen,Aside,#F56C6C,,VO/voice_DN,
|
||||||
EmoModule,通用型情绪发生模块,Universal Emotion Generation Module,Universal Emotion Generation Module,Screen,Aside,#F56C6C,,VO/voice_DN,
|
EmoModule,通用型情绪发生模块,Universal Emotion Generation Module,Universal Emotion Generation Module,,,,Screen,Aside,#F56C6C,,VO/voice_DN,
|
||||||
MemModule,通用型记忆模块,Universal Memory Module,Universal Memory Module,Screen,Aside,#F56C6C,,VO/voice_DN,
|
MemModule,通用型记忆模块,Universal Memory Module,Universal Memory Module,,,,Screen,Aside,#F56C6C,,VO/voice_DN,
|
||||||
LogicModule,MK1型逻辑处理模块,MK1 logic Processing Module,MK1 logic Processing Module,Screen,Aside,#F56C6C,,VO/voice_DN,
|
LogicModule,MK1型逻辑处理模块,MK1 logic Processing Module,MK1 logic Processing Module,,,,Screen,Aside,#F56C6C,,VO/voice_DN,
|
||||||
SpeakerModule,MK1型表达模块,MK1 Expression Module,MK1 Expression Module,Screen,Aside,#F56C6C,,VO/voice_DN,
|
SpeakerModule,MK1型表达模块,MK1 Expression Module,MK1 Expression Module,,,,Screen,Aside,#F56C6C,,VO/voice_DN,
|
||||||
SaleModule,销售语言拓展模块,Sales Language Extension Module,販売言語拡張モジュール,Screen,Aside,#F56C6C,,VO/voice_DN,
|
SaleModule,销售语言拓展模块,Sales Language Extension Module,販売言語拡張モジュール,,,,Screen,Aside,#F56C6C,,VO/voice_DN,
|
||||||
ChipModule,4R7型色觉晶圆训练槽,4R7 Color Perception Wafer Training Slot,4R7 Color Perception Wafer Training Slot,Screen,Aside,#F56C6C,,VO/voice_DN,
|
ChipModule,4R7型色觉晶圆训练槽,4R7 Color Perception Wafer Training Slot,4R7 Color Perception Wafer Training Slot,,,,Screen,Aside,#F56C6C,,VO/voice_DN,
|
||||||
HivemindModule,未知型号<br>Hivemind通讯终端,Unknown type Hivemind communication terminal,Unknown type Hivemind communication terminal,Screen,Aside,#F56C6C,,VO/voice_DN,
|
HivemindModule,未知型号<br>Hivemind通讯终端,Unknown type Hivemind communication terminal,Unknown type Hivemind communication terminal,,,,Screen,Aside,#F56C6C,,VO/voice_DN,
|
||||||
HeartModule,C03UR型特配涡轮增压动力模块,C03UR Special Turbocharged Power Module,C03UR Special Turbocharged Power Module,Screen,Aside,#E6A23C,,VO/voice_DN,
|
HeartModule,C03UR型特配涡轮增压动力模块,C03UR Special Turbocharged Power Module,C03UR Special Turbocharged Power Module,,,,Screen,Aside,#E6A23C,,VO/voice_DN,
|
||||||
LungModule,MK1型气体处理模块,MK1 Gas Processing Module,MK1 Gas Processing Module,Screen,Aside,#E6A23C,,VO/voice_DN,
|
LungModule,MK1型气体处理模块,MK1 Gas Processing Module,MK1 Gas Processing Module,,,,Screen,Aside,#E6A23C,,VO/voice_DN,
|
||||||
LiverModule,MK1型冷却液循环模块,MK1 Coolant Circulation Module,MK1 Coolant Circulation Module,Screen,Aside,#E6A23C,,VO/voice_DN,
|
LiverModule,MK1型冷却液循环模块,MK1 Coolant Circulation Module,MK1 Coolant Circulation Module,,,,Screen,Aside,#E6A23C,,VO/voice_DN,
|
||||||
DigestModule,MK1型物料处理模块,MK1 Material Processing Module,MK1 Material Processing Module,Screen,Aside,#E6A23C,,VO/voice_DN,
|
DigestModule,MK1型物料处理模块,MK1 Material Processing Module,MK1 Material Processing Module,,,,Screen,Aside,#E6A23C,,VO/voice_DN,
|
||||||
CenterText,,,,CenterText,Aside,,,,
|
CenterText,,,,,,,CenterText,Aside,,,,
|
||||||
CenterOption,,,,CenterOption,Aside,,,,
|
CenterOption,,,,,,,CenterOption,Aside,,,,
|
||||||
Task,,,,Task,Aside,,,,
|
Task,,,,,,,Task,Aside,,,,
|
||||||
TempText,,,,Default,Aside,,,,
|
TempText,,,,,,,Default,Aside,,,,
|
||||||
gts,患者,???,???,Default,MainActor,#A4CD36,,VO/voice_GTS,
|
gts,患者,???,???,,,,Default,MainActor,#A4CD36,,VO/voice_GTS,
|
||||||
gts?,患者,???,???,Default,MainActor,#A4CD36,,VO/voice_GTS_broken,
|
gts?,患者,???,???,,,,Default,MainActor,#A4CD36,,VO/voice_GTS_broken,
|
||||||
gts??,患者??,???,???,Default,MainActor,#E2C22B,,VO/voice_GTS,
|
gts??,患者??,???,???,,,,Default,MainActor,#E2C22B,,VO/voice_GTS,
|
||||||
classmate,同学,Classmate,クラスメート,Default,Aside,,,VO/voice_memCommon,
|
classmate,同学,Classmate,クラスメート,,,,Default,Aside,,,VO/voice_memCommon,
|
||||||
jb,酒保,Bartender,バーテンダー,Default,MainActor,,,VO/voice_memCommon,
|
jb,酒保,Bartender,バーテンダー,,,,Default,MainActor,,,VO/voice_memCommon,
|
||||||
host,主持人,Newscaster,ニュースキャスター,Default,MainActor,,,VO/voice_memCommon,
|
host,主持人,Newscaster,ニュースキャスター,,,,Default,MainActor,,,VO/voice_memCommon,
|
||||||
teacher,教师,Teacher,Teacher,Default,MainActor,#FFCC00,,VO/voice_memCommon,
|
teacher,教师,Teacher,Teacher,,,,Default,MainActor,#FFCC00,,VO/voice_memCommon,
|
||||||
sellerA,销售员A,Seller A,Seller A,Default,MainActor,#FFCC00,,VO/voice_memCommon,
|
sellerA,销售员A,Seller A,Seller A,,,,Default,MainActor,#FFCC00,,VO/voice_memCommon,
|
||||||
sellerB,销售员B,Seller B,Seller B,Default,MainActor,#FFCC00,,VO/voice_memCommon,
|
sellerB,销售员B,Seller B,Seller B,,,,Default,MainActor,#FFCC00,,VO/voice_memCommon,
|
||||||
sellerC,销售员C,Seller C,Seller C,Default,MainActor,#FFCC00,,VO/voice_memCommon,
|
sellerC,销售员C,Seller C,Seller C,,,,Default,MainActor,#FFCC00,,VO/voice_memCommon,
|
||||||
|
|
||||||
|
|||||||
|
@@ -129,6 +129,7 @@ position: -116,-2585
|
|||||||
<<jump 走廊>>
|
<<jump 走廊>>
|
||||||
->观察 #line:0c9209f
|
->观察 #line:0c9209f
|
||||||
<<detour 教室_Insp>>
|
<<detour 教室_Insp>>
|
||||||
|
<<jump 教室>>
|
||||||
->趴回去再睡会 #line:0028a19
|
->趴回去再睡会 #line:0028a19
|
||||||
<<detour 趴回去再睡会>>
|
<<detour 趴回去再睡会>>
|
||||||
<<jump 教室>>
|
<<jump 教室>>
|
||||||
|
|||||||
@@ -6,7 +6,13 @@
|
|||||||
"excludeFiles": [
|
"excludeFiles": [
|
||||||
"**/*~/*"
|
"**/*~/*"
|
||||||
],
|
],
|
||||||
"localisation": {},
|
"localisation": {
|
||||||
|
"en": {},
|
||||||
|
"ja-JP": {},
|
||||||
|
"ru": {},
|
||||||
|
"es": {},
|
||||||
|
"pt-BR": {}
|
||||||
|
},
|
||||||
"baseLanguage": "zh-Hans",
|
"baseLanguage": "zh-Hans",
|
||||||
"compilerOptions": {}
|
"compilerOptions": {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ PlayerSettings:
|
|||||||
vulkanEnableLateAcquireNextImage: 0
|
vulkanEnableLateAcquireNextImage: 0
|
||||||
vulkanEnableCommandBufferRecycling: 1
|
vulkanEnableCommandBufferRecycling: 1
|
||||||
loadStoreDebugModeEnabled: 0
|
loadStoreDebugModeEnabled: 0
|
||||||
bundleVersion: 0.6.1.15-20260730-005754
|
bundleVersion: 0.6.1.16-20260731-152037
|
||||||
preloadedAssets:
|
preloadedAssets:
|
||||||
- {fileID: 11400000, guid: 0fb2bc2476953fc43a74f0ab8879077c, type: 2}
|
- {fileID: 11400000, guid: 0fb2bc2476953fc43a74f0ab8879077c, type: 2}
|
||||||
metroInputSource: 0
|
metroInputSource: 0
|
||||||
|
|||||||
Reference in New Issue
Block a user