在你的 RefreshShopItemsData
方法中,你将商品数据存储在了一个 List<object>
类型的 shopItems
中。但是,在 ShowUI
方法中,你希望根据不同类型的商品数据来设置商店 UI 中的标题、价格和详情等信息。
由于 shopItems
是一个 List<object>
类型,你需要将其转换为正确的商品数据类型才能访问其属性。你可以使用类型转换操作符 as
或者强制类型转换来实现。
private void RefreshShopItemsData()
{
archives.shopItems.Clear();
//TODO:添加商品数据:1.遗物数据 2.格子面图案数据3.卡牌数据
//TODO:从总数据中添加,这个时候要判断新添加的数据是否已经存在,如果存在则不添加
//TODO:(所有数据都不能重复)
//添加数据
for (int i = 0; i < 4; i++)
{
//添加遗物数据
archives.shopItems.Add(DatasManager.GetComponent<DatasManager>().GetRandomRelic());
}
for (int i = 0; i < 4; i++)
{
//添加格子面图案数据
archives.shopItems.Add(DatasManager.GetComponent<DatasManager>().GetRandomDiceDesign());
}
}
public override void ShowUI<T>(T t)
{
base.ShowUI(t);
if (t is RelicData)
{
RelicData relic = t as RelicData; // 使用as操作符进行类型转换
shopTitle = relic.relicName;
shopMoney = relic.relicPrice;
shopDetails = relic.relicIntroduce;
}
else if (t is DiceDesignData)
{
DiceDesignData design = t as DiceDesignData; // 使用as操作符进行类型转换
shopTitle = design.designName;
shopMoney = design.price;
shopDetails = design.description;
}
}