using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BuddleTest : MonoBehaviour
{
Vector3 point;
GameObject effectGo;
public ParticleSystem ps;
void Start()
{
effectGo = Resources.Load<GameObject>("ParticlePrefabs/Bubble Particles");
}
// 方法一
void BubbleSpawn(Vector2 spawnPos)
{
point = new Vector3(spawnPos.x, spawnPos.y, 1f);//获得鼠标点击点
point = Camera.main.ScreenToWorldPoint(point);//从屏幕空间转换到世界空间
GameObject go = Instantiate(effectGo, transform, true);
go.transform.localPosition = point;
}
// 方法二
void BubbleSpawn2(Vector2 spawnPos)
{
point = Camera.main.ScreenToWorldPoint(spawnPos);//从屏幕空间转换到世界空间
point = new Vector3(point.x, point.y, 1f);//获得鼠标点击点
ParticleSystem newParticlePrefab = Instantiate(ps, point, ps.transform.rotation);
newParticlePrefab.transform.parent = transform;
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
// BubbleSpawn(Input.mousePosition);
BubbleSpawn2(Input.mousePosition);
}
}
}
2.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ParticleMsg : MonoBehaviour
{
public static ParticleMsg Instance;
public GameObject[] effectGo; // 粒子特效预设体数组
private void Awake()
{
Instance = this;
}
Vector3 point; // 保存粒子生成的初始坐标
/// <summary>
///
/// </summary>
/// <param name="spawnPos"> 粒子生成坐标</param>
/// <param name="index">生成的粒子下标</param>
/// <param name="lifeTimer">生成的粒子生命周期</param>
void BubbleSpawn(Vector2 spawnPos,int index,float lifeTimer)
{
point = new Vector3(spawnPos.x, spawnPos.y, 1f);//获得鼠标点击点
point = Camera.main.ScreenToWorldPoint(point);//从屏幕空间转换到世界空间
GameObject go = Instantiate(effectGo[index], transform, true);
go.transform.localPosition = point;
Destroy(go, lifeTimer);
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
BubbleSpawn(Input.mousePosition,0,2f);
}
}
}