0
マウスの動きの最後の0.25秒間レイキャストしたいと思います。最後の0.25秒間にマウスの位置をどのようにドリルするのですか
移動時間が0.25秒を超えるものは、私のキューから削除する必要があります。
現在、最大サイズ(サイズ)のキューを使用しています。最大サイズを超えると、エントリの削除が開始されます。代わりにこのメソッドを変換して、代わりに0.25f秒より古いエントリを削除しますか?
//Ray Cache
public Queue<Ray> inputRays;
int counter = 0;
int size = 10;//size of queue
/**********************************************/
private void Start()
{
inputRays = new Queue<Ray>();
}
private void FixedUpdate()
{
QueueInputRays();
}
private void QueueInputRays()
{
if (counter < size)
{
inputRays.Enqueue(Camera.main.ScreenPointToRay(Input.mousePosition));
counter += 1;
}
else
{
inputRays.Enqueue(Camera.main.ScreenPointToRay(Input.mousePosition));
inputRays.Dequeue();
}
}
これを解決する方法の1つは、レイを直接使用するのではなく、レイを含む新しいクラスとレイがキャストされた時間を使用することです。次に、キューの前面にあるインスタンスを見て、その時間と今の時間を比較します。したがって、時間が0.25より大きい場合は、そのインスタンスをデキューします。 –