Merge pull request #25 from ALEXTANGXIAO/TEngine_v_3.0.0

TEngine v 3.0.0
This commit is contained in:
ALEXTANG
2023-04-19 17:58:19 +08:00
committed by GitHub
55 changed files with 4096 additions and 27 deletions

View File

@@ -18,6 +18,5 @@ namespace GameBase
return _instance;
}
}
}
}

View File

@@ -1,4 +1,6 @@
using UnityEngine.UI;
using System;
using Cysharp.Threading.Tasks;
using UnityEngine.UI;
using TEngine;
namespace GameLogic
@@ -13,14 +15,15 @@ namespace GameLogic
{
m_textError = FindChildComponent<Text>("m_textError");
m_btnClose = FindChildComponent<Button>("m_btnClose");
m_btnClose.onClick.AddListener(OnClickCloseBtn);
m_btnClose.onClick.AddListener(UniTask.UnityAction(OnClickCloseBtn));
}
#endregion
#region
private void OnClickCloseBtn()
private async UniTaskVoid OnClickCloseBtn()
{
await UniTask.Delay(TimeSpan.FromSeconds(0.5f));
Close();
}
#endregion
@@ -29,5 +32,6 @@ namespace GameLogic
{
m_textError.text = UserData.ToString();
}
}
}

View File

@@ -52,7 +52,7 @@ public partial class GameApp:Singleton<GameApp>
private void Start()
{
GameTime.StartFrame();
var listLogic = m_listLogicMgr;
var listLogic = _listLogicMgr;
var logicCnt = listLogic.Count;
for (int i = 0; i < logicCnt; i++)
{
@@ -65,7 +65,7 @@ public partial class GameApp:Singleton<GameApp>
{
GameTime.StartFrame();
TProfiler.BeginFirstSample("Update");
var listLogic = m_listLogicMgr;
var listLogic = _listLogicMgr;
var logicCnt = listLogic.Count;
for (int i = 0; i < logicCnt; i++)
{
@@ -81,7 +81,7 @@ public partial class GameApp:Singleton<GameApp>
{
GameTime.StartFrame();
TProfiler.BeginFirstSample("FixedUpdate");
var listLogic = m_listLogicMgr;
var listLogic = _listLogicMgr;
var logicCnt = listLogic.Count;
for (int i = 0; i < logicCnt; i++)
{
@@ -97,7 +97,7 @@ public partial class GameApp:Singleton<GameApp>
{
GameTime.StartFrame();
TProfiler.BeginFirstSample("LateUpdate");
var listLogic = m_listLogicMgr;
var listLogic = _listLogicMgr;
var logicCnt = listLogic.Count;
for (int i = 0; i < logicCnt; i++)
{
@@ -112,7 +112,7 @@ public partial class GameApp:Singleton<GameApp>
private void OnDestroy()
{
GameTime.StartFrame();
var listLogic = m_listLogicMgr;
var listLogic = _listLogicMgr;
var logicCnt = listLogic.Count;
for (int i = 0; i < logicCnt; i++)
{
@@ -125,7 +125,7 @@ public partial class GameApp:Singleton<GameApp>
{
#if UNITY_EDITOR
GameTime.StartFrame();
var listLogic = m_listLogicMgr;
var listLogic = _listLogicMgr;
var logicCnt = listLogic.Count;
for (int i = 0; i < logicCnt; i++)
{
@@ -137,7 +137,7 @@ public partial class GameApp:Singleton<GameApp>
private void OnApplicationPause(bool isPause)
{
var listLogic = m_listLogicMgr;
var listLogic = _listLogicMgr;
var logicCnt = listLogic.Count;
for (int i = 0; i < logicCnt; i++)
{

View File

@@ -3,11 +3,11 @@ using TEngine;
public partial class GameApp
{
private List<ILogicSys> m_listLogicMgr;
private List<ILogicSys> _listLogicMgr;
private void Init()
{
m_listLogicMgr = new List<ILogicSys>();
_listLogicMgr = new List<ILogicSys>();
RegisterAllSystem();
InitSystemSetting();
}
@@ -35,7 +35,7 @@ public partial class GameApp
/// <returns></returns>
protected bool AddLogicSys(ILogicSys logicSys)
{
if (m_listLogicMgr.Contains(logicSys))
if (_listLogicMgr.Contains(logicSys))
{
Log.Fatal("Repeat add logic system: {0}", logicSys.GetType().Name);
return false;
@@ -47,7 +47,7 @@ public partial class GameApp
return false;
}
m_listLogicMgr.Add(logicSys);
_listLogicMgr.Add(logicSys);
return true;
}

View File

@@ -1,6 +1,4 @@
using System;
using TEngine;
using TEngine.Localization;
using TEngine;
using YooAsset;
using ProcedureOwner = TEngine.IFsm<TEngine.IProcedureManager>;

View File

@@ -420,6 +420,51 @@ Camera:
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!1 &291980957
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 291980958}
- component: {fileID: 291980959}
m_Layer: 0
m_Name: Localization
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &291980958
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 291980957}
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: 2061060682}
m_RootOrder: 9
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &291980959
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 291980957}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1a3ccdd8df93488782ad0f5f240bece9, type: 3}
m_Name:
m_EditorClassIdentifier:
m_LocalizationHelperTypeName: TEngine.DefaultLocalizationHelper
m_CustomLocalizationHelper: {fileID: 0}
--- !u!1 &828420965
GameObject:
m_ObjectHideFlags: 0
@@ -1011,6 +1056,7 @@ Transform:
- {fileID: 1538699881}
- {fileID: 1176880018}
- {fileID: 1947304785}
- {fileID: 291980958}
- {fileID: 2108959336}
m_Father: {fileID: 1729961660}
m_RootOrder: 0
@@ -1066,7 +1112,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 2061060682}
m_RootOrder: 9
m_RootOrder: 10
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &2108959337
MonoBehaviour:

View File

@@ -0,0 +1,56 @@
using UnityEditor;
namespace TEngine.Editor.Inspector
{
[CustomEditor(typeof(LocalizationModule))]
internal sealed class LocalizationModuleInspector : GameFrameworkInspector
{
private HelperInfo<LocalizationHelperBase> m_LocalizationHelperInfo = new HelperInfo<LocalizationHelperBase>("Localization");
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
serializedObject.Update();
LocalizationModule t = (LocalizationModule)target;
EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode);
{
m_LocalizationHelperInfo.Draw();
}
EditorGUI.EndDisabledGroup();
if (EditorApplication.isPlaying && IsPrefabInHierarchy(t.gameObject))
{
EditorGUILayout.LabelField("Language", t.Language.ToString());
EditorGUILayout.LabelField("System Language", t.SystemLanguage.ToString());
EditorGUILayout.LabelField("Dictionary Count", t.DictionaryCount.ToString());
}
serializedObject.ApplyModifiedProperties();
Repaint();
}
protected override void OnCompileComplete()
{
base.OnCompileComplete();
RefreshTypeNames();
}
private void OnEnable()
{
m_LocalizationHelperInfo.Init(serializedObject);
RefreshTypeNames();
}
private void RefreshTypeNames()
{
m_LocalizationHelperInfo.Refresh();
serializedObject.ApplyModifiedProperties();
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 1886d664f9344745b7bca0786434076d
timeCreated: 1681895173

View File

@@ -45,6 +45,8 @@ namespace TEngine.Editor
EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode);
{
EditorGUILayout.PropertyField(m_EditorLanguage);
EditorGUILayout.BeginVertical("box");
{
EditorGUILayout.LabelField("Global Helpers", EditorStyles.boldLabel);

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: a2e8f0a34b8444829a115ceca00610ee
timeCreated: 1681895814

View File

@@ -0,0 +1,14 @@
using UnityEngine;
namespace TEngine
{
[CreateAssetMenu]
public class BuglyConfig : ScriptableObject
{
public string channelId;
public string androidId;
public string androidKey;
public string iosId;
public string iosKey;
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: acf9017ac21e41dc97f7c328c0d6017f
timeCreated: 1681895834

View File

@@ -0,0 +1,90 @@
using UnityEngine;
namespace TEngine
{
public class BuglyManager
{
private static BuglyManager _buglyManager;
public static BuglyManager Instance => _buglyManager ??= new BuglyManager();
public void Init(BuglyConfig config,string version = "")
{
if (config!= null)
{
ConfigDefault(config.channelId, string.IsNullOrEmpty(version) ? Version.GameVersion : version);
BuglyAgent.ConfigDebugMode (false);
#if UNITY_IPHONE || UNITY_IOS
BuglyAgent.InitWithAppId (config.iosId);
#elif UNITY_ANDROID
BuglyAgent.InitWithAppId (config.androidId);
#endif
BuglyAgent.EnableExceptionHandler();
Debug.Log($"Init Bugly Successes");
}
else
{
Debug.LogError("Init Bugly Fatal buglyConfig.asset is null!");
}
}
/// <summary>
/// 启动C#异常捕获上报默认自动上报级别为LogError,那么LogError、LogException的异常日志都会自动捕获上报。
/// </summary>
public void EnableExceptionHandle()
{
BuglyAgent.EnableExceptionHandler();
}
/// <summary>
/// 设置自动上报日志信息的级别默认LogError则>=LogError的日志都会自动捕获上报。
/// </summary>
/// <param name="logLevel"></param> 日志级别
public void SetReportLogLevel(LogSeverity logLevel)
{
BuglyAgent.ConfigAutoReportLogLevel(logLevel);
}
/// <summary>
/// 设置上报的用户唯一标识,项目组可在收到服务器登录回调后调用。
/// </summary>
/// <param name="userId">用户唯一标识。</param>
public void SetUserId(string userId)
{
BuglyAgent.SetUserId(userId);
}
/// <summary>
/// 上报已捕获C#异常
/// </summary>
/// <param name="e">异常。</param>
/// <param name="description">描述。</param>
public void ReportException(System.Exception e, string description)
{
BuglyAgent.ReportException(e, description);
}
/// <summary>
/// 上报自定义错误信息
/// </summary>
/// <param name="name"></param>错误名称
/// <param name="reason"></param>错误原因
/// <param name="traceback"></param>错误堆栈
public void ReportError(string name, string reason, string traceback)
{
BuglyAgent.ReportException(name, reason, traceback);
}
/// <summary>
/// 修改默认配置
/// </summary>
/// <param name="channel"></param>渠道号
/// <param name="version"></param>版本号
/// <param name="userID"></param>用户唯一标识
/// <param name="time"></param>初始化延时
public void ConfigDefault(string channel, string version, string userID = "Unknow", long time = 0)
{
BuglyAgent.ConfigDefault(channel = null, version, userID = "Unknow", time = 0);
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 94102b3b00fd4c9293073236adec064c
timeCreated: 1681895834

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3f513275928c09f42ad6c2cbdd56cbec
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,19 @@
%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: acf9017ac21e41dc97f7c328c0d6017f, type: 3}
m_Name: BuglyConfig
m_EditorClassIdentifier:
channelId: TEngine
androidId: 100001
androidKey: TEngine
iosId: 100001
iosKey: TEngine

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 574540cb1bee6a247aa8a2539b87b0fb
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,197 @@
using System;
using System.IO;
using System.Text;
using UnityEngine;
namespace TEngine
{
/// <summary>
/// 默认本地化辅助器。
/// </summary>
public class DefaultLocalizationHelper : LocalizationHelperBase
{
private static readonly string[] ColumnSplitSeparator = new string[] { "\t" };
private const int ColumnCount = 4;
private ResourceModule m_ResourceModule = null;
/// <summary>
/// 获取系统语言。
/// </summary>
public override Language SystemLanguage
{
get
{
switch (Application.systemLanguage)
{
case UnityEngine.SystemLanguage.Afrikaans: return Language.Afrikaans;
case UnityEngine.SystemLanguage.Arabic: return Language.Arabic;
case UnityEngine.SystemLanguage.Basque: return Language.Basque;
case UnityEngine.SystemLanguage.Belarusian: return Language.Belarusian;
case UnityEngine.SystemLanguage.Bulgarian: return Language.Bulgarian;
case UnityEngine.SystemLanguage.Catalan: return Language.Catalan;
case UnityEngine.SystemLanguage.Chinese: return Language.ChineseSimplified;
case UnityEngine.SystemLanguage.ChineseSimplified: return Language.ChineseSimplified;
case UnityEngine.SystemLanguage.ChineseTraditional: return Language.ChineseTraditional;
case UnityEngine.SystemLanguage.Czech: return Language.Czech;
case UnityEngine.SystemLanguage.Danish: return Language.Danish;
case UnityEngine.SystemLanguage.Dutch: return Language.Dutch;
case UnityEngine.SystemLanguage.English: return Language.English;
case UnityEngine.SystemLanguage.Estonian: return Language.Estonian;
case UnityEngine.SystemLanguage.Faroese: return Language.Faroese;
case UnityEngine.SystemLanguage.Finnish: return Language.Finnish;
case UnityEngine.SystemLanguage.French: return Language.French;
case UnityEngine.SystemLanguage.German: return Language.German;
case UnityEngine.SystemLanguage.Greek: return Language.Greek;
case UnityEngine.SystemLanguage.Hebrew: return Language.Hebrew;
case UnityEngine.SystemLanguage.Hungarian: return Language.Hungarian;
case UnityEngine.SystemLanguage.Icelandic: return Language.Icelandic;
case UnityEngine.SystemLanguage.Indonesian: return Language.Indonesian;
case UnityEngine.SystemLanguage.Italian: return Language.Italian;
case UnityEngine.SystemLanguage.Japanese: return Language.Japanese;
case UnityEngine.SystemLanguage.Korean: return Language.Korean;
case UnityEngine.SystemLanguage.Latvian: return Language.Latvian;
case UnityEngine.SystemLanguage.Lithuanian: return Language.Lithuanian;
case UnityEngine.SystemLanguage.Norwegian: return Language.Norwegian;
case UnityEngine.SystemLanguage.Polish: return Language.Polish;
case UnityEngine.SystemLanguage.Portuguese: return Language.PortuguesePortugal;
case UnityEngine.SystemLanguage.Romanian: return Language.Romanian;
case UnityEngine.SystemLanguage.Russian: return Language.Russian;
case UnityEngine.SystemLanguage.SerboCroatian: return Language.SerboCroatian;
case UnityEngine.SystemLanguage.Slovak: return Language.Slovak;
case UnityEngine.SystemLanguage.Slovenian: return Language.Slovenian;
case UnityEngine.SystemLanguage.Spanish: return Language.Spanish;
case UnityEngine.SystemLanguage.Swedish: return Language.Swedish;
case UnityEngine.SystemLanguage.Thai: return Language.Thai;
case UnityEngine.SystemLanguage.Turkish: return Language.Turkish;
case UnityEngine.SystemLanguage.Ukrainian: return Language.Ukrainian;
case UnityEngine.SystemLanguage.Unknown: return Language.Unspecified;
case UnityEngine.SystemLanguage.Vietnamese: return Language.Vietnamese;
default: return Language.Unspecified;
}
}
}
/// <summary>
/// 读取字典。
/// </summary>
/// <param name="localizationManager">本地化管理器。</param>
/// <param name="dictionaryAssetName">字典资源名称。</param>
/// <param name="dictionaryAsset">字典资源。</param>
/// <param name="userData">用户自定义数据。</param>
/// <returns>是否读取字典成功。</returns>
public override bool ReadData(ILocalizationManager localizationManager, string dictionaryAssetName, object dictionaryAsset, object userData)
{
TextAsset dictionaryTextAsset = dictionaryAsset as TextAsset;
if (dictionaryTextAsset != null)
{
return true;
}
Log.Warning("Dictionary asset '{0}' is invalid.", dictionaryAssetName);
return false;
}
/// <summary>
/// 解析字典。
/// </summary>
/// <param name="localizationManager">本地化管理器。</param>
/// <param name="dictionaryString">要解析的字典字符串。</param>
/// <param name="userData">用户自定义数据。</param>
/// <returns>是否解析字典成功。</returns>
public override bool ParseData(ILocalizationManager localizationManager, string dictionaryString, object userData)
{
try
{
int position = 0;
while (dictionaryString.ReadLine(ref position) is { } dictionaryLineString)
{
if (dictionaryLineString[0] == '#')
{
continue;
}
string[] splitLine = dictionaryLineString.Split(ColumnSplitSeparator, StringSplitOptions.None);
if (splitLine.Length != ColumnCount)
{
Log.Warning("Can not parse dictionary line string '{0}' which column count is invalid.", dictionaryLineString);
return false;
}
string dictionaryKey = splitLine[1];
string dictionaryValue = splitLine[3];
if (!localizationManager.AddRawString(dictionaryKey, dictionaryValue))
{
Log.Warning("Can not add raw string with dictionary key '{0}' which may be invalid or duplicate.", dictionaryKey);
return false;
}
}
return true;
}
catch (Exception exception)
{
Log.Warning("Can not parse dictionary string with exception '{0}'.", exception);
return false;
}
}
/// <summary>
/// 解析字典。
/// </summary>
/// <param name="localizationManager">本地化管理器。</param>
/// <param name="dictionaryBytes">要解析的字典二进制流。</param>
/// <param name="startIndex">字典二进制流的起始位置。</param>
/// <param name="length">字典二进制流的长度。</param>
/// <param name="userData">用户自定义数据。</param>
/// <returns>是否解析字典成功。</returns>
public override bool ParseData(ILocalizationManager localizationManager, byte[] dictionaryBytes, int startIndex, int length, object userData)
{
try
{
using (MemoryStream memoryStream = new MemoryStream(dictionaryBytes, startIndex, length, false))
{
using (BinaryReader binaryReader = new BinaryReader(memoryStream, Encoding.UTF8))
{
while (binaryReader.BaseStream.Position < binaryReader.BaseStream.Length)
{
string dictionaryKey = binaryReader.ReadString();
string dictionaryValue = binaryReader.ReadString();
if (!localizationManager.AddRawString(dictionaryKey, dictionaryValue))
{
Log.Warning("Can not add raw string with dictionary key '{0}' which may be invalid or duplicate.", dictionaryKey);
return false;
}
}
}
}
return true;
}
catch (Exception exception)
{
Log.Warning("Can not parse dictionary bytes with exception '{0}'.", exception);
return false;
}
}
/// <summary>
/// 释放字典资源。
/// </summary>
/// <param name="localizationManager">本地化管理器。</param>
/// <param name="dictionaryAsset">要释放的字典资源。</param>
public override void ReleaseDataAsset(ILocalizationManager localizationManager, object dictionaryAsset)
{
}
private void Start()
{
m_ResourceModule = GameEntry.GetModule<ResourceModule>();
if (m_ResourceModule == null)
{
Log.Fatal("Resource component is invalid.");
}
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: b69c074d153b41c99c25df7314599299
timeCreated: 1681894549

View File

@@ -0,0 +1,16 @@
namespace TEngine
{
/// <summary>
/// 本地化辅助器接口。
/// </summary>
public interface ILocalizationHelper
{
/// <summary>
/// 获取系统语言。
/// </summary>
Language SystemLanguage
{
get;
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: df6453894ad04aa4a525dc3d44506780
timeCreated: 1681892003

View File

@@ -0,0 +1,477 @@
namespace TEngine
{
/// <summary>
/// 本地化管理器接口。
/// </summary>
public interface ILocalizationManager
{
/// <summary>
/// 获取或设置本地化语言。
/// </summary>
Language Language
{
get;
set;
}
/// <summary>
/// 获取系统语言。
/// </summary>
Language SystemLanguage
{
get;
}
/// <summary>
/// 获取字典数量。
/// </summary>
int DictionaryCount
{
get;
}
/// <summary>
/// 设置资源管理器。
/// </summary>
/// <param name="resourceManager">资源管理器。</param>
void SetResourceManager(IResourceManager resourceManager);
/// <summary>
/// 设置本地化辅助器。
/// </summary>
/// <param name="localizationHelper">本地化辅助器。</param>
void SetLocalizationHelper(ILocalizationHelper localizationHelper);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString(string key);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T">字典参数的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg">字典参数。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T>(string key, T arg);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2>(string key, T1 arg1, T2 arg2);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3>(string key, T1 arg1, T2 arg2, T3 arg3);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <typeparam name="T15">字典参数 15 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <param name="arg15">字典参数 15。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15);
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <typeparam name="T15">字典参数 15 的类型。</typeparam>
/// <typeparam name="T16">字典参数 16 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <param name="arg15">字典参数 15。</param>
/// <param name="arg16">字典参数 16。</param>
/// <returns>要获取的字典内容字符串。</returns>
string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15, T16 arg16);
/// <summary>
/// 是否存在字典。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>是否存在字典。</returns>
bool HasRawString(string key);
/// <summary>
/// 根据字典主键获取字典值。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>字典值。</returns>
string GetRawString(string key);
/// <summary>
/// 根据字典值取主键。
/// </summary>
/// <param name="value">字典值</param>
/// <returns></returns>
string GetKey(string value);
/// <summary>
/// 增加字典。
/// </summary>
/// <param name="key">字典主键。</param>
/// <param name="value">字典内容。</param>
/// <returns>是否增加字典成功。</returns>
bool AddRawString(string key, string value);
/// <summary>
/// 移除字典。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>是否移除字典成功。</returns>
bool RemoveRawString(string key);
/// <summary>
/// 清空所有字典。
/// </summary>
void RemoveAllRawStrings();
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 632a6e2e7fd74b3bb4db2293092df904
timeCreated: 1681892003

View File

@@ -1,4 +1,4 @@
namespace TEngine.Localization
namespace TEngine
{
/// <summary>
/// 本地化语言。

View File

@@ -0,0 +1,52 @@
using UnityEngine;
namespace TEngine
{
/// <summary>
/// 本地化辅助器基类。
/// </summary>
public abstract class LocalizationHelperBase : MonoBehaviour, ILocalizationHelper
{
/// <summary>
/// 获取系统语言。
/// </summary>
public abstract Language SystemLanguage { get; }
/// <summary>
/// 读取字典。
/// </summary>
/// <param name="localizationManager">本地化管理器。</param>
/// <param name="dictionaryAssetName">字典资源名称。</param>
/// <param name="dictionaryAsset">字典资源。</param>
/// <param name="userData">用户自定义数据。</param>
/// <returns>是否读取字典成功。</returns>
public abstract bool ReadData(ILocalizationManager localizationManager, string dictionaryAssetName, object dictionaryAsset, object userData);
/// <summary>
/// 解析字典。
/// </summary>
/// <param name="localizationManager">本地化管理器。</param>
/// <param name="dictionaryString">要解析的字典字符串。</param>
/// <param name="userData">用户自定义数据。</param>
/// <returns>是否解析字典成功。</returns>
public abstract bool ParseData(ILocalizationManager localizationManager, string dictionaryString, object userData);
/// <summary>
/// 解析字典。
/// </summary>
/// <param name="localizationManager">本地化管理器。</param>
/// <param name="dictionaryBytes">要解析的字典二进制流。</param>
/// <param name="startIndex">字典二进制流的起始位置。</param>
/// <param name="length">字典二进制流的长度。</param>
/// <param name="userData">用户自定义数据。</param>
/// <returns>是否解析字典成功。</returns>
public abstract bool ParseData(ILocalizationManager localizationManager, byte[] dictionaryBytes, int startIndex, int length, object userData);
/// <summary>
/// 释放字典资源。
/// </summary>
/// <param name="localizationManager">本地化管理器。</param>
/// <param name="dictionaryAsset">要释放的字典资源。</param>
public abstract void ReleaseDataAsset(ILocalizationManager localizationManager, object dictionaryAsset);
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 5421e747a0504b168542c877c61c24b8
timeCreated: 1681894135

View File

@@ -0,0 +1,875 @@
using System;
using System.Collections.Generic;
namespace TEngine
{
/// <summary>
/// 本地化管理器。
/// </summary>
internal sealed partial class LocalizationManager : GameFrameworkModule, ILocalizationManager
{
private readonly Dictionary<string, string> m_Dictionary;
private IResourceManager m_ResourceManager;
private ILocalizationHelper m_LocalizationHelper;
private Language m_Language;
/// <summary>
/// 初始化本地化管理器的新实例。
/// </summary>
public LocalizationManager()
{
m_Dictionary = new Dictionary<string, string>(StringComparer.Ordinal);
m_LocalizationHelper = null;
m_Language = Language.Unspecified;
}
/// <summary>
/// 获取或设置本地化语言。
/// </summary>
public Language Language
{
get
{
return m_Language;
}
set
{
if (value == Language.Unspecified)
{
throw new GameFrameworkException("Language is invalid.");
}
m_Language = value;
}
}
/// <summary>
/// 获取系统语言。
/// </summary>
public Language SystemLanguage
{
get
{
if (m_LocalizationHelper == null)
{
throw new GameFrameworkException("You must set localization helper first.");
}
return m_LocalizationHelper.SystemLanguage;
}
}
/// <summary>
/// 获取字典数量。
/// </summary>
public int DictionaryCount
{
get
{
return m_Dictionary.Count;
}
}
/// <summary>
/// 本地化管理器轮询。
/// </summary>
/// <param name="elapseSeconds">逻辑流逝时间,以秒为单位。</param>
/// <param name="realElapseSeconds">真实流逝时间,以秒为单位。</param>
internal override void Update(float elapseSeconds, float realElapseSeconds)
{
}
/// <summary>
/// 关闭并清理本地化管理器。
/// </summary>
internal override void Shutdown()
{
}
/// <summary>
/// 设置资源管理器。
/// </summary>
/// <param name="resourceManager">资源管理器。</param>
public void SetResourceManager(IResourceManager resourceManager)
{
m_ResourceManager = resourceManager;
}
/// <summary>
/// 设置本地化辅助器。
/// </summary>
/// <param name="localizationHelper">本地化辅助器。</param>
public void SetLocalizationHelper(ILocalizationHelper localizationHelper)
{
if (localizationHelper == null)
{
throw new GameFrameworkException("Localization helper is invalid.");
}
m_LocalizationHelper = localizationHelper;
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString(string key)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
return value;
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T">字典参数的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg">字典参数。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T>(string key, T arg)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3}", key, value, arg, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2>(string key, T1 arg1, T2 arg2)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4}", key, value, arg1, arg2, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3>(string key, T1 arg1, T2 arg2, T3 arg3)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5}", key, value, arg1, arg2, arg3, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6}", key, value, arg1, arg2, arg3, arg4, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7}", key, value, arg1, arg2, arg3, arg4, arg5, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7},{8}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7},{8},{9}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
}
catch (Exception exception)
{
return Utility.Text.Format("<Error>{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15}", key, value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
}
catch (Exception exception)
{
string args = Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13}", arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
return Utility.Text.Format("<Error>{0},{1},{2},{3}", key, value, args, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <typeparam name="T15">字典参数 15 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <param name="arg15">字典参数 15。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
}
catch (Exception exception)
{
string args = Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14}", arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
return Utility.Text.Format("<Error>{0},{1},{2},{3}", key, value, args, exception);
}
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <typeparam name="T15">字典参数 15 的类型。</typeparam>
/// <typeparam name="T16">字典参数 16 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <param name="arg15">字典参数 15。</param>
/// <param name="arg16">字典参数 16。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15, T16 arg16)
{
string value = GetRawString(key);
if (value == null)
{
return Utility.Text.Format("<NoKey>{0}", key);
}
try
{
return Utility.Text.Format(value, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16);
}
catch (Exception exception)
{
string args = Utility.Text.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15}", arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16);
return Utility.Text.Format("<Error>{0},{1},{2},{3}", key, value, args, exception);
}
}
/// <summary>
/// 根据字典值取主键。
/// </summary>
/// <param name="value">字典值</param>
/// <returns></returns>
public string GetKey(string value)
{
if (string.IsNullOrEmpty(value))
{
return string.Empty;
}
foreach (var item in m_Dictionary)
{
if (item.Value == value)
{
return item.Key;
}
}
return string.Empty;
}
/// <summary>
/// 是否存在字典。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>是否存在字典。</returns>
public bool HasRawString(string key)
{
if (string.IsNullOrEmpty(key))
{
throw new GameFrameworkException("Key is invalid.");
}
return m_Dictionary.ContainsKey(key);
}
/// <summary>
/// 根据字典主键获取字典值。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>字典值。</returns>
public string GetRawString(string key)
{
if (string.IsNullOrEmpty(key))
{
throw new GameFrameworkException("Key is invalid.");
}
string value = null;
if (m_Dictionary.TryGetValue(key, out value))
{
return value;
}
return null;
}
/// <summary>
/// 增加字典。
/// </summary>
/// <param name="key">字典主键。</param>
/// <param name="value">字典内容。</param>
/// <returns>是否增加字典成功。</returns>
public bool AddRawString(string key, string value)
{
if (string.IsNullOrEmpty(key))
{
throw new GameFrameworkException("Key is invalid.");
}
if (m_Dictionary.ContainsKey(key))
{
return false;
}
m_Dictionary.Add(key, value ?? string.Empty);
return true;
}
/// <summary>
/// 移除字典。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>是否移除字典成功。</returns>
public bool RemoveRawString(string key)
{
if (string.IsNullOrEmpty(key))
{
throw new GameFrameworkException("Key is invalid.");
}
return m_Dictionary.Remove(key);
}
/// <summary>
/// 清空所有字典。
/// </summary>
public void RemoveAllRawStrings()
{
m_Dictionary.Clear();
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 777d2d6055cc4068b2256ffa91dbefe1
timeCreated: 1681892090

View File

@@ -0,0 +1,598 @@
using UnityEngine;
using YooAsset;
namespace TEngine
{
/// <summary>
/// 本地化组件。
/// </summary>
[DisallowMultipleComponent]
public sealed class LocalizationModule : GameFrameworkModuleBase
{
private const int DefaultPriority = 0;
private ILocalizationManager m_LocalizationManager = null;
[SerializeField]
private string m_LocalizationHelperTypeName = "TEngine.DefaultLocalizationHelper";
[SerializeField]
private LocalizationHelperBase m_CustomLocalizationHelper = null;
/// <summary>
/// 获取或设置本地化语言。
/// </summary>
public Language Language
{
get
{
return m_LocalizationManager.Language;
}
set
{
m_LocalizationManager.Language = value;
}
}
/// <summary>
/// 获取系统语言。
/// </summary>
public Language SystemLanguage
{
get
{
return m_LocalizationManager.SystemLanguage;
}
}
/// <summary>
/// 获取字典数量。
/// </summary>
public int DictionaryCount
{
get
{
return m_LocalizationManager.DictionaryCount;
}
}
/// <summary>
/// 游戏框架组件初始化。
/// </summary>
protected override void Awake()
{
base.Awake();
m_LocalizationManager = GameFrameworkEntry.GetModule<ILocalizationManager>();
if (m_LocalizationManager == null)
{
Log.Fatal("Localization manager is invalid.");
}
}
private void Start()
{
RootModule rootModule = GameEntry.GetModule<RootModule>();
if (rootModule == null)
{
Log.Fatal("Base component is invalid.");
return;
}
ResourceModule resourceModule = GameEntry.GetModule<ResourceModule>();
if (resourceModule == null)
{
Log.Fatal("Base component is invalid.");
return;
}
m_LocalizationManager.SetResourceManager(GameFrameworkEntry.GetModule<IResourceManager>());
LocalizationHelperBase localizationHelper = Helper.CreateHelper(m_LocalizationHelperTypeName, m_CustomLocalizationHelper);
if (localizationHelper == null)
{
Log.Error("Can not create localization helper.");
return;
}
localizationHelper.name = "Localization Helper";
Transform transform = localizationHelper.transform;
transform.SetParent(this.transform);
transform.localScale = Vector3.one;
m_LocalizationManager.SetLocalizationHelper(localizationHelper);
m_LocalizationManager.Language = resourceModule.playMode == EPlayMode.EditorSimulateMode && rootModule.EditorLanguage != Language.Unspecified
? rootModule.EditorLanguage : m_LocalizationManager.SystemLanguage;
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString(string key)
{
return m_LocalizationManager.GetString(key);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T">字典参数的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg">字典参数。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T>(string key, T arg)
{
return m_LocalizationManager.GetString(key, arg);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2>(string key, T1 arg1, T2 arg2)
{
return m_LocalizationManager.GetString(key, arg1, arg2);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3>(string key, T1 arg1, T2 arg2, T3 arg3)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <typeparam name="T15">字典参数 15 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <param name="arg15">字典参数 15。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
}
/// <summary>
/// 根据字典主键获取字典内容字符串。
/// </summary>
/// <typeparam name="T1">字典参数 1 的类型。</typeparam>
/// <typeparam name="T2">字典参数 2 的类型。</typeparam>
/// <typeparam name="T3">字典参数 3 的类型。</typeparam>
/// <typeparam name="T4">字典参数 4 的类型。</typeparam>
/// <typeparam name="T5">字典参数 5 的类型。</typeparam>
/// <typeparam name="T6">字典参数 6 的类型。</typeparam>
/// <typeparam name="T7">字典参数 7 的类型。</typeparam>
/// <typeparam name="T8">字典参数 8 的类型。</typeparam>
/// <typeparam name="T9">字典参数 9 的类型。</typeparam>
/// <typeparam name="T10">字典参数 10 的类型。</typeparam>
/// <typeparam name="T11">字典参数 11 的类型。</typeparam>
/// <typeparam name="T12">字典参数 12 的类型。</typeparam>
/// <typeparam name="T13">字典参数 13 的类型。</typeparam>
/// <typeparam name="T14">字典参数 14 的类型。</typeparam>
/// <typeparam name="T15">字典参数 15 的类型。</typeparam>
/// <typeparam name="T16">字典参数 16 的类型。</typeparam>
/// <param name="key">字典主键。</param>
/// <param name="arg1">字典参数 1。</param>
/// <param name="arg2">字典参数 2。</param>
/// <param name="arg3">字典参数 3。</param>
/// <param name="arg4">字典参数 4。</param>
/// <param name="arg5">字典参数 5。</param>
/// <param name="arg6">字典参数 6。</param>
/// <param name="arg7">字典参数 7。</param>
/// <param name="arg8">字典参数 8。</param>
/// <param name="arg9">字典参数 9。</param>
/// <param name="arg10">字典参数 10。</param>
/// <param name="arg11">字典参数 11。</param>
/// <param name="arg12">字典参数 12。</param>
/// <param name="arg13">字典参数 13。</param>
/// <param name="arg14">字典参数 14。</param>
/// <param name="arg15">字典参数 15。</param>
/// <param name="arg16">字典参数 16。</param>
/// <returns>要获取的字典内容字符串。</returns>
public string GetString<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>(string key, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, T10 arg10, T11 arg11, T12 arg12, T13 arg13, T14 arg14, T15 arg15, T16 arg16)
{
return m_LocalizationManager.GetString(key, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16);
}
/// <summary>
/// 是否存在字典。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>是否存在字典。</returns>
public bool HasRawString(string key)
{
return m_LocalizationManager.HasRawString(key);
}
/// <summary>
/// 根据字典主键获取字典值。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>字典值。</returns>
public string GetRawString(string key)
{
return m_LocalizationManager.GetRawString(key);
}
/// <summary>
/// 根据字典值取主键。
/// </summary>
/// <param name="value">字典值</param>
/// <returns></returns>
public string GetKey(string value)
{
return m_LocalizationManager.GetKey(value);
}
/// <summary>
/// 移除字典。
/// </summary>
/// <param name="key">字典主键。</param>
/// <returns>是否移除字典成功。</returns>
public bool RemoveRawString(string key)
{
return m_LocalizationManager.RemoveRawString(key);
}
/// <summary>
/// 清空所有字典。
/// </summary>
public void RemoveAllRawStrings()
{
m_LocalizationManager.RemoveAllRawStrings();
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 1a3ccdd8df93488782ad0f5f240bece9
timeCreated: 1681893590

View File

@@ -1,6 +1,5 @@
using System;
using UnityEngine;
using TEngine.Localization;
namespace TEngine
{
@@ -110,6 +109,8 @@ namespace TEngine
{
base.Awake();
BuglyManager.Instance.Init(Resources.Load<BuglyConfig>("BuglyConfig"));
GameTime.StartFrame();
InitTextHelper();

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e8eaf3c7fb019ec4393fe8d9fb91c484
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e270de18454c9d34bb5de575c0970bcf
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8958f050e22651e4eb88468e84e82067
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,5 @@
fileFormatVersion: 2
guid: 694411f45e4e64facb88eebfc2e1df1c
folderAsset: yes
DefaultImporter:
userData:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 644a9f5710e62403c94066ef9b61e775
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: dbe6ceb596d63f5418beb7a12d34993b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,80 @@
fileFormatVersion: 2
guid: 6f1342562738e5d4dae6ca9bd5a4d02e
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Android: 0
Exclude Editor: 1
Exclude Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
Exclude iOS: 1
- first:
Android: Android
second:
enabled: 1
settings:
CPU: ARM64
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
- first:
iPhone: iOS
second:
enabled: 0
settings:
AddToEmbeddedBinaries: false
CPU: AnyCPU
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: fb7b442d8e32443e5856838741007f70
folderAsset: yes
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,80 @@
fileFormatVersion: 2
guid: 432060a129574479db0cfd441cdf3d69
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Android: 0
Exclude Editor: 1
Exclude Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
Exclude iOS: 1
- first:
Android: Android
second:
enabled: 1
settings:
CPU: ARMv7
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
- first:
iPhone: iOS
second:
enabled: 0
settings:
AddToEmbeddedBinaries: false
CPU: AnyCPU
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,32 @@
fileFormatVersion: 2
guid: 74c10c94ce6f83b44998e0ad9de920bc
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,32 @@
fileFormatVersion: 2
guid: 1db231dca0f72420cb880590f799d7d5
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 79531ba82725e4071861c982307805c3
folderAsset: yes
timeCreated: 1443426231
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,80 @@
fileFormatVersion: 2
guid: 16eaf0ec67588418783d6f5311aa71ce
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Android: 0
Exclude Editor: 1
Exclude Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
Exclude iOS: 1
- first:
Android: Android
second:
enabled: 1
settings:
CPU: x86
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
- first:
iPhone: iOS
second:
enabled: 0
settings:
AddToEmbeddedBinaries: false
CPU: AnyCPU
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: be621fe31508b4f2ab134ee879ec97b4
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@@ -0,0 +1,27 @@
// ----------------------------------------
//
// BuglyCallbackDelegate.cs
//
// Author:
// Yeelik, <bugly@tencent.com>
//
// Copyright (c) 2015 Bugly, Tencent. All rights reserved.
//
// ----------------------------------------
//
using UnityEngine;
using System.Collections;
public abstract class BuglyCallback
{
// The delegate of callback handler which Call the Application.RegisterLogCallback(Application.LogCallback)
/// <summary>
/// Raises the application log callback handler event.
/// </summary>
/// <param name="condition">Condition.</param>
/// <param name="stackTrace">Stack trace.</param>
/// <param name="type">Type.</param>
public abstract void OnApplicationLogCallbackHandler (string condition, string stackTrace, LogType type);
}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 78e76f643d1884dcab602d5fe79b08e1
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@@ -0,0 +1,80 @@
// ----------------------------------------
//
// BuglyInit.cs
//
// Author:
// Yeelik, <bugly@tencent.com>
//
// Copyright (c) 2015 Bugly, Tencent. All rights reserved.
//
// ----------------------------------------
//
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class BuglyInit : MonoBehaviour
{
/// <summary>
/// Your Bugly App ID. Every app has a special identifier that allows Bugly to associate error monitoring data with your app.
/// Your App ID can be found on the "Setting" page of the app you are trying to monitor.
/// </summary>
/// <example>A real App ID looks like this: 90000xxxx</example>
private const string BuglyAppID = "YOUR APP ID GOES HERE";
void Awake ()
{
// Enable the debug log print
BuglyAgent.ConfigDebugMode (false);
// Config default channel, version, user
BuglyAgent.ConfigDefault (null, null, null, 0);
// Config auto report log level, default is LogSeverity.LogError, so the LogError, LogException log will auto report
BuglyAgent.ConfigAutoReportLogLevel (LogSeverity.LogError);
// Config auto quit the application make sure only the first one c# exception log will be report, please don't set TRUE if you do not known what are you doing.
BuglyAgent.ConfigAutoQuitApplication (false);
// If you need register Application.RegisterLogCallback(LogCallback), you can replace it with this method to make sure your function is ok.
BuglyAgent.RegisterLogCallback (null);
// Init the bugly sdk and enable the c# exception handler.
BuglyAgent.InitWithAppId (BuglyAppID);
// TODO Required. If you do not need call 'InitWithAppId(string)' to initialize the sdk(may be you has initialized the sdk it associated Android or iOS project),
// please call this method to enable c# exception handler only.
BuglyAgent.EnableExceptionHandler ();
// TODO NOT Required. If you need to report extra data with exception, you can set the extra handler
BuglyAgent.SetLogCallbackExtrasHandler (MyLogCallbackExtrasHandler);
Destroy (this);
}
// Extra data handler to packet data and report them with exception.
// Please do not do hard work in this handler
static Dictionary<string, string> MyLogCallbackExtrasHandler ()
{
// TODO Test log, please do not copy it
BuglyAgent.PrintLog (LogSeverity.Log, "extra handler");
// TODO Sample code, please do not copy it
Dictionary<string, string> extras = new Dictionary<string, string> ();
extras.Add ("ScreenSolution", string.Format ("{0}x{1}", Screen.width, Screen.height));
extras.Add ("deviceModel", SystemInfo.deviceModel);
extras.Add ("deviceName", SystemInfo.deviceName);
extras.Add ("deviceType", SystemInfo.deviceType.ToString ());
extras.Add ("deviceUId", SystemInfo.deviceUniqueIdentifier);
extras.Add ("gDId", string.Format ("{0}", SystemInfo.graphicsDeviceID));
extras.Add ("gDName", SystemInfo.graphicsDeviceName);
extras.Add ("gDVdr", SystemInfo.graphicsDeviceVendor);
extras.Add ("gDVer", SystemInfo.graphicsDeviceVersion);
extras.Add ("gDVdrID", string.Format ("{0}", SystemInfo.graphicsDeviceVendorID));
extras.Add ("graphicsMemorySize", string.Format ("{0}", SystemInfo.graphicsMemorySize));
extras.Add ("systemMemorySize", string.Format ("{0}", SystemInfo.systemMemorySize));
extras.Add ("UnityVersion", Application.unityVersion);
BuglyAgent.PrintLog (LogSeverity.LogInfo, "Package extra data");
return extras;
}
}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a717f6955eddf4463ad541714a1b5483
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData: