LoginSignup
3
3

More than 3 years have passed since last update.

Unityでオブジェクトを常にプレイヤーの方向に向かせる

Last updated at Posted at 2019-10-05

概要

本記事では、Unityでオブジェクトを常にプレイヤーの方向に向ける方法を紹介します。

方法と結果

本記事では、カメラ、円柱、パーティクル、テキストという4種類のオブジェクトをプレイヤーの方に向かせることにします。4種類あるといっても書くスクリプトはすべて同じです。先にそのスクリプトについて説明します。

DirectionController.cs
using UnityEngine;

public class DirectionController : MonoBehaviour
{
    private GameObject player;

    void Start()
    {
        player = GameObject.Find("ThirdPersonController");
    }

    void Update()
    {
        transform.LookAt(player.transform);
    }
}

プレイヤーはUnityのアセットStandard Assetsに含まれているThirdPersonControllerを用います。上のスクリプトでポイントなのはたった一つだけ、Updateメソッド内です。このようにLookAtメソッドを書くだけでOKです。

カメラをプレイヤーに向かせる

カメラ.png
見やすいように、床にタイルのテクスチャを貼っています。Main Cameraに先ほどのDirectionController.csをアタッチします。

円柱をプレイヤーに向かせる

円柱.png
円柱にDirectionController.csと赤いマテリアルをつけています。

パーティクルをプレイヤーの方に飛ばす

パーティクル.png
パーティクルは、Start Colorを赤にする以外はデフォルトのままにしてあります。パーティクルにDirectionController.csをつけます。

テキストをプレイヤーの方に向ける

テキスト.png
Canvasを作ってからその子としてTextを作ります(そうしないとTextが表示されません)。CanvasのRender ModeをWorld Spaceに設定し、DirectionController.csはCanvasにアタッチします。そして、TextのInspectorでRotationをx=0, y=180, z=0にしておきます。y=0のままにしておくと、プレイヤーからテキストを見たときにテキストが裏表逆に見えてしまいます。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3