private void Awake() { decalRoot = transform; particleSystem = gameObject.AddComponent <ParticleSystem>(); particleSystem.loop = false; particleSystem.playOnAwake = false; particleSystem.enableEmission = false; particleSystem.simulationSpace = ParticleSystemSimulationSpace.World; ParticleSystem.ShapeModule shape = particleSystem.shape; shape.enabled = false; ParticleSystemRenderer renderer = decalRoot.GetComponent <ParticleSystemRenderer>(); renderer.renderMode = ParticleSystemRenderMode.Mesh; renderer.alignment = ParticleSystemRenderSpace.World; // renderer.sortMode = ParticleSystemSortMode.YoungestInFront; renderer.enableGPUInstancing = true; renderer.castShadows = false; renderer.receiveShadows = false; renderer.material = Resources.Load <Material>("Materials/ParticleDecalMaterial"); renderer.mesh = PrimitiveHelper.GetPrimitiveMesh(PrimitiveType.Quad); for (int i = 0; i < CAPACITY; i++) { data[i] = new ParticleDecalData(); } }
void Start() { decalParticleSystem = GetComponent <ParticleSystem>(); particles = new ParticleSystem.Particle[maxDecals]; particleData = new ParticleDecalData[maxDecals]; for (long i = 0; i < maxDecals; i++) { particleData[i] = new ParticleDecalData(); } }
void Start() { minMaxCurve = new ParticleSystem.MinMaxCurve(10.0f, 0f); decalParticleSystem = GetComponent <ParticleSystem> (); particles = new ParticleSystem.Particle[maxDecals]; particleData = new ParticleDecalData[maxDecals]; for (int i = 0; i < maxDecals; i++) { particleData [i] = new ParticleDecalData(); } }
// Start is called before the first frame update void Start() { particles = new ParticleSystem.Particle[maxDecals]; particleData = new ParticleDecalData[maxDecals]; for (int i = 0; i < maxDecals; ++i) { particleData[i] = new ParticleDecalData(); } collisionEvents = new List <ParticleCollisionEvent>(); }
public static void DisplayParticles() { for (int i = 0, l = data.Length; i < l; i++) { ParticleDecalData data = ParticleDecalManager.data[i]; particles[i].position = data.position; particles[i].rotation3D = data.rotation; particles[i].startSize = data.size; particles[i].startColor = data.color; } particleSystem.SetParticles(particles, CAPACITY); }
// Use this for initialization void Start() { decalParticleSystem = GetComponent <ParticleSystem>(); // Initialise the array of decal objects particleData = new ParticleDecalData[maxDecals]; // Initialise the array of decal particles particles = new ParticleSystem.Particle[maxDecals]; for (int i = 0; i < maxDecals; i++) { // Populate the array of decal objects particleData[i] = new ParticleDecalData(); } }
private void Start() { if (ECSManager.Instance.ShouldDisplayGraphics) { _particleSystem = GetComponent <ParticleSystem>(); particles = new ParticleSystem.Particle[maxParticle]; particleData = new ParticleDecalData[maxParticle]; for (int i = 0; i < maxParticle; i++) { particleData[i] = new ParticleDecalData(); } } }
//Reinitialize fields private void UpdateData() { _particles = new ParticleSystem.Particle[_countOfDecals]; _particleData = new ParticleDecalData[_countOfDecals]; _spawnedDecals = new List <GameObject>(); for (int i = 0; i < _countOfDecals; i++) { _particleData[i] = new ParticleDecalData(); } _particleDataList = new List <ParticleDecalData>(); }
private void Start() { invisibilePosition = new Vector3(0, 50, 0); spawner = FindObjectOfType <Spawner>(); spawner.OnNewWave += OnNewWave; decalParticleSystem = GetComponent <ParticleSystem>(); particleData = new ParticleDecalData[maxDecals]; particles = new ParticleSystem.Particle[maxDecals]; for (int i = 0; i < particleData.Length; i++) { particleData[i] = new ParticleDecalData(); } }
private void DisplayParticles() { for (int i = 0; i < maxDecals; ++i) { ParticleDecalData data = particleData[i]; ParticleSystem.Particle particle = particles[i]; particle.position = data.position; particle.rotation3D = data.rotation; particle.startSize = data.size; particle.startColor = data.color; particles[i] = particle; } decalSystem.SetParticles(particles, maxDecals); }
private static void SetParticleData(ParticleCollisionEvent @event, float size, Color color) { if (index >= CAPACITY) { index = 0; } ParticleDecalData data = ParticleDecalManager.data[index]; Vector3 euler = Quaternion.LookRotation(@event.normal).eulerAngles; euler.z = Random.Range(0, 360); data.position = @event.intersection; data.rotation = euler; data.size = size; data.color = color; index++; }
public void SetParticleData(Vector3 position, Vector3 normal, float scale, float fudge) { if (particleDecalDataIndex >= maxDecals) { particleDecalDataIndex = 0; } ParticleDecalData data = particleData[particleDecalDataIndex]; data.position = position - (normal * fudge); Vector3 particleEulers = Quaternion.LookRotation(normal).eulerAngles; particleEulers.z = Random.Range(0, 360); data.rotation = particleEulers; data.size = Random.Range(decalSizeMin, decalSizeMax) * scale; data.color = decalColorGradient.Evaluate(Random.Range(0f, 1f)); particleData[particleDecalDataIndex] = data; particleDecalDataIndex++; }