unity 记录10秒的鼠标位置,并在记录结束后让particle粒子发射器在记录的位置循环移动
时间: 2023-11-22 12:56:08 浏览: 32
首先需要定义一个记录鼠标位置的类,如下所示:
```csharp
using UnityEngine;
public class MouseRecorder : MonoBehaviour
{
public float recordTime = 10f; // 记录时间
private float timer = 0f;
private Vector3[] positions;
private int index = 0;
void Start()
{
positions = new Vector3[Mathf.RoundToInt(recordTime * 60)]; // 每秒记录60个点
}
void Update()
{
timer += Time.deltaTime;
if (timer < recordTime)
{
// 记录鼠标位置
positions[index] = Input.mousePosition;
index++;
}
else
{
// 停止记录,启动粒子效果
enabled = false;
ParticleSystem particle = GetComponent<ParticleSystem>();
particle.Play();
StartCoroutine(MoveParticle(particle));
}
}
IEnumerator MoveParticle(ParticleSystem particle)
{
while (true)
{
for (int i = 0; i < positions.Length; i++)
{
particle.transform.position = Camera.main.ScreenToWorldPoint(positions[i]);
yield return new WaitForFixedUpdate();
}
}
}
}
```
然后在需要使用的物体上挂上这个脚本,同时将需要发射的粒子效果作为子物体挂在该物体上,并设置好粒子效果的发射位置即可。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)