今回はUnityの基礎中の基礎。スクリプトのC#について見ていきたいと思います。
まずはC#を選ぶメリットなどについて見ていきましょう。
続けてUnity内でのC#の使い方と、オブジェクトの移動などの初心者が最初にやりたくなることを実例ベースで順に見ていきましょう! 初心者向けに、1から簡単にまとめてあるので初心者必見ですよ!
この記事では以下の項目をご紹介致します。
- [基本] Unityではc#を使えばいいの?
- [基本] Unityでc#を使ってみよう!
- [基本] 基本を覚えよう!
- [応用] オブジェクトを操作しよう!
- [応用] c#自体についてもっと詳しくなろう!
Unity入門者が使うべきプログラミング言語は?
JavaScript
昔はUnityではJavaScriptも使用可能でした。
しかし現行の最新版では、もうUnity上から新たに生成はできません。(使用自体は可能ではあるようです)
あえて「Unityの昔のバージョン」を使うことにして、JavaScriptで開発することも可能ではありますが……。そもそもUnity上で使用できるJavaScriptは別名UnityScriptと呼ばれていてJavaScriptとは少し違いがあるため、普段JavaScriptを使用している人も苦戦必須です。
Boo
BooというPythonベースの言語が存在します。
しかしこちらもJavaScriptと同じく、最新版では新規作成は不可能です。作成できないだけで使用自体は可能ですがいつサポートが終了するかもわからないので使用は避けたほうが良いでしょう。
現状は「C#」一択!
Unityの最新仕様から考えても、これからUnityを使うならプログラミング言語は「C#」を選択するのがもっとも最適です。
そもそも、Unityが登場した時からC#は選択可能であり、大規模なゲーム開発にも積極的に取り入れられている言語のため、最初から使えるようにしておけばさまざまなゲーム開発に対応できるようになります。
また、C#についての特徴や基礎知識を固めたいという方は、以下の記事で体系的に学習できるようになっていますので参考にしてみてください。
Unityでプログラミング入門
それでは早速Unity上でC#を使ってスクリプトを組んでみましょう!
Unityでスクリプトを実行するには「存在するオブジェクトを作り、それにスクリプトを紐付ける」流れを取る必要があります。
そのため、まずはオブジェクトを作るところから説明してきます。
オブジェクトを作ろう
Unityではスクリプトは、基本的にオブジェクトに持たせることになります。
今回動かすスクリプトを、所持させるオブジェクトを準備しましょう!
「Hierarchyウィンドウ上で右クリック→3D Object→Cube」を選択し、四角いオブジェクトを作成しましょう。
四角いオブジェクトが画面に表示されましたね!
スクリプトを作ろう
次は先ほど作ったオブジェクトに、スクリプトを追加しましょう。
②Inspectorウィンドウ上に、Cubeオブジェクトの詳細が表示されますのでAddComponentボタンを押しましょう。すると小さなウィンドウが表示されます。
③選択肢から「NewScript」を選び、クラス名は「MyObject」にして「Create And Add」ボタンを押しましょう。
これでスクリプトの作成と追加は完了です!
スクリプトを書いてみよう!
作ったファイルをProjectウィンドウ上からダブルクリックしましょう。もしくは先ほどのCubeオブジェクトにひも付けたファイルをダブルクリックでも開けます。
開くと以下のプログラムが最初から記述されていると思います。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class MyObject : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { } }
まずは何も考えずに以下のように記述し直してみてください。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class MyObject : MonoBehaviour { // Use this for initialization void Start () { // ログを表示 Debug.Log("スクリプトが呼び出されました!"); } // Update is called once per frame void Update () { } }
追加されたのは以下の部分だけです。
// ログを表示 Debug.Log("スクリプトが呼び出されました!");
この行だけ追加たら次へ進みましょう!
実行してみよう!
では実行してみましょうか。
実行時に、ちゃんとログが表示されていますね!
おさらいしましょう。
② C#のスクリプトファイルを作り、オブジェクトに持たせる
③ スクリプトを記述する
④ 実行する
今まではこのようなことを行いました。
詳細は後ほど説明するとして、基本的にプログラムを動かすにはこの流れになることを忘れないようにしましょう!
Unity入門者向け「C#」チュートリアル
先ほど見たプログラムの詳細を少し見てみましょう。
名前空間を利用するには
まずはプログラムの頭の部分です。
using System.Collections; using System.Collections.Generic; using UnityEngine;
usingとは指定した名前空間を使用可能にする仕組みです。
今回はusingを使用して「System.Collections」「System.Collections.Generic」「UnityEngine」の3つの名前空間を使用できるようにしています。
今は気にしなくても問題貼りませんが、新しく何かを学ぶ際に、別の名前空間を使用することもあるでしょう。その場合は、また別の名前空間をusingすることになるでしょう。
クラスの宣言方法
public class MyObject : MonoBehaviour { }
クラスの宣言をしています。
Unityで作成され、オブジェクトに紐づくクラスは基本的に「MonoBehaviour」を継承することになります。
またクラス名とファイル名は同じでなければなりません。違うとオブジェクトに追加する際にエラーが出ますので注意してください。
標準関数について
Unityでプログラミングをする時に、まず最初から提供されている標準関数が2つあります。
それはStart()とUpdate()になります。
// Use this for initialization void Start () { } // Update is called once per frame void Update () { }
Start()はこの処理が紐付いているオブジェクトが生成された時に、1度だけ実行される関数になります。例えば、変数の初期化処理などを記述するのに最適でしょう。
Update()は、このスクリプト紐付いているオブジェクトが存在する限り実行され続けます。常に繰り返し処理する必要のあるキー入力関連や、オブジェクトの移動などはここに記述することになります。
ちなみに、Update()に関する基本的な使い方やいくつかの特徴を以下の記事にまとめているので、合わせて参考にしてみてください。
ログを表示するには
Unityのシェーダー入門
Unityではシェーダープログラミングもできるようになっています。
シェーダーは、3Dグラフィックの見た目やカタチ・色などの描画部分を処理するプログラムなのですが、ここを自分好みにプログラミングできるようになると表現の幅がグンと広がります。
ただのオブジェクトも、ライティングやエフェクトをプログラミングすることで見た目がまったく異なる3Dグラフィックを作り上げることができるわけです。
さらに、Unityならコードでプログラミングする以外にもノードベースのビジュアルプログラミングとしてシェーダーを制御できるプラグインも提供されているのが特徴でしょう。
Unityのシェーダーについて、その仕組みや使い方などを以下の記事でまとめているので、ぜひ合わせて確認してみてください。
Unity入門者におすすめの本
Unity関連の書籍はさまざまな種類が本屋さんに並んでいますが、基本的にUnity5に対応している本をまずは見つけるようにしましょう。それ以前のバージョンだと変更点も多いので、これから入門する方にとって迷いやすくなってしまいます。
また、出版日が新しいだけで選ぶのではなく、多くの評価を得ている本を最初の1冊に選択するのがおすすめです。例えば、以下のような入門者向けの本が販売されています。
- Unity5入門 最新開発環境による簡単3D&2Dゲーム制作
- Unity5 3D/2Dゲーム開発実践入門
- 見てわかるUnity5ゲーム制作超入門
いずれの書籍もミニゲームを作りながら、ゲーム開発のロジックやステージ作り、画面UIの設計、プログラミング、書き出しまで一連の流れを把握できるように構成されています。
また、Unityは3Dゲームだけでなく2Dゲームも開発できるようになっているので、将来的に開発するゲームに合わせて本を選択するのも1つです。
初めて学習するならば、ゲーム開発の流れだけでなくUnityのインストール方法からエディタの使い方などの基礎知識も一通り解説されている本が望ましいでしょう。上記に挙げた3つの本はこれらをすべて丁寧に解説しているのでおすすめです。
Unity入門者が独学できるチュートリアルサイト
Unity入門者が実践的なゲーム開発スキルを身につけるために、おすすめの方法としてオンライン講座を受講してみてはいかがでしょうか。
無料の講座から有料まで幅広くネット上に公開されているのですが、なかでも特におすすめは以下のサイトです。
Unityの公式サイトには入門者に最適な無料チュートリアル講座が公開されており、しかも日本語に翻訳されている教材も多く提供されています。2D / 3Dゲームの作り方やゲームロジックの組み立て方、画面UIの設計方法など実践的な内容が盛り込まれているのが特徴です。
また、ドットインストール・Udemyに関しては、無料・有料含めて動画を視聴しながら体系的に開発スキルを学べる構成になっているのが特徴です。
YouTubeにもプログラミング系のチュートリアル動画が増えており、「Unity tutorial」で検索すると英語ですが良質なオンライン講座を発見することができます。日本語のチュートリアルもありますが、内容が充実しているのはやはり海外の動画が多いです。
まとめ
今回はUnityでのC#の使い方を学んできました。
Unity上でC#のプログラムを動かすには、オブジェクトを作りそれに紐付ける必要があります。そのことさえ理解してしまえば、あとは実現したいことを学んで実装していくだけですね!
ぜひいろいろなことを学び実践してみてください。