【實作】滑鼠/鼠標/觸控點擊特效系統
【適用情境】當專案需要滑鼠/觸控點擊的時候產生一個粒子效果
有2種呈現方法
1.常駐型粒子效果,適用於滑鼠2.點擊/觸控產生粒子效果並隔數秒後銷毀
【法1】
1.創建一個粒子系統(particle system),或導入現成的粒子prefab
2.將以下Script導入粒子系統物件上
[C#]
public float Distance = 10;
void Update(){
Ray effect_ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Vector3 pos = effect_ray.GetPoint(Distance);
transform.position = pos;
【法2】
這邊參考了Caz的用法,雖然上面說會自動銷毀,但實際測試好像不會就加入了Destroy
[Unityscript]
#pragma strict
var MyEffect:GameObject ;
var hit : RaycastHit;
var cooldown : float;
private var effect:GameObject;
private var g_camera : Camera;
private var g_camTransform : Transform;
function Awake()
{
g_camera = Camera.main;
g_camTransform = g_camera.transform;
}
function Update ()
{
if(cooldown>0){cooldown-=Time.deltaTime;}
var mousePos = Input.mousePosition;
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
var vecMousePosition = g_camera.ScreenToWorldPoint(Vector3(mousePos.x, mousePos.y-15,20));
if(Input.GetMouseButton(0) &&cooldown<=0)
{
effect=Instantiate(MyEffect, vecMousePosition , Quaternion.identity);
cooldown=0.15;
Destroy(effect,0.4);
}
}
2016.01.14補充:
此方法其實還需要調整一些東西,不然生成的prefab會在UI後方
但一般來說點擊的效果都是在最前面的
解決方案是在Canvas上調整Render Moder改成Camera模式
然後Main camera丟進去後,產生的prefab就可以調整到UI前面了
0 意見 :
張貼留言