如图所示,我的物品描述使用文本解析获取。
但是,我在文本中想要换行的地方使用了\n,但是实际上他会显示“\n”而不是换行。。。
我使用:
m_Text.text += ItemInfo.description.Replace( @"\n", "\n"); 进行了替换也不行呢??大神,怎么破?
附上物品解析的代码,以及TextAssets Item List片段:
// class ItemManager
// Other Code Here.....
public bool LoadNativeItem()
{
try
{
if (m_items == null)
{
m_items = new Dictionary<int, ItemInfo>();
}
TextAsset txt = Resources.Load<TextAsset>("TextAssets/NativeItems");
if (txt == null)
throw new Exception("加载物品资源失败");
string[] lines = txt.text.Split('\n');
for (int i = 0; i < lines.Length; ++i)
{
ItemInfo item = ParserLine(lines[i].Trim(), i);
if (item != null)
{
if (m_items.ContainsKey(item.id))
throw new Exception("存在重复物品 行数:" + (i + 1).ToString());
else
m_items.Add(item.id, item);
}
}
}
catch (Exception e)
{
Debug.LogError("解析物品列表失败:" + e.Message);
}
return true;
}
private ItemInfo ParserLine(string line, int i)
{
// 空行或注释
if (line.Length <= 0 || line.StartsWith("##"))
return null;
string[] tokens = line.Split('|');
ItemInfo it = new ItemInfo();
int c = 0;
// 第0列 ID
if (!int.TryParse(tokens[c++].Trim(), out it.id))
throw new Exception("无效ID 行数:" + (i + 1).ToString());
// 第1列 等级
if (!int.TryParse(tokens[c++].Trim(), out it.level))
throw new Exception("无效物品等级 行数:" + (i + 1).ToString());
// 第2列 名称
it.name = tokens[c++].Trim();
if (it.name.Length <= 0)
throw new Exception("无效物品名称 行数:" + (i + 1).ToString());
// 第3列 描述
it.description = tokens[c++].Trim();
// 第4列 图标路径
it.icon = tokens[c++].Trim();
if (it.icon.Length <= 0)
throw new Exception("无效物品图标 行数:" + (i + 1).ToString());
// 第5列 种类
it.type = (ItemType)Enum.Parse(typeof(ItemType), tokens[c++].Trim(), true);
if (!Enum.IsDefined(typeof(ItemType), it.type))
throw new Exception("无效物品种类 行数:" + (i + 1).ToString());
// 第6列 品质
it.quality = (ItemQuality)Enum.Parse(typeof(ItemQuality), tokens[c++].Trim(), true);
if (!Enum.IsDefined(typeof(ItemQuality), it.quality))
throw new Exception("无效物品品质 行数:" + (i + 1).ToString());
// 第7列 售价
if (!float.TryParse(tokens[c++].Trim(), out it.price))
throw new Exception("无效物品售价 行数:" + (i + 1).ToString());
// 第8列 CD
if (!float.TryParse(tokens[c++].Trim(), out it.cd))
throw new Exception("无效CD时间 行数:" + (i + 1).ToString());
// 计算物品特效数量
int EffCount = 0;
// 忽略材料及卷轴的物品特效
if ((it.type != ItemType.Material) && (it.type != ItemType.Appraisal))
{
EffCount = Mathf.Max(0, tokens.Length - c);
if (EffCount < 3 || EffCount % 3 != 0)
throw new Exception("缺少消耗品特效描述 行数:" + (i + 1).ToString());
EffCount /= 3;
}
if (EffCount > 0)
{
it.effects = new BuffBase[EffCount];
// 第9列之后 物品效果
for (int e = 0; e < EffCount; ++e)
{
BuffBoostType boost = (BuffBoostType)Enum.Parse(typeof(BuffBoostType), tokens[e * 3 + c].Trim(), true);
if (!Enum.IsDefined(typeof(BuffBoostType), boost))
throw new Exception("无效消耗品特效 行数:" + (i + 1).ToString());
float v;
if (!float.TryParse(tokens[e * 3 + c + 1].Trim(), out v))
throw new Exception("无效消耗品特效值 行数:" + (i + 1).ToString());
float d;
if (!float.TryParse(tokens[e * 3 + c + 2].Trim(), out d))
throw new Exception("无效消耗品持续时间 行数:" + (i + 1).ToString());
if (it.type == ItemType.Expendable)
{
// 消耗品,建立临时Buff
it.effects[e] = new TempBuff(boost, v, d);
}
else
{
// 装备,建立永久Buff
it.effects[e] = new ItemBuff(boost, v);
}
}
}
return it;
}
## NativeItemList.TXT
##
## SDHeXu Item List Ver 3.00
## ID | Level | Name | Description | Icon | Type | Quality | Price | CD | BoostList< BoostType|BoostValue|Life >...
## ItemType: Expendable WeapopSword WeaponMagic Cap Jacket Trousers Shoes Ring Necklace Material Appraisal
## Quality: Normal, Excellent, Rare, Legendary, Epic
## BuffBoostType: HP HPPercent MP MPPercent [ Expendable ]
## BuffBoostType: HPMax HPMaxPercent HPRecover MPMax MPMaxPercent MPRecover Damage DamagePercent Defense
## DefensePercent ReduceDamagePercent CritProbability CritDamagePercent DodgeProbability
## MoveSpeed MoveSpeedPercent SuckBloodPercent ReflectDamagePercent
##
1001|1|微型生命恢复剂|能够立即轻微恢复生命的药剂|Drug/HP1|Expendable|Normal|30|0.3|HP|60|0
1002|1|小型生命恢复剂|能够立即恢复少量生命的药剂|Drug/HP2|Expendable|Normal|60|0.3|HP|100|0
1003|1|中型生命恢复剂|能够立即恢复中量生命的药剂|Drug/HP3|Expendable|Normal|100|0.5|HP|150|0
1004|1|大型生命恢复剂|能够立即恢复大量生命的药剂|Drug/HP4|Expendable|Excellent|150|0.5|HP|200|0
1005|1|超大型生命恢复剂|能够立即恢复足量生命的药剂|Drug/HP5|Expendable|Excellent|240|0.8|HP|300|0
1006|1|浓缩型生命恢复剂|经过浓缩后的立即型生命恢复剂|Drug/HP6|Expendable|Rare|450|0.8|HP|500|0
1007|1|精华型生命恢复剂|经过浓缩和提炼后的立即型生命恢复剂|Drug/HP7|Expendable|Rare|1000|1|HP|1000|0
1008|1|微型快速生命药剂|能够快速轻微恢复生命的药剂|Drug/HPP1|Expendable|Normal|150|0.3|HPPercent|0.1|0
1009|1|小型快速生命药剂|能够快速恢复少量生命的药剂|Drug/HPP2|Expendable|Excellent|280|0.3|HPPercent|0.15|0
1010|1|中型快速生命药剂|能够快速恢复中量生命的药剂|Drug/HPP3|Expendable|Excellent|400|0.5|HPPercent|0.2|0
1011|1|大型快速生命药剂|能够快速恢复大量生命的药剂|Drug/HPP4|Expendable|Rare|600|0.5|HPPercent|0.25|0
1012|1|超大型快速生命药剂|能够快速恢复足量生命的药剂|Drug/HPP5|Expendable|Rare|800|0.8|HPPercent|0.3|0
1013|1|浓缩型快速生命药剂|经过浓缩后的快速型生命恢复剂|Drug/HPP6|Expendable|Legendary|1000|0.8|HPPercent|0.35|0
1014|1|精华型快速生命药剂|经过浓缩和提炼后的快速型生命恢复剂|Drug/HPP7|Expendable|Legendary|1500|1|HPPercent|0.5|0
1015|1|微型医疗剂|在短时间内持续恢复生命的药剂|Drug/HPR1|Expendable|Normal|40|10|HPRecover|10|10
1016|1|小型医疗剂|在较短时间内持续恢复生命的药剂|Drug/HPR2|Expendable|Normal|100|20|HPRecover|10|20
1017|1|中型医疗剂|在一定时间内持续恢复生命的药剂|Drug/HPR3|Expendable|Normal|200|30|HPRecover|10|30
1018|1|大型医疗剂|在较长时间内持续恢复生命的药剂|Drug/HPR4|Expendable|Excellent|300|40|HPRecover|10|40
1019|1|超大型医疗剂|在长时间内持续恢复生命的药剂|Drug/HPR5|Expendable|Excellent|480|50|HPRecover|10|50
1020|1|浓缩型医疗剂|在很长时间内持续恢复生命的药剂|Drug/HPR6|Expendable|Rare|900|60|HPRecover|15|60
1021|1|精华型医疗剂|在很长时间内持续快速恢复生命的药剂|Drug/HPR7|Expendable|Rare|1300|60|HPRecover|20|60
1022|1|微型魔力恢复剂|能够立即轻微恢复魔力的药剂|Drug/MP1|Expendable|Normal|20|0.3|HP|60|0
1023|1|小型魔力恢复剂|能够立即恢复少量魔力的药剂|Drug/MP2|Expendable|Normal|40|0.3|HP|100|0
1024|1|中型魔力恢复剂|能够立即恢复中量魔力的药剂|Drug/MP3|Expendable|Normal|80|0.5|HP|150|0
1025|1|大型魔力恢复剂|能够立即恢复大量魔力的药剂|Drug/MP4|Expendable|Excellent|120|0.5|HP|200|0
1026|1|超大型魔力恢复剂|能够立即恢复足量魔力的药剂|Drug/MP5|Expendable|Excellent|200|0.8|HP|300|0
1027|1|浓缩型魔力恢复剂|经过浓缩后的立即型魔力恢复剂|Drug/MP6|Expendable|Rare|380|0.8|HP|500|0
1028|1|精华型魔力恢复剂|经过浓缩和提炼后的立即型魔力恢复剂|Drug/MP7|Expendable|Rare|800|1|HP|1000|0
1029|1|微型快速魔力药剂|能够快速轻微恢复魔力的药剂|Drug/MPP1|Expendable|Normal|100|0.3|HPPercent|0.1|0
1030|1|小型快速魔力药剂|能够快速恢复少量魔力的药剂|Drug/MPP2|Expendable|Excellent|180|0.3|HPPercent|0.15|0
1031|1|中型快速魔力药剂|能够快速恢复中量魔力的药剂|Drug/MPP3|Expendable|Excellent|280|0.5|HPPercent|0.2|0
1032|1|大型快速魔力药剂|能够快速恢复大量魔力的药剂|Drug/MPP4|Expendable|Rare|400|0.5|HPPercent|0.25|0
1033|1|超大型快速魔力药剂|能够快速恢复足量魔力的药剂|Drug/MPP5|Expendable|Rare|580|0.8|HPPercent|0.3|0
1034|1|浓缩型快速魔力药剂|经过浓缩后的快速型魔力恢复剂|Drug/MPP6|Expendable|Legendary|800|0.8|HPPercent|0.35|0
1035|1|精华型快速魔力药剂|经过浓缩和提炼后的快速型魔力恢复剂|Drug/MPP7|Expendable|Legendary|1200|1|HPPercent|0.5|0
1036|1|微型医疗剂|在短时间内持续恢复魔力的药剂|Drug/MPR1|Expendable|Normal|30|10|HPRecover|10|10
1037|1|小型医疗剂|在较短时间内持续恢复魔力的药剂|Drug/MPR2|Expendable|Normal|80|20|HPRecover|10|20
1038|1|中型医疗剂|在一定时间内持续恢复魔力的药剂|Drug/MPR3|Expendable|Normal|160|30|HPRecover|10|30
1039|1|大型医疗剂|在较长时间内持续恢复魔力的药剂|Drug/MPR4|Expendable|Excellent|240|40|HPRecover|10|40
1040|1|超大型医疗剂|在长时间内持续恢复魔力的药剂|Drug/MPR5|Expendable|Excellent|400|50|HPRecover|10|50
1041|1|浓缩型医疗剂|在很长时间内持续恢复魔力的药剂|Drug/MPR6|Expendable|Rare|900|60|HPRecover|15|60
1042|1|精华型医疗剂|在很长时间内持续快速恢复魔力的药剂|Drug/MPR7|Expendable|Rare|1300|60|HPRecover|20|60
1043|1|生命强化剂|传说中喝下后能使人更加强壮的药水|Drug/HPMAX1|Expendable|Rare|5000|0|HPMax|50|0
1044|1|强力生命强化剂|传说中喝下后能使人更加强壮的药水|Drug/HPMAX2|Expendable|Rare|10000|0|HPMax|100|0
1045|1|魔力强化剂|传说中喝下后能使人魔力加强的药水|Drug/MPMAX1|Expendable|Rare|4000|0|MPMax|50|0
1046|1|强力魔力强化剂|传说中喝下后能使人魔力加强的药水|Drug/MPMAX2|Expendable|Rare|8000|0|MPMax|100|0
1047|1|血玲珑提取液|喝下后在一定时间内让人更强壮|Drug/HPMT1|Expendable|Normal|300|60|HPMax|100|60
1048|1|血玲珑精华提取剂|喝下后在一定时间内让人更强壮|Drug/HPMT2|Expendable|Normal|500|60|HPMax|300|60
1049|1|天香蜜露|喝下后在一定时间内魔力加强|Drug/MPMT1|Expendable|Normal|200|60|MPMax|100|60
1050|1|大瓶天香蜜露|喝下后在一定时间内魔力加强|Drug/MPMT2|Expendable|Normal|400|60|MPMax|300|60
1051|1|首阳参汁|喝下后在一定时间内加快生命恢复速度|Drug/HPTR1|Expendable|Normal|600|60|HPRecover|5|120
1052|1|魔阴草精华液|喝下后在一定时间内加快魔力恢复速度|Drug/MPTR1|Expendable|Normal|500|60|MPRecover|5|120
1053|1|龙鳞草|吃下后皮肤会隐约出现龙鳞状的纹路|Drug/LLC1|Expendable|Normal|100|60|Defense|20|60
1054|1|变异的龙鳞草|吃下后皮肤会隐约出现龙鳞状的纹路|Drug/LLC2|Expendable|Rare|500|120|Defense|50|120
1055|1|紫幽花|吃下后迅速恢复生命和魔力|Drug/HPMP1|Expendable|Normal|400|0.3|HP|100|0|MP|100|0
1056|1|刺葵|吃下后皮肤会暂时长出尖刺|Drug/CK1|Expendable|Normal|200|60|ReflectDamagePercent|0.3|60
1057|1|魔芙|吃下后魔力能暂时得到加强|Drug/MF1|Expendable|Normal|300|80|MPMaxPercent|0.2|80
2001|1|魔石法杖|初级法师常用的武器,上面镶嵌着一颗\n魔力之石|Weapon/msfz|WeaponMagic|Normal|100|0|Damage|10|0|MPMaxPercent|0.1|0
2002|1|雷霆之杖|据说制作该法杖极为困难,需要灌输雷电之力|Weapon/ltzz|WeaponMagic|Normal|120|0|Damage|15|0|MPRecover|0.5|0
2003|1|灵玉骨杖|不知用何种生物的腿骨镶嵌灵玉而成\n十分难得|Weapon/lygz|WeaponMagic|Normal|180|0|Damage|25|0|CritProbability|0.02|0
2004|1|虎头杖|外观如同老虎般威严同时具有老虎般的威力|Weapon/htz|WeaponMagic|Normal|220|0|Damage|35|0|CritProbability|0.02|0|CritDamagePercent|0.1|0
2005|1|青铜剑|初级剑士常用的武器,使用青铜锻造|Weapon/qtj|WeapopSword|Normal|100|0|Damage|10|0|HPMaxPercent|0.1|0
2006|1|玄铁剑|使用玄铁打造的剑,锋利异常|Weapon/xtj|WeapopSword|Normal|120|0|Damage|25|0
2007|1|陨金剑|一种天外陨金打造的宝剑,十分珍贵|Weapon/yjj|WeapopSword|Normal|200|0|Damage|25|0|DamagePercent|0.05|0|CritProbability|0.03|0
2008|1|火云之刃|此剑通体火红,能使敌人迅速丢失生命|Weapon/hyzr|WeapopSword|Normal|400|0|Damage|25|0|SuckBloodPercent|0.1|0