爱心粒子漩涡特效代码
时间: 2023-10-23 19:14:09 浏览: 76
这个特效的实现需要使用粒子系统,以下是一个简单的爱心粒子漩涡特效代码示例:
```csharp
using UnityEngine;
public class HeartParticle : MonoBehaviour
{
public ParticleSystem particleSystem;
public int particleCount = 100;
public float radius = 5f;
public float speed = 1f;
private ParticleSystem.Particle[] particles;
void Start()
{
particles = new ParticleSystem.Particle[particleCount];
particleSystem.Emit(particleCount);
particleSystem.GetParticles(particles);
for (int i = 0; i < particleCount; i++)
{
float angle = Random.Range(0f, Mathf.PI * 2f);
float distance = Random.Range(0f, radius);
Vector3 position = new Vector3(Mathf.Cos(angle) * distance, Mathf.Sin(angle) * distance, 0f);
particles[i].position = position;
particles[i].startSize = Random.Range(0.1f, 0.3f);
particles[i].startColor = new Color(Random.Range(0.8f, 1f), Random.Range(0.2f, 0.5f), Random.Range(0.2f, 0.5f), 1f);
}
particleSystem.SetParticles(particles, particleCount);
}
void Update()
{
for (int i = 0; i < particleCount; i++)
{
float angle = Mathf.Atan2(particles[i].position.y, particles[i].position.x) + Time.deltaTime * speed;
float distance = particles[i].position.magnitude;
Vector3 position = new Vector3(Mathf.Cos(angle) * distance, Mathf.Sin(angle) * distance, 0f);
particles[i].position = position;
}
particleSystem.SetParticles(particles, particleCount);
}
}
```
这个代码会在场景中生成一个粒子系统,包含指定数量的粒子,每个粒子的位置和颜色都是随机生成的。然后在 Update 函数中,根据粒子当前的位置和速度计算出下一帧的位置,并更新粒子系统。