//================================================================================= //更新 //================================================================================= //状態を更新 protected override void UpdateState() { //経過時間加算、残像を生成するか判定 _elapsedTime += _ignoreTimeScale ? Time.unscaledDeltaTime : Time.deltaTime; if (_elapsedTime < _span) { return; } _elapsedTime = 0; //現在レンダラーの状態から残像の情報を作成 AfterImageEffect2DInfo info = new AfterImageEffect2DInfo(_targetSpriteRenderer); //残像生成、初期化 StaticAfterImageEffect2D afterImage = _afterImagePool.Get <StaticAfterImageEffect2D>(); afterImage.Init(info, GetColor(_nextColorNo), GetMaterial(_nextMaterialNo), _duraction, _fadeTime, _ignoreTimeScale, ReleaseAfterImage); afterImage.transform.position = _targetSpriteRenderer.transform.position; _afterImageList.Add(afterImage); //次の色とマテリアルの番号を変更 _nextColorNo++; _nextMaterialNo++; if (_nextColorNo >= _colorNum) { _nextColorNo = 0; } if (_nextMaterialNo >= _materialNum) { _nextMaterialNo = 0; } }
//================================================================================= //破棄 //================================================================================= //影を破棄する private void ReleaseAfterImage(StaticAfterImageEffect2D target) { _afterImagePool.Release(target.gameObject); _afterImageList.Remove(target); }