Unityゲームで「痕跡のようなエフェクト」を実装していきます。
プレイヤーが動いた後の道みたいな感じのものですね。trailRendererを利用します。
はじめに
「Unity 2020.3.26f1」ヴァージョンで作成しています。
トレイルレンダラーコンポーネントを使っていきます。
実装開始
まずは簡単に画面作成。
「2Dオブジェクト」→「スプライト」→「正方形」を追加。

オブジェクト名をPlayerに変更して、コンポーネントを追加から「トレイルレンダラー」を追加。

追加した後に、シーンビューで試しにPlayerオブジェクトを動かすと、動いた後にトレイル(エフェクト)が表示されます。

四角で紫色っぽいのはデフォルトの状態なので、マテリアルを設定。とりあえずSprites-Defaultをセットしてみます。

色も変えてみます。濃さやアルファ値(透明度)の変更も出来たり。

試しに動かしてみると下記の様な感じに。

曲線を変更すると距離に応じて太さが変わります。

スクリプト作成
マウス移動でオブジェクトを動かしてみます。
スクリプト(名前をPlayerTrailとします)とリジッドボディをアタッチ。

PlayerTrailスクリプトは下記の様な感じに。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerTrail : MonoBehaviour { private Rigidbody2D _rigidbody; void Start() { _rigidbody = GetComponent<Rigidbody2D>(); } void Update() { _rigidbody.MovePosition(Camera.main.ScreenToWorldPoint(Input.mousePosition)); } }
マウスの場所にPlayerが来ます。
スプライトや色、マテリアル要素を変更すると下記の様にも。

下記下記スクリプトのように、色を変更できたり。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerTrail : MonoBehaviour { private Rigidbody2D _rigidbody; private TrailRenderer _trail; void Start() { _rigidbody = GetComponent<Rigidbody2D>(); _trail = GetComponent<TrailRenderer>(); } void Update() { _rigidbody.MovePosition(Camera.main.ScreenToWorldPoint(Input.mousePosition)); } public void ColorChangeRed() { _trail.startColor = Color.red; } }
プレイヤーだけじゃなく、他にも色々使えそうな。