トレイルエフェクト(痕跡)を作成-trailRenderer-【Unityゲーム制作】

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;
    }
}

プレイヤーだけじゃなく、他にも色々使えそうな。

タイトルとURLをコピーしました