protected override void OnUpdate() { base.OnUpdate(); if (Input.GetMouseButtonDown(0)) { Vector3 vecPos = _pCamera.ScreenToWorldPoint(Input.mousePosition); Vector3 vecPos2 = _pCamera.WorldToViewportPoint(vecPos); DoPlayRippleEffect(vecPos2); } var pNodeCurrent = _listDropInfo.First; while (pNodeCurrent != null) { SInfoRippleEffect pInfoEffect = pNodeCurrent.Value; if (pInfoEffect.Update()) { _listDropInfo.Remove(pInfoEffect); _queueOnDisable.Enqueue(pInfoEffect); } pNodeCurrent = pNodeCurrent.Next; } UpdateShaderParameters(); }
public void DoPlayRippleEffect(Vector3 vecPos) { if (_queueOnDisable.Count != 0) { SInfoRippleEffect pDropInfoDisable = _queueOnDisable.Dequeue(); pDropInfoDisable.DoReset(vecPos, _fDuration); _listDropInfo.AddLast(pDropInfoDisable); } }