unityzgy/.svn/pristine/4b/4bd6ee17d2f431a0659459d369f8e0462e5dc13b.svn-base
ayuan9957 bf12e02276 feat: 多语言本地化系统 - 支持中/英/法/俄实时切换
- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg)
- LoginPanel: InputField placeholder本地化、字体颜色保持
- HistoryPanel: 用时数据本地化、placeholder本地化
- RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建)
- AppraiseWindowBase: 评价等级本地化、操作消息重建
- EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized
- StudentOperateRecorder: 新增InjectOperateMsgLocalized方法
- LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选
- 字体切换时保留颜色和verticalOverflow
2026-07-16 10:05:59 +08:00

62 lines
1.8 KiB
Plaintext

namespace VRTK.Examples.Tests
{
using UnityEngine;
using System.Collections;
public abstract class VRTK_BaseTest : MonoBehaviour
{
protected string currentTest;
protected string currentSetup;
protected abstract void Test();
protected virtual void OnEnable()
{
StartCoroutine(RunTests());
}
protected virtual void BeginTest(string name, int level = 1)
{
currentTest = name;
Debug.Log("<color=darkblue><b>" + "".PadLeft(level, '#') + " Starting Tests for " + name + "</b></color>");
}
protected virtual void SetUp(string message)
{
currentSetup = message;
Debug.Log("<color=blue><b>#### Preparing test for " + message + "</b></color>");
}
protected virtual void TearDown()
{
Debug.Log("==============================================================================");
}
protected virtual void Assert(string description, bool assertion, string failure, string success = "")
{
if (assertion)
{
Debug.Log("<color=teal><b>## [" + description + "] PASSED ##</b></color>");
}
else
{
Debug.Log("<color=maroon><b>## [" + description + "] FAILED INSIDE [" + currentTest + "." + currentSetup + "]##</b></color>");
}
if (!assertion)
{
Debug.LogException(new System.Exception(failure));
}
else if (success != "")
{
Debug.Log("<color=purple><i> ~~~~~> " + success + "</i></color>");
}
}
protected virtual IEnumerator RunTests()
{
yield return new WaitForEndOfFrame();
Test();
}
}
}