void Cleanup() { if (_taa.isCreated) { Utils.DestroyAllGameObjects(_taa); _taa.Dispose(); } _limitter = null; _wantsCleanup = false; }
bool Prepare() { if (_taa.isCreated) { return(true); } if (_meshes == null || _meshes.Length == 0) { return(false); } if (_material == null) { return(false); } var e = Enumerable.Range(0, _instanceCount). Select(i => Utils.CreateMeshRendererGameObject (_meshes[i % _meshes.Length], _material, transform)); _taa = new TransformAccessArray(e.Select(go => go.transform).ToArray()); _limitter = new MotionVectorLimitter(transform); return(true); }