【unity】自作で会話イベントを作る【2D・アセットを使わない】

Unity

今回は「アセットを使わずに自作で会話イベントを作る」というテーマで書いていきます

簡単なのでぜひ参考にしてみてください。

スポンサーリンク



会話イベントの作り方【自作】

今回は下のようなクリックしたら吹き出しを表示、スペースキー押下で会話が進むといった内容になります。

 

吹き出し部分を作成

今回のunity上のオブジェクト情報は下のとおりです。

『GameObject』⇒スクリプトをアタッチした空のオブジェクト

ー『Canvas』

ーー『Bar_White』⇒Image:吹き出しの上部の白い部分

ーー『Bar_Black』⇒Image:吹き出しの下部の黒い部分

ーー『CaraName』⇒Text:キャラ名(白い部分に表示)

ーー『Content』⇒Text:セリフ(黒い部分に表示)

 

そして、下のような吹き出しを作ります。

 

 

会話イベントを制御するスクリプトの作成

次に会話イベントを作成していきます。

今回は下のような動きを実現してみます。

1.マウス左クリック押下で吹き出しを表示

2.会話をスペースキーで進める

3.会話が終わたら吹き出しを閉じる

 

 

上のコードについて簡単に解説していきます。

1~2行目:吹き出しに表示する「キャラ名」「セリフ」を格納している配列。※[SerializeField]でprivate変数をインスペクターを表示できる。

8~9行目:Canvasオブジェクトを取得した後、非表示にする。※一応前もって取得しておく。

14~17行目:マウスで左クリックした場合、ShowLogメソッド(コルーチン)を呼び出す。※コルーチンの解説記事URL

22~23行目:「キャラ名」「セリフ」のテキストのゲームオブジェクトを取得。

25行目:吹き出し(Canvas)を表示。

27~34行目:配列に入った「キャラ名」「セリフ」をそれぞれのテキストに代入し表示する。※キャラ名(セリフでも可)配列のインデックス最小値から最大値分繰り返す。

32行目で「スペースキーが押されるまで処理を止める」で会話進行を制御し、押下されれば次の「キャラ名」「セリフ」が代入され、吹き出しに表示される。

36行目:吹き出しを非表示にする。

 

スポンサーリンク