シヴァのブログ

UnityやUE4や趣味とかいろいろ...

開発メモ 「1文字ずつ表示(Substring)」

かっこいいチュートリアルを作りたいと思い、

RPGみたいに、テキストを1文字ずつ表示する方法を考えてみた。

 まず、

表示結果を以下に示す。

[タップしてすぐ]

f:id:shivaT:20130620120426p:plain

[タップして数秒後]

f:id:shivaT:20130620120443p:plain

[タップしてしばらく経過]

f:id:shivaT:20130620120457p:plain

次に、

今回作った以下のJavaScriptを見ながら、解説していく。
[Tutorial.js]

***************************************************************************

#pragma strict

var labelstyle2 : GUIStyle;//text
private var count : int = 0;//カウンター
private var SumTime2 : float = 0.0;
private var interval2 : float = 0.1;
//表示したい文字列
private var text0 : String = "ようこそ,チュートリアルの世界へ";//count=0
private var text1 : String = "ここでは,このゲームの操作方法を説明します";//count=1
private var text2 : String = "始めに,このゲームはシューティングゲームです";//count=2
private var display : String = "";//格納するための文字列
private var length : int = 0;//現在の文字の表示位置

function Update(){
    //画面タップ
    if(Input.GetMouseButtonDown(0)){
        count++;
        length = 0;//lengthの初期化
        display = "";//displayの初期化
        if(count >= 3){//3回タップしたら,End()へ
            End();
        }
    }
    SumTime2 += Time.deltaTime;
    if(SumTime2 > interval2){
        //表示しきったら終了(text.Lengthは文字列の長さ)

        //text0.Substring(length,1)は,text0のlength番目の文字を1字表示
        if(count == 0){if(text0.Length > length){display += text0.Substring(length,1);}}
        if(count == 1){if(text1.Length > length){display += text1.Substring(length,1);}}
        if(count == 2){if(text2.Length > length){display += text2.Substring(length,1);}}
        length++;//次の文字へ
        SumTime2 = 0;
    }
}
function End(){//チュートリアルを終了して,タイトル画面に移る
    Application.LoadLevel("Title");
}
function OnGUI(){
    var sw : float = Screen.width;
    var sh : float = Screen.height;
    //文字列表示
    var moji : Rect = Rect(sw / 8, sh / 5, sw / 2, sh / 2);//GUI.Label(Rect(x,y,幅,高さ),"文字");
    GUI.Label(moji, display, labelstyle2);
}

***************************************************************************

とにかく、今回覚えたのは、上の例でいうと、

display += text0.Substring(length,1);

これは、

text0(文字列)のlength番目の文字を1字表示するという意味。

だから、

文章を1文字ずつ表示するのに便利。

 

 

うん。

この表示方法を、

チュートリアルに用いて、ゲームを説明しようと思う。

あと、

このメモの、

3つの画像の中に表示されている3D素材のウサギは、

「元素材:光陰像型 http: //www.geocities.jp/lab_no2/」

でダウンロードしました。光陰像型様、ありがとうございます。

 

今回は、ここで終わり。