【Unity】shurikenエフェクトを最初から再生する

Clearを呼ぶことで再生状況をリセットできます

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// Shurikenエフェクト
/// </summary>
public class TestEffectObject : MonoBehaviour
{
    [SerializeField] ParticleSystem effect;

    public  void Replay()
    {
        effect.Clear();
        effect.Play();
    }

 }
    

【Unity】VFXGraphを途中から再生する

Simulateを使用すると途中から再生することができます

docs.unity3d.com

using UnityEngine;
using UnityEngine.VFX;
public class Test : MonoBehaviour
{

    public VisualEffect effect;
    // Update is called once per frame
    void Update()
    {
        if(Input.GetKeyDown(KeyCode.A))
        {
          
            effect.Play();
            effect.Simulate(Time.deltaTime, 101);
        }
    }
}

【Unity】値を正規化する

0~100の間で10だったら0.1を返して欲しいとき等特定の値が指定した範囲のどこにあるか調べるとき使用する

コード

public float NormalizeValue(float value,float min, float max)
{
    var output = 0.0f;
    output = (value - min) / (max - min);
    return Mathf.Clamp(output, 0, 1);
}

【Unity】VFXgraphのInstancingを設定して大量に配置できるようにする

はじめに

環境はUnity 2023.2です

やり方

VFXgraphを大量に配置するとFPSがかなり低下します

下記画像は1000個生成したときのものです。FPSが40前後になってます

VisualEffectAssetファイルのInstancing設定をCustom batch capacityAutomatic batch capacityにするとバッチ処理が実行されるようになります

Custom batch capacityに設定するとFPSが60で安定するようになりました。

同じVFXgraphを配置する場合は設定しておくと良さそうです