[簡介]
目前粒子己經會跟隨3D的物件,但需跟隨滑鼠座標,需要用程式去控制,讓滑鼠座標跟隨到3D物件上,才能引起連動讓粒子跟隨。
[目的]
粒子會跟隨滑鼠座標,在系統中的任何時候,粒子都會跟隨移動。
1.先在專案新增一個C# Script,取名為FollowMouse
2.在C# FollowMouse中將以下程式碼貼入。
using UnityEngine;
using System.Collections;
public class FollowMouse : MonoBehaviour
{
public float distance = 1.0f;
public bool useInitalCameraDistance = false;
private float actualDistance;
// Use this for initialization
void Start()
{
if (useInitalCameraDistance)
{
Vector3 toObjectVector = transform.position - Camera.main.transform.position;
Vector3 linearDistanceVector = Vector3.Project(toObjectVector, Camera.main.transform.forward);
actualDistance = linearDistanceVector.magnitude;
}
else
{
actualDistance = distance;
}
}
// Update is called once per frame
void Update()
{
Vector3 mousePosition = Input.mousePosition;
mousePosition.z = actualDistance;
transform.position = Camera.main.ScreenToWorldPoint(mousePosition);
}
}
3.先點選3D物件(VFXattractiveTarget),再將C#檔案(FollowMouse)拉入Inspector,拉入後再將FollowMouse中的Use Inital Camera Distance打勾。
實作結果如下,粒子會跟隨滑鼠座標而移動。
[小結]
加上VFX的UI看似蠻生動的,下階段可以試著整合按鈕的動畫,以及製作一個簡易的系統頁面,將不同UI 元件加入後,進行效能平衡測試,找到VFX在UI頁面上的效能平衡點。