我正在将一个小项目重写为Rx并陷入困境。
该项目的目标是为每个
创建总记录列表所以最后我们将获得2个大记录(记录== csv文件,每个玩家/团队一行): NBA球员:
等
NBA球队
等
最初,有一系列球员,每个球员每年都有一系列薪水(基本上勒布朗打了很多赛季,我们得到了关于他的信息:[10e6,15e6,20e6]并基于此我们更新的信息(一个薪水字段),一个Map<Player, Info>
,其中Info有薪水,积分,助攻等字段。所以我们可以迭代我们的玩家并首先将它们作为关键点插入然后增加那个薪水领域。
然后我们有了一系列游戏 - &gt;我们迭代并更新Map<Player, Info>
(点数,辅助字段),然后更新Map<Team, WLBalance>
,其中WLBalance
只是一对。
现在我想切换到Rx,我有2个observable(一个发出<Player, Salary in some year>
,另一个发出GameInfo
)。最后我想发出结果记录:
NBA球员:
NBA球队:
我想使用reduce
(获得总薪水,积分,助攻)功能来观察Observables,但我无法想出如何基于此过滤Player
首先。然后它更多的是更新Map<K, V>
中的值而不是减少某些Observable中的值。
所以我的问题是:
答案 0 :(得分:0)
目前还不清楚您获取数据的顺序。但是,如果您只是想通过播放器减少,那么您可以使用public GameObject[] tileprefabs;
private Transform playerTransform;
private float spawnz = 10.0f;
private float tileLength = 7.0f;
private float amnoftilesOnScreen = 20.0f ;
// Use this for initialization
void Start () {
playerTransform = GameObject.FindGameObjectWithTag("player").transform;
for(int i=0; i<amnoftilesOnScreen; i++)
{
spawntiles();
}
}
// Update is called once per frame
void Update () {
if(playerTransform.position.z>(spawnz - amnoftilesOnScreen*tileLength))
{
spawntiles();
}
}
private void spawntiles(int prefabIndex = -1) {
GameObject go = Instantiate(tileprefabs[0] as GameObject);
go.transform.SetParent(transform);
go.transform.position = Vector3.forward * spawnz;
spawnz += tileLength;
}
运算符来执行映射:
groupBy()
然后,您可以对团队数据执行相同操作。