[Unity] タイトル画面を作る ~シーン移行とボタン、テキスト~
今日は2Dゲームにタイトル画面をつけてみようと思います。
まずはタイトルを入れます。「GameObject」>>「UI」>>「Text」。
すると、HierarchyタブにCanvasとともにTextが導入されます。
まずはiOSやAndroidで表示された時にも意図した表示にするために、Canvasを下のように「Scale with screen size」にしておきます。
さて、Textを選択すると、Inspectorタブにいろいろ出てくるので、Text(Script)欄に好きなタイトルを書き込みます。
文字の色はその下のColorで、文字のデザインはFont Styleで変更。
この時、Font Sizeの割にボックスサイズ(Width, Height)が小さすぎると文字がボックスの外に追いやられて消えるので気をつけてください。Best Fitにチェックを入れると自動でボックスに入るようにしてくれるようです。
タイトルができたので、次に、スタートボタンを作成します。
「GameObject」>>「UI」>>「Button」。
Hierarchyをみると、ButtonにTextが付属していますので、同様に文字を変えられます。
(他にもオブジェクト入れたりして今こんな感じ。)
次に、ボタンを押したらシーン移行するようにします。
新しくC#スクリプトを作成して(Projectタブ右クリックから作成できます)、こんな風に書きます。
それを、適当なGameObject(Button自身でも可)のコンポーネントとして追加します(ドラッグアンドドロップ)。そして、そのObjectをButtonのOn Clickのところにアタッチ。もちろんスクリプトをアタッチしたのがButton自身ならそれを追加Buttonに追加です。
で、右側にある「No Function」のプルタブで貼り付けたスクリプトの名前を探し、その中からさらにクリックしたとき実行したい関数(上の例だとstartbutton())を選択します。
〜余談〜
途中でうっかりinteractiveのチェック外してしまってボタンが半透明?のまま効かなくなってちょっと焦りました。
これでボタンの方はok。
そして、シーンを登録しておく必要があります。
タイトルシーンを名前をつけて保存した後、「File」>>「Build Settings」の、右上にある「Add Open Scenes」を押すと、現在のシーンが登録されます。これをゲームに使うすべてのシーンでやっておく。
すると、スタートボタンを押すとゲームが始まるようになりました。
メニューとかにも応用できそうですね。
今回やるのは、起動後にまずタイトルシーンを表示させてから、そこにあるスタートボタンを押すことでゲームシーンに移行するようにする、というようなこと。
では早速。
タイトル画面は、ゲーム画面とは別のシーンになるので、「File」からタイトル用シーンを作成。
---------------------------スポンサー---------------------------
--------------------------------------------------------------------
では早速。
タイトル画面は、ゲーム画面とは別のシーンになるので、「File」からタイトル用シーンを作成。
まずはタイトルを入れます。「GameObject」>>「UI」>>「Text」。
すると、HierarchyタブにCanvasとともにTextが導入されます。
まずはiOSやAndroidで表示された時にも意図した表示にするために、Canvasを下のように「Scale with screen size」にしておきます。
さて、Textを選択すると、Inspectorタブにいろいろ出てくるので、Text(Script)欄に好きなタイトルを書き込みます。
文字の色はその下のColorで、文字のデザインはFont Styleで変更。
この時、Font Sizeの割にボックスサイズ(Width, Height)が小さすぎると文字がボックスの外に追いやられて消えるので気をつけてください。Best Fitにチェックを入れると自動でボックスに入るようにしてくれるようです。
タイトルができたので、次に、スタートボタンを作成します。
「GameObject」>>「UI」>>「Button」。
Hierarchyをみると、ButtonにTextが付属していますので、同様に文字を変えられます。
(他にもオブジェクト入れたりして今こんな感じ。)
次に、ボタンを押したらシーン移行するようにします。
新しくC#スクリプトを作成して(Projectタブ右クリックから作成できます)、こんな風に書きます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class clickbutton : MonoBehaviour {
public void startbutton() { //自分の好きな関数名でok
SceneManager.LoadScene ("Pair Cards"); } }
それを、適当なGameObject(Button自身でも可)のコンポーネントとして追加します(ドラッグアンドドロップ)。そして、そのObjectをButtonのOn Clickのところにアタッチ。もちろんスクリプトをアタッチしたのがButton自身ならそれを追加Buttonに追加です。
で、右側にある「No Function」のプルタブで貼り付けたスクリプトの名前を探し、その中からさらにクリックしたとき実行したい関数(上の例だとstartbutton())を選択します。
〜余談〜
途中でうっかりinteractiveのチェック外してしまってボタンが半透明?のまま効かなくなってちょっと焦りました。
これでボタンの方はok。
そして、シーンを登録しておく必要があります。
タイトルシーンを名前をつけて保存した後、「File」>>「Build Settings」の、右上にある「Add Open Scenes」を押すと、現在のシーンが登録されます。これをゲームに使うすべてのシーンでやっておく。
すると、スタートボタンを押すとゲームが始まるようになりました。
メニューとかにも応用できそうですね。
コメント
コメントを投稿