(この記事の使用環境: Unity 2017.2.0b3 Personal、Windows10

Unityの画面上にテキストを配置する基本的な方法と、それをスクリプトで揺らす方法を紹介します。
(しばらくUnityを触っていなかったのでリハビリを兼ねて)

こんな感じ。


ではさっそく。

まずは今回の下準備として、背景の空(Skybox)は不要なので削除して、単色にします。
Unityエディタのメニューから[Window]>[Lighting]>[Settings]を選択してLightingの設定ウィンドウを開き、「Skybox Material」を「None(Material)」に変更します。
スクリーンショット (38)

その後、Hierarchyビューにあらかじめ置かれている Main Cameraの インスペクターで、CameraのBackgroundの色を変更します。これにより、Gameビューで背景色が変更されます。
スクリーンショット (39)

次に、テキストオブジェクトを作成します。
Hierarchyビューで右クリックし [UI]>[Text] を選択すると、HierarchyビューにCanvasオブジェクトが生成されます。Canvasオブジェクトの下にTextオブジェクトがぶら下げられています。(すでにCanvasオブジェクトを作成済みの場合は、新たにCanvasオブジェクトは作られず既存のCanvasオブジェクトの下にTextオブジェクトが生成されます)

今回は下図のようにTextオブジェクトを2つ作成し、名前を「MoneyText」と「HoshiiText」に変更しました。
スクリーンショット (40)

テキストオブジェクトの設定を行う前に、Canvasオブジェクトの設定をしておきます。表示したい画面サイズにあわせて、CanvasScalerの各種設定値を変更しておきます。
ここでは下図のとおり、UI Scale Modeを「Scale With Screen Size」、Reference Resolutionを「1920 * 1080」、Screen Match Modeを「Expand」にしています。
スクリーンショット (45)

また、Gameビュー左上で画面の縦横比を指定しておきます。ここではキャンバスの縦横比にあわせて「16:9」にしています。
スクリーンショット (46)

テキストオブジェクトのTextコンポーネントの設定を行います。
テキストオブジェクトのインスペクターを開き、Textに表示したい文字列(「5000兆円」と「欲しい!」)、Font Sizeに文字の大きさ、Colorに文字の色を指定します。
Alignmentはテキストの整列設定で、今回は上下左右ともに中央(Middle-Center)に指定しています。
スクリーンショット (41)

Fontには文字のフォントを指定します。Unityデフォルトのフォント以外を使用する場合はあらかじめフォントをインポートしておく必要があります。Projectビューに使用したいフォントをドラッグアンドドロップでインポートした後、指定すればOKです。
ここではWindowsの游ゴシックをインポートして指定しています。(Windowsの左下のボタンから「Font」で検索すると、Windowsに入っているフォントの一覧が表示されるので、使用したいフォントをUnityのProjectビューにドラッグアンドドロップする。商用利用等に制限がある場合もあるので注意してください)
スクリーンショット (49)

次に、テキストオブジェクトのRectTransformコンポーネントの設定を行います。
まずは「Width」と「Height」の値を表示する文字列・フォントサイズに対して十分な大きさに指定します。(十分な大きさがないと画面に文字が表示されません)
次に左側の図をクリックして、上下左右のどこを配置の起点とするかを指定します。ここでは「middle-center」にしています。
そのあと、SceneビューまたはGameビューを見ながら「PosX」「PosY」の値を変更して位置合わせをします。PosXの値を大きくすれば起点から右に、PosYの値を大きくすれば起点から上にテキストが移動します。
スクリーンショット (44)

文字を目立たせるためにアウトライン(外枠)を指定します。
テキストオブジェクトのインスペクターで「Add Component」ボタンを押して、[UI]>[Effects]>[Outline] を選択すると、Outlineコンポーネントが追加されます。
Effect Colorにアウトラインの色、EffectDistanceにアウトラインの幅を指定します。
スクリーンショット (47)

ここまでが基本的なテキストの配置方法です。

最後に、このテキストをランダムに揺らすためのスクリプト「RandomShake」を作成します。
こんな感じ。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class RandomShake : MonoBehaviour
{
    // === 外部パラメーター(インスペクター表示)=============================

    public Transform moneyTextPos;      //「5000兆円」テキストのtransform
    public Transform hoshiiTextPos;     //「欲しい!」テキストのtransform

    public float shakePower;            // 揺らす強さ


    // === 内部パラメーター ==================================================

    Vector3 moneyTextInitPos;           // 開始時の位置
    Vector3 hoshiiTextInitPos;


    // === コード(MonoBehaviour基本機能の実装)==============================

    private void Start ()
    {
        // 開始時の位置を取得
        moneyTextInitPos = moneyTextPos.position;
        hoshiiTextInitPos = hoshiiTextPos.position;
    }


    private void Update ()
    {
        // ランダムに揺らす
        moneyTextPos.position = moneyTextInitPos + Random.insideUnitSphere * shakePower;
        hoshiiTextPos.position = hoshiiTextInitPos + Random.insideUnitSphere * shakePower;
    }
}


空のゲームオブジェクト「GameController」を作成し、RandomShakeスクリプトをアタッチします。
インスペクターの「MoneyTextPos」「HoshiiTextPos」に、Hierarchyビューの「MoneyText」「HoshiiText」をドラッグアンドドロップして指定します。
「ShakePower」には揺らす力を指定します。
スクリーンショット (48)

UIテキストオブジェクトはRectTransformで位置を指定しますが、今回のスクリプトのようにごく単純に動かす場合はTransformを使って操作することもできます。

また、ランダムな位置を簡易に生成する場合、Randomクラスの Random.insideUnitSphere や Random.onUnitSphere、Random.insideUnitCircle 関数などを使用すると便利です。

Unity - スクリプトリファレンス: Random
https://docs.unity3d.com/ja/540/ScriptReference/Random.html


今回は以上です。