Fantasy项目配置表文件
1、先找到这个源码
2、打开他
3、复制一份其他写好的代码,也可以使用这个message,这是我写好的,后面都可以用重复利用
PS:这个自定义脚本主要是为了生成xlsx表中Name的枚举去代替ID检索**
using System.Collections.Concurrent;
using System.Text;
using Exporter.Excel;
using Fantasy.Exporter;
using System.Collections.Generic;
namespace Exporter;
/// <summary>
/// 将场景类型配置表转换为枚举和字典的自定义导出类。
/// </summary>
public class MessageBoxConfigToEnum : ACustomExport
{
public override void Run()
{
if (!Worksheets.TryGetValue("MessageBoxConfig", out var MessageBoxconfig))
{
Log.Info("not found MessageBoxconfig");
return;
}
var dic = new Dictionary<string, string>();
for (int i = 7;i<=MessageBoxconfig.Dimension.Rows; i++)
{
if (MessageBoxconfig.GetCellValue(i,1).StartsWith("#"))
{
continue;
}
var messageboxid = MessageBoxconfig.GetCellValue(i,3);
var messageboxname = MessageBoxconfig.GetCellValue(i, 4);
dic.Add(messageboxid,messageboxname);
}
var sb = new StringBuilder();
sb.AppendLine("namespace Fantasy\n{");
sb.AppendLine("//生成器自动生成,请不要手动编辑,修改请在MessageBoxconfig.xlsx修改");
sb.AppendLine("\t public static class MessageBoxName\n\t{");
foreach (var (messageBoxid,messageboxname) in dic)
{
sb.AppendLine($"\t\t public const uint {messageboxname}={messageBoxid};");
}
sb.AppendLine("\t}\n}");
Write("MessageBoxName.cs", sb.ToString(), CustomExportType.Client);
}
}
4、找到Excle文件夹,将这个源码放到如下文件夹即可,放client或server都可以,主要是你的配表决定了是不是双端使用
5、配置你的excel表格
6、正常点击Exporter.exe,生成对应代码
7、这样对应服务端或客户端就可以愉快的使用当前excl中配置的数据了
以下是一个示例
if (!MessageBoxConfigData.Instance.TryGet(MessageBoxID, out MessageBoxConfig mesage))
{
// MessageBoxID 就是你想要检索的xlsx中的对应的数据行 ,自定义脚本就是为了可以直接清晰可见当前的检索是什么数据
Log.Warning($"MessageBoxConfigData 找不到{MessageBoxID}");
return;
}
var task = FTask.Create();
switch (mesage.style)
{
case 0:
var uimain = scene.GetComponent<UIComponent>();
uimain.RemoveComponent<MessageUIBox>();
var message = uimain.AddComponent<MessageUIBox>();
message.Text.text = mesage.Text; //excle表中对应的Text属性字段被取出了
var trscal = message.GameObject.GetComponent<RectTransform>();
trscal.localScale = Vector3.zero;
trscal.DOScale(1f, 0.3f);
message.CloseButton.onClick.RemoveAllListeners();
message.CloseButton.onClick.AddListener(() =>
{
trscal.DOScale(0f, 0.3f).OnComplete(() =>
{
task.SetResult();
message.Dispose();
});
});
break;
case 1:
break;
default:
break;
}
await task;
return;
说明:
①工具源码去添加自定义脚本,是为了能再对应的客户端或者服务端中去直接使用MessageBoxName.ConnectAuthenticationFail,是代码清晰明白
②工具生成的自定义代码所在文件夹
Generate/CustomExport/MessageBoxName //这里是你自定义工具脚本生成的代码
③工具生成的xlsx数据代码所在文件夹
Modle/Generate/ConfigTable/Entity/MessageBoxConfig //这里是工具本身生成的代码
ps:工具生成了xlsx数据代码就可以正常的去使用了,自定义xlsx代码看自身需要,主要是为了获得对应的变量可以方便 ” . “ 出来