スタート画面の配置方法
まず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が挙げてくれているこのライブラリの詳細が乗っています。ライブラリが気になったらここを見てみるとわかります。
自分が作った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について、まとめているので見ていってくれると幸いです。また、コメント等もしていただければ嬉しいです。
コメント
The Dangers of Using lasix to help Come Down from Cocaine cialis without prescription