paiza times

paizaがお届けする、テック・キャリア・マネジメント領域における「今必要な情報」を届けるWebメディア

logo

paizaがお届けする、テック・キャリア・マネジメント領域の「今必要な情報」を届けるWebメディア

初心者向け・C#のメソッド入門とUnityで2Dキャラ動かしてみた


f:id:paiza:20180910132940p:plainこんにちは。倉内です。

paizaラーニングでは、動画レッスンとブラウザ上で実行できるオンラインエディタを使って、環境構築なしで未経験者でもプログラミングが学べます。

今回、C#入門講座に新レッスン「C#入門編6: メソッドを理解しよう」が追加されましたのでご紹介します。

メソッドとは、よく使う機能をまとめて何度も呼び出せるようにした一つのかたまりのことです。初心者のうちはメソッド=関数という認識で構わないと思います。

動画と演習課題でプログラミング学習ができる「C#入門編」は全編無料となっておりますのでぜひご覧ください。

また、以前の記事でUnityのインストールとチュートリアルを実行したので、今回はC#でスクリプトを書いてみましょう。そのあと簡単な2Dゲームの作成にも挑戦します。

C#入門編:新規レッスン「メソッドを理解しよう」

paizaラーニングの「C#入門編」は現在6レッスンあり、今回追加された「C#入門編6: メソッドを理解しよう」は、全9チャプターです。

本レッスンではメソッドについて、足し算や掛け算といった簡単な問題からRPGの攻撃シーンを想定した具体的な問題まで実際に演習課題を解きながら学べます。

また引数と戻り値の定義の仕方や、変数の有効範囲であるスコープについても解説しています。特にスコープは、メソッドやループ処理を使いこなすための重要な機能です。

実はこれまでのレッスンですでにたくさんメソッドを使ってきました。

たとえば、動画でも演習課題でも必ず目にする以下のコードも戻り値のないvoidという型のメソッドです。(戻り値についても動画で解説しています。)

public static void Main()
{
    /* ここに処理を書く */
}


また、以下はWriteLineメソッドを使って標準出力をする処理です。

Console.WriteLine("Hello paiza");


単純な処理を書くだけではあまりメソッドの便利さが分からないかもしれませんが、処理が複雑になり長くなってくると実感できると思います。

動画は繰り返し見たり、分かりづらかった箇所へ戻したりもできますので、実際に自分でコードを書きながら理解していきましょう。

初めてプログラミングに触れたときは、なんとなくで書いていた部分もあると思いますが、このレッスンを受講してしっかりと理解して使いこなせるようにしていきましょう。

 

UnityでC#を使ってみる

「3Dゲームを作ってみたい!」とはやる気持ちはあるのですが、まだUnityインストールとチュートリアルを動かしただけという超初心者の状態なので…まずはUnityでC#の簡単なスクリプトを書いてみることにします。

今回、以下の記事を大変参考にさせていただきました。各ウィンドウやメニュー・ツールバーの説明も記載されているので初心者はひと通り読むといいと思います。

miyagame.net

①新規プロジェクト作成

Unityのバージョンを最新にしたらちょっとUIが変わっていたので、念のため新規プロジェクト作成の画面も載せておきます。ここでは「2Dゲーム」を選んでください。

以降、画像が小さい場合はクリックで多少拡大されます。(PCから閲覧時のみ)

f:id:paiza:20190515190637p:plain

[作成]をクリックしてこの画面になったらOKです。

f:id:paiza:20190515190729p:plain
 

②スクリプトファイルの作成・アタッチ

オブジェクト作成 → スクリプトファイル作成 → オブジェクトとスクリプトをひも付け(アタッチ)という流れで操作します。

オブジェクトの作成

HierarchyウィンドウからCreate>Create Emptyと選択し、とりあえず空のオブジェクトを作りました。

f:id:paiza:20190515191125p:plain

ちょっと分かりづらいですがSampleSceneの中にGameObjectというのが生まれました。

f:id:paiza:20190515191425p:plain

スクリプトファイルを作成

今度はProjectウィンドウのCreate>C# Scriptを選択し、スクリプトファイルを作成します。

f:id:paiza:20190515192938p:plain

名称はあとで変えなくていいように作成時に決めておきましょう。(あとで変更するとクラス名との不一致とかで面倒なことになるため。)ここでは「TestScript」としました。

f:id:paiza:20190515193607p:plain

オブジェクトとスクリプトをアタッチする

TestScriptをHierarchyウィンドウのGameObjectにドラッグアンドドロップすればアタッチできます。

アタッチできたかを確認するにはオブジェクトを選択した状態でInspectorウィンドウを見てください。TestScriptが表示されていたらOKです。

f:id:paiza:20190515194043p:plain
 

③コンソールに「Hello paiza!」と表示させる

それではTestScriptを書き換えて「Hello paiza!」と出力できるようにしてみましょう。

スクリプトをVisual Studioで編集

Unityインストール時にVisual Studioも一緒にインストールしているはずなので、さきほど作った「TestScript」をダブルクリックするとVisual Studioが起動します。(評価期間が過ぎたとアラートが出た場合はMicrosoftのアカウントを作成しログインすることで無償版を使い続けることができます。)

f:id:paiza:20190515194142p:plain

Startメソッドに以下のように記述します。

Debug.Log("Hello paiza!");

f:id:paiza:20190515194437p:plain

変更を保存しUnityに戻ってみると、さきほど記述した部分が反映されています。

f:id:paiza:20190515194727p:plain
 

ゲーム実行する

そういえば出力を確認するためのコンソールウィンドウを表示していませんでした。

メニューのWindow>GeneralからConsoleを選択してください。ポップアップ状態だと見づらいので適当にドッキングしておきます。

f:id:paiza:20190515194923p:plain

Unityの画面上部にある[▶]ボタンがゲーム実行です。

クリックしてみると……コンソールに「Hello paiza!」と表示されました!

f:id:paiza:20190515195116p:plain

表示が確認できたら[ || ]ボタンで停止しておいてください。

(番外編)RPGの攻撃シーンを書く

これだけだとちょっと物足りないので、「C#入門編6: メソッドを理解しよう」のチャプター5で学んだRPGの攻撃シーンの簡易版をスクリプトに記述してみましょう。

※コードは上記チャプター内からコピペできます。(一部改変してます。)

f:id:paiza:20190515195619p:plain

見ていただくと分かるように「C#入門編」で習った四則演算、if文やfor文、メソッドなど書き方は同じです。

さきほどと同様[▶]ボタンで実行するとコンソールに敵への攻撃が出力されます。

f:id:paiza:20190515195416p:plain

paizaラーニングではブラウザ上でコードを書いて実行していますが、Visual StudioとUnityでも基本的なところは変わりません。

今回はコンソールウィンドウへ出力しただけで、実体のあるオブジェクトに対して何か処理を加えたわけではありませんが、基礎中の基礎を知ることは今後2Dゲームや3Dゲームを作る際にきっと役に立ちます。

Unityでゲームを作成してみる

ここまで来たらUnityでゲームを作ることにチャレンジしてみましょう!

さきほど紹介させていただいたサイトにサンプルゲームの作成手順がたくさん掲載されています。

miyagame.net

この中の「スケボーで移動しよう」を作成してみます。

画像を用意する必要がありますが、基本的にはここまでにやってきた「C# Scriptに処理を書いてオブジェクトにアタッチする」で実現できるので、ぜひご自分の環境でやってみてください。

f:id:paiza:20190516103044p:plain

静止画だとまったく伝わりませんが、マウスクリックで女の子が右側にスーッと滑っていく処理になっています。絵心があれば足の下にスケボーをつけてあげられたのに…。Unity Recorderというアセット(プラグインみたいなもの)を使えば再生シーンを動画でキャプチャすることもできます。

f:id:paiza:20190516103628p:plain

これはUpdateメソッドに以下の処理を書いて横方向(x軸)に動かしているのですが、

// マウスをクリックしたらスピードが上がる
if (Input.GetMouseButtonDown(0))
{
    this.speed = 0.1f;
}

// 女の子をx軸方向に移動
transform.Translate(this.speed, 0, 0);

Translateメソッドの引数を変えてy軸に動かす処理にして、上から地上に舞い降りてくるようにすれば「美少女が空から降ってきた…!?」を演出できるのでは…?と考えてみたり。そんな感じで自分でアレンジするのも面白いと思います。

ちなみにこの女の子(RINちゃん)はpaizaが提供している『エンジニアが死滅シタ世界~アンドロイドとふたりぼっちで生きろ~』というプログラミングゲームのキャラクター(を好みに合わせて着せ替えた姿)です。

C#で問題を解くことも可能なので、興味がある方はぜひプレイしてみてください。

また、今回3Dは試せなかったので、ブロック崩しを作る記事を紹介しておきます。作成手順については以下にとても丁寧に書かれているので参考にしてみてください。

qiita.com
 

まとめ

今回はpaizaラーニングに新しく追加された「C#入門編6: メソッドを理解しよう」の紹介と、UnityでC#のスクリプトを書いて、簡単な2Dゲームを作る手順をお伝えしてきました。

メソッドの理解は実際の開発では必須なので、ぜひ動画学習で身につけてくださいね。

Unityについてはまだビジュアルのすごい3Dゲームまではたどりついていませんが、「あれ…Unityって意外と取っ掛かりはそんなに難しくないかも?」と思っていただけたらうれしいです。

最初は既存のソースコードをコピペでもいいので、実際に動かしてみて面白さを知ると学習も進みます。

「C#入門編」は今後も新レッスンを追加予定ですので、楽しみにお待ちいただければと思います!





paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。

詳しくはこちら

paizaラーニング

そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

詳しくはこちら

paizaのスキルチェック

paizaのおすすめコンテンツ

Webセキュリティ入門 ハッカー入門 Webセキュリティ講座がスタート!CVは内田真礼さん! Python✕AI 機械学習入門講座 CVに上坂すみれさんを起用!人気の機械学習講座を公開中!
paiza転職 paiza新卒 EN:TRY paizaラーニング 記事内に記載している情報は、記事公開時点でのものとなります。 Copyright Paiza, Inc, All rights reserved.