c#映射和值到Unity中列表中的另一个值

时间:2018-03-23 13:26:33

标签: c# list loops unity3d search

我正在尝试进行可视化,我必须通过arraylists进行大量搜索。我有一个Unity滑块,浮点值表示时间。

我还有2个arraylist,每个大小最多300k,一个有Time值,另一个有每个对象的ID号。

我要做的就是将滑块更改与时间的arraylist映射,然后获取正确的对象ID以执行颜色更改等操作。

我目前所做的是每次滑块改变愚蠢值时都会创建一个寻找合适时间值的函数。

我真的不知道我应该做什么或者我能用什么。我目前正在使用linq .select和每次滑块更改值时循环遍历列表的函数,但我希望它具有复杂性ordo(1)

例如, 1.Slider改变价值, 2.我使用滑块值来获取正确的对象ID

我的代码段:

void Update()
{       
    if(isPlaying){
        fps = 1/Time.deltaTime;
        timeSlider.value += (1000/fps) *speed;
    }
}

//example of spikeTimes, it is way bigger!
spikeTimes=[1.2, 5.9, 9.6];
public void SliderFunction(float currentTime){
    var tempSpikes = spikeTimes
        .Select((x,i) => Mathf.Round(x)==Mathf.Round(currentTime) ? i : -1)
        .Where(i => i != -1)
        .ToList();
    ChangeColor(tempSpikes);
}

0 个答案:

没有答案