Open2

【Unity】動いている方向を向く

inolalalainolalala

彗星みたいなエフェクトを作るために、動いてる方向から向きたい方向を割り出して、position移動するだけで向くべき方向に回転する処理。
https://twitter.com/inolalala/status/1561266916961820673

内容はこちらブログ様のコピペ。忘れたときの備忘録としてメモ
https://www.hanachiru-blog.com/entry/2019/02/20/183552

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ParticleEffect : MonoBehaviour
{
    private Vector3 latestPos;
    void Update()
    {
        Vector3 diff = transform.position - latestPos;   //前回からどこに進んだかをベクトルで取得
        latestPos = transform.position;  //前回のPositionの更新

        //ベクトルの大きさが0.01以上の時に向きを変える処理をする
        if (diff.magnitude > 0.01f)
        {
            transform.rotation = Quaternion.LookRotation(diff); //向きを変更する
        }
    }
}
inolalalainolalala

未検証だがdiff.maginitudeの閾値(ここでは0.01fとハードコーディングされてる部分)を
publicなThresholdとして公開、if文の中にPlayOnShot()みたいな感じでパーティクル発火する処理いれば、ノイズ程度の微妙な動きは無視した演出が実装できると思われる。