private BEEData UpdateBEE(BEEData data) { if (data.state == BEEState.StateAppearance) { data.time++; float scale = MathUtil.GetEaseInQuadInterpolation(AppearanceStartScale, AppearanceEndScale, data.time, AppearnaceDuration); data.scale = new Vector3(scale, scale, 1); if (data.time >= AppearnaceDuration) { data.state = BEEState.StateFade; data.time = 0; } } else if (data.state == BEEState.StateFade) { data.time++; float a = 1f - (float)data.time / FadeDuration; Color col = data.color; data.color = new Color(col.r, col.g, col.b, a); if (data.time >= FadeDuration) { data.isActive = false; } } return(data); }
public void CreateBulletEliminateEffect(Vector2 pos, Color col) { // 判断是否需要扩充list if (_bulletEffCount >= _bulletEffMaxSize) { int newMaxSize = _bulletEffMaxSize + ExtraSize; BEEData[] newList = new BEEData[newMaxSize]; for (int i = 0; i < _bulletEffCount; i++) { newList[i] = _bulletEffList[i]; } _bulletEffList = newList; _bulletEffMaxSize = newMaxSize; } _bulletEffList[_bulletEffCount++] = new BEEData { pos = pos, //color = new Color(col.r, col.g, col.b, 1f), color = col, state = BEEState.StateAppearance, scale = new Vector3(AppearanceStartScale, AppearanceStartScale, 1), time = 0, isActive = true, }; }
private STGEliminateEffectManager() { _bulletEffList = new BEEData[DefaultSize]; _bulletEffMaxSize = DefaultSize; _bulletEffCount = 0; }
private void RenderBEE(BEEData data, int verIndex) { BuildBEEMesh(data.pos, data.scale.x * BEEHalfWidth, data.scale.y * BEEHalfHeight, data.color, ref verIndex); }