Unity 2D スタート画面の作り方

Unity

スタート画面の配置方法

まずAssetファイル内で、右クリックしてSceneをつくります。Sceneの名前は適当に付けます。私の場合はStartScreenにしました。そのあとにHierarchy内で右クリックしてUI→Canvasの順で選択して、Canvasを作ります。CanvasはUIであるButtonやImage画像等の様々なゲーム内で常にプレイヤーに見えるScreenです。

そのあと、Hierarchy内のCanvasを右クリックしてあげるとUI→Image,Buttonがあるのでそれぞれ追加してあげます。こうすると、Canvasの下にImage、ButtonのUIが配置されます。

*Buttonの下にはTextも追加されているとおもいます。これは、Button上に文字を書いてくれます。

Imageとは・・・

イラストや画面の背景になるものです。Canvas内に設置することによって、プレイヤーのすべての画面を指定した、背景画像として埋まります。Hierarchy内のImageを左クリックしてあげるとInspectorタブからImageコンポーネントが見ることができると思います。これが、画像の設定ができるものです。下の用にColorをクリックしてあげると背景の色を変えられます。Source Imageは、Asset内にWindowsのExplorerからDragして持ってきてあげた画像を入れることができます。Asset内にないものをこのようにコンポーネントの中には入れられないので注意です。

Buttonとは・・・

Imageのようにクリックして、Hierarchy内を見てみるとButtonとImageいうコンポーネントがあると思います。この中にあるImageのコンポーネントは、Buttonの背景の画像を指定することができます。

なので、自分で描いたもしくは描いてもらったButtonのイラストをImageのSource Image欄に入れてあげるとそのイラストがButtonとして、動作してくれます。

ところで何ができるのかというところですが、Buttonが押されたときの動作は、On Click()欄にて決めることができます。下にある+を押してあげると項目が追加されます。

今回の場合、Start画面を作りたいので動作をさせたいのはButtonが押されたときに異なるSceneに移動する挙動です。この動作は自分でC#ScriptをAsset内で作らなければいけません。

Asset内で右クリック→Create→C#Scriptで作れます。

Textとは・・・

TextのInspectorを見てもらうと、Textコンポーネントがあるのが分かります。この中にあるTextという枠の中に文字を打ち込むとそれが、Button上の文字になります。Characterの下にある、FontをいじるとFontを変えられますが、元々Unityに入っている、Arialでは日本語対応しておらず開発環境内では大丈夫ですが、Unityroom等にアップしたときにバグってしまうので、Fontを別のサイトからダウンロードしておいて変える事をお勧めします。FontStyleでは太文字、斜め文字に変えられます。それぞれいじってみるのが、一番わかりやすいと思います。試しにいじってみてください。

異なるSceneに移動させるScriptの書き方

このScriptは簡単です。Unityが用意してくれているSceneManagerのライブラリを使うことができます。下のURLにUnityが挙げてくれているこのライブラリの詳細が乗っています。ライブラリが気になったらここを見てみるとわかります。

SceneManagement.SceneManager - Unity スクリプトリファレンス
実行時のシーン管理

自分が作ったSceneContoroller.csを見せます。この名前は自分で決めて大丈夫ですが、最初の文字は大文字のほうがいいらしいです。

SceneContoroller.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class SceneContoroller : MonoBehaviour
{
    public void Scenemg()
    {
        SceneManager.LoadScene("GameScreen1");
    }
}

UnityのSceneManagerライブラリを使うには、

using UnityEngine.SceneManagement;

を書かなければいけません。そして、元々あったStart()とUpdate()は消して大丈夫です。

Start()は、ゲームの最初に実行される欄で、Update欄はゲーム中ずっと連続で実行される欄です。これもUnityのライブラリなのでUnityのスクリプトリファレンスで確認してみてください。

 public void Scenemg()
    {
        SceneManager.LoadScene("GameScreen1");
    }

このSceneManager.LoadScene(“GameScreen1”);は(”この中にScene名を入れる”)と、その名前のSceneを呼び出してくれます。public void Scenemg(){}で囲われているのは、ButtonのOnclickで呼び出すときにScenemgで選べるようにするためです。ちなみに public は,他ファイルから参照できるようにするもので void は、引数がないものを扱うときに使います。void の代わりは、intや、bool などが入ったりします。Scenemgは、自分で決められる変数名です。ここら辺は、C#言語に元々備わっているものなので調べてみてください。

とりあえずプログラムは書けましたね。しかし、まだやることはあります。

移動するSceneの設定しなければいけないこと

Asset内で作ったSceneは、Start画面とButtonが押されたときに移動する画面の2つあると思います。そこで、その二つをSceneManagerで参照できるように登録の様なことをしなければいけません。Unityの開発画面の上にあるFile,Edit,Assets・・・のFileを開きBuildSettingsを開いてください。そのなかのScenes In Buildの欄にAssetから2つのSceneをそれぞれDragして入れてあげます。

これで完成です!あともう少しで、ButtonをおしたらSceneが移動できるようになります。

ButtonのOnclick()欄に作ったC#Scriptを参照させる

まず、Hierarchy内で右クリックしてCreateEmptyを押すとGameObjectができると思います。その中に、作ったC#ScriptをDragして持ってきます。そしたらとりあえず下のようなGameObjectのInspectorになると思います。

そしたら、次はButtonのInspectorをご覧ください。OnClick()の下にある+から項目を追加して◎にGameObjectをDragして持ってくると、下のようにNoFunctionになっているところから、自分が作ったScriptの名前→変数名を選択できると思います。

これで選択出来たら、完成です!

試しに実行してみましょう。上にある▷から実行できます。

それではお疲れさまでした!ほかにもUnityについて、まとめているので見ていってくれると幸いです。また、コメント等もしていただければ嬉しいです。

コメント

  1. Terlaps より:

    The Dangers of Using lasix to help Come Down from Cocaine cialis without prescription

タイトルとURLをコピーしました