「ゲームプログラミング/Unity」の版間の差分
編集の要約なし |
編集の要約なし |
||
231 行 | 231 行 | ||
特に決定ボタンなどは無いので、設定が終わったら、右上の「x」ボタンでウィンドウ「Project Settings」を閉じる。 |
特に決定ボタンなどは無いので、設定が終わったら、右上の「x」ボタンでウィンドウ「Project Settings」を閉じる。 |
||
== キーボード入力 == |
|||
まず、 |
|||
<syntaxhighlight lang="c#" > |
|||
using System.Collections; |
|||
using System.Collections.Generic; |
|||
using UnityEngine; |
|||
public class HelloTest : MonoBehaviour |
|||
{ |
|||
// Start is called before the first frame update |
|||
void Start() |
|||
{ |
|||
Debug.Log("Hello World"); |
|||
} |
|||
// Update is called once per frame |
|||
void Update() |
|||
{ |
|||
} |
|||
} |
|||
</syntaxhighlight> |
|||
の void Update() 関数のほうのブロック内に、起動後の処理を書くので、キーボード入力の処理もこちら void Update() 関数のブロック内のほうに書く。 |
|||
<syntaxhighlight lang="c#" > |
|||
using System.Collections; |
|||
using System.Collections.Generic; |
|||
using UnityEngine; |
|||
public class HelloTest : MonoBehaviour |
|||
{ |
|||
// Start is called before the first frame update |
|||
void Start() |
|||
{ |
|||
Debug.Log("Hello World"); |
|||
} |
|||
// Update is called once per frame |
|||
void Update() |
|||
{ |
|||
if (Input.GetKey(KeyCode.RightArrow)) |
|||
{ |
|||
Debug.Log("migi"); |
|||
} |
|||
} |
|||
} |
|||
</syntaxhighlight> |
|||
のように書けばいい。 |
|||
再生ボタンを押してテストしてみると、たしかにキーボードの右ボタンを押すたびに、コンソール欄にデバッグ文「migi」が表示される。(時刻が秒単位で併記されるので、押すたびに更新表示されてるのが分かる。) |
|||
なお、キーコードについては[https://docs.unity3d.com/ja/2018.4/ScriptReference/KeyCode.html Unity公式マニュアル『KeyCode』] を参照せよ。 |
2020年4月16日 (木) 04:26時点における版
セットアップの手順
- ※ wikiの都合上、画像が不足してますので(仮に画像投稿しても、バージョンアップで使えなくなることや、画像の著作権の問題が複雑なので)、外部の解説サイトの画像なども併用してください。
Windows版のUnityの使用には、まず、事前に .NET Framework の最新版と、ひとつ古いバージョンをインストールしておく必要がありそうである。
Windows版の Unity は、 .NET Framework の機能を間借りしているようである。(Unityインストール時に、勝手に .NET Framework の Windows Update が出たりするので。)
たとえば2020年4月現在の時点では、.NET Frameworkの最新版は ver 4.x 台だが、
Unityは ver 3.0 台を部分的に用いているようである。
インストール時に公式サイトでのアカウント作成が必要だが、
グーグルアカウントでもアカウント作成できるので、
グーグルアカウントでUnityアカウント作成するのがラクチンである。
unity のインストールや起動には、けっこう時間が掛かる。
ときどき、デスクトップを見に行こう。Unityのロゴ画面ウィンドウが表示中なら、
まだバックで作業中である。
入門プログラム Hello World
インストールに成功して、プロジェクト画面が出るようになったら、
その中にあるProjectパネルにある項目「Assets」にマウスカーソルを合わせて右クリック。 (最新安定版ではAssetsにあわせないと、メニューが表示されない。2020年4月16日に確認。)
表れるメニュー欄から「Create」→「C# Script」をマウスで選択。
まず「Create」にマウスをあわせてクリックすると、続いて表れるサブメニュー欄に「C# Script」あるので、 マウスで選択すればいい。
すると、Assetsフォルダ内にC#コードのテンプレートが作成される。
まだ、何の命令もしてないので、これに命令文を追記する。
Assetsをクリックした直後なら、
プロジェクトパネルの隣に、アセット内部の構成パネルがあるので、その選択フォルダ内のアイコン一覧に、 C#のアイコン画像でスクリプト新規ファイルが追加されているので、そのC#アイコンのあるファイルをクリック。
すると、Visual Studio などのエディターが立ち上がり、そのスクリプトを編集して
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HelloTest : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Debug.Log("Hello World");
}
// Update is called once per frame
void Update()
{
}
}
のように更新して保存する。
class名はファイル名と同じ(ただし拡張子は抜き)でなければならない。
なので
public class NewBehaviourScript : MonoBehaviour
の 「NewBehaviourScript」 の部分をファイル名に変更する。
たとえばファイル名が「HelloTest.cs」なら、クラス名を「HelloTest」に変更しなければならない。そうしないとUnityがコードを認識せず、再生ボタンを押しても全く「Hello World」が表示されない。
その後、Hierarchy パネルのほうで、目的として GameObject を作成するために、
Hierarchy パネル内で右クリックして
「Create」→「Create Empty」を選択。(Createを右クリックすると出てくるCreate Empty項目をクリック。)
そして、先ほど作成したC#ファイル(HelloTest.cs のような名前のファイル)のアイコンをマウスドラッグでGameObjectまでドラッグすると、
自動でインポートしてくれ、画面にウィンドウメッセージで Importing とか出てくるので待機。
このインポート作業をunity用語で「アタッチ」という。
さて、デバッグログはコンソール欄でしか見られない。
Unityのコンソールパネルの場所については、 Project パネルのタブの真横の、コンソールのタブがあるので、 そのコンソールのタブをクリックして、コンソール欄を開けばいい。
画面上部の右側に再生ボタン があるので、ソレをクリックすると、
プログラムを実行する。
すると、コンソール画面に「Hello World」と出ているハズだろう。
ゲーム画面に文字を表示したい場合
プレイヤーは作者のコンソール画面なんて見れないので、プレイヤーにも見えるように文字を表示するには、コンソール画面でない方法を使う。
とはいえ、作業は簡単である。
Hierarcy パネル内で右クリックし、「UI」→「Text」を選択。
これだけで画面に文字を表示できるようになっている。初期設定では「New Text」の文字を表示する。
再生ボタンを押せば、画面のどこかに表示されている(パソコン事情や個人設定などにより、表示位置が微妙に違う)。
(画面が暗くて見づらいかもしれないが、たぶん、画面のどこかに「New Text」とあるハズ)
しかし、上記の作業だけでは、まだビルドしてないので、実行ファイル(windowsなら .exeファイル)になっておらず、ゲームとして配布できない状態である。
ビルドの方法
画面上部のメニュー欄から「File」→「Build Settings」を選択。
ボタン「Add Open Scenes」を押すと、そのUnity内で開いているsceneファイルを勝手に認識するので、
「Add Open Scenes」を押す。
画面下にボタン「Build and Run」があるので押す。
保存先の選択ウィンドウが開くので、とにかく画面下のほうにある決定ボタンを押す。
すると、勝手にビルドが始まる。けっこう時間が掛かるので(5分くらい)、もし一見して反応が無いように見えるなら、
デスクトップ画面を見に行ったりして、ビルド中の表示欄が出てるか確かめよう。
待ち時間のあいだ、読書するなり、パソコンを使わない別の軽作業とか家事や、職場なら書類事務でもして時間を潰そう。
もし全画面モードで起動してしまった場合、
ウィンドウズの場合なら
Ctrl + Ald + Delete
でタスクマネージャが開くので、そのタスクマネージャを使って 自作unityアプリをいったん終了させよう。
ホームフォルダに、Unityのプロジェクト作成時に自動で作ったフォルダ「New Unity Project」がある。
そこに、「Bulid and Run」実行によって、
新たにファイル
- New Unity Project.exe
- UnityCrashHandler32.exe
- UnityPlayer.dll
が加わっているハズだ。
この3つのファイルを丸ごとコピーして、1つのフォルダに入れたものを、ゲームファイルとして配布すればいい。
配布時には、
フォルダ名をゲーム名にしたり、「New Unity Project.exe」に相当する実行ファイルの名前をゲームのファイル名などに変更しよう。
- 全画面でないウィンドウモードでビルドする方法
ただし、上記のまま実行しても、全画面表示になってしまい、とても不便。
なので、ウィンドウ「Build Settings」の右下にあるボタン「Player Settings」をクリックして、
自動で開かれるウィンドウ「Project Settings」にある 項目「Resolution and Presentation」に、 フルスクリーン化をしている「Fullscreen mode」に関するボックスがあるので、
このボックス内容を「Windowed」に変更する。
特に決定ボタンなどは無いので、設定が終わったら、右上の「x」ボタンでウィンドウ「Project Settings」を閉じる。
キーボード入力
まず、
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HelloTest : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Debug.Log("Hello World");
}
// Update is called once per frame
void Update()
{
}
}
の void Update() 関数のほうのブロック内に、起動後の処理を書くので、キーボード入力の処理もこちら void Update() 関数のブロック内のほうに書く。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HelloTest : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Debug.Log("Hello World");
}
// Update is called once per frame
void Update()
{
if (Input.GetKey(KeyCode.RightArrow))
{
Debug.Log("migi");
}
}
}
のように書けばいい。
再生ボタンを押してテストしてみると、たしかにキーボードの右ボタンを押すたびに、コンソール欄にデバッグ文「migi」が表示される。(時刻が秒単位で併記されるので、押すたびに更新表示されてるのが分かる。)
なお、キーコードについてはUnity公式マニュアル『KeyCode』 を参照せよ。