private static BlockParticle CreateBlockParticle(Vector3 position) { if (!ringBufferInitialized) { InitializeRingBuffer(); } BlockParticle particle = ringBuffer[ringBufferPosition]; particle.gameObject.SetActive(true); particle.transform.position = position; particle.Start(); ringBufferPosition = (ringBufferPosition + 1) % ringBufferSize; return(particle); }
public static void CreateBlockParticle(BlockSpacePosition blockPosition, Block block) { if (block.IsNotActive()) { return; } Vector3 position; position.x = blockPosition.x - 0.5f; position.y = blockPosition.y; position.z = blockPosition.z - 0.5f; BlockParticle createdBlockParticle = CreateBlockParticle(position); createdBlockParticle.UpdateTexture(blockPosition, block); }
private static void InitializeRingBuffer() { if (ringBufferInitialized) { return; } for (int i = 0; i < ringBufferSize; i++) { BlockParticle particle = (BlockParticle)Instantiate(World.Instance().blockParticle, Vector3.zero, Quaternion.identity); particle.Initialize(); ringBuffer[i] = particle; } ringBufferPosition = 0; ringBufferInitialized = true; }