Invert ParticleEffect Velocity
Unity3D/Script / 2016. 11. 9. 13:16
파티클 이펙트를 런타임 중에 방향을 반전 시키는 간단한 스크립트.
생성 될 때 방향을 반전시키기 위해서 ParticleSystem.startSpeed 를 반전 시키고,
이미 생성 된 파티클은 ParticleSystem.Particle.velocity 를 반전 시켜 줌.
using UnityEngine;
using System.Collections;
public class InvertParticleEffect : MonoBehaviour
{
ParticleSystem m_System;
ParticleSystem.Particle[] m_Particles;
void InitializeIfNeeded()
{
if (m_System == null)
m_System = GetComponent();
if (m_Particles == null || m_Particles.Length < m_System.maxParticles)
m_Particles = new ParticleSystem.Particle[m_System.maxParticles];
}
public void Invert()
{
InitializeIfNeeded();
// 생성될 때, 파티클 Speed 방향 반전
var vel = m_System.startSpeed *= -1f;
// GetParticles is allocation free because we reuse the m_Particles buffer between updates
int numParticlesAlive = m_System.GetParticles(m_Particles);
// Change only the particles that are alive
for (int i = 0; i < numParticlesAlive; i++)
{
// 이미 생성된 파티클은 velocity 반전해서 반대로 가도록..
m_Particles[i].velocity *= -1f;
}
// Apply the particle changes to the particle system
m_System.SetParticles(m_Particles, numParticlesAlive);
}
}
반응형
'Unity3D > Script' 카테고리의 다른 글
| [펌] Download and save .ogg - Files (0) | 2017.02.15 |
|---|---|
| [펌] StreamingAssets 폴더 지정하기 (0) | 2016.11.10 |
| [펌] Parallax Scrolling (0) | 2016.10.27 |
| [펌] Music player - (load sound files at runtime from directory, and play them) (1) | 2016.09.27 |
| [펌] OnApplicationFocus 와 OnApplicationPause 차이 (0) | 2016.09.22 |
