講義メモ ・オリエンテーション ・Unity C# 最初の一歩 p.23 プロジェクトを作成する ・新しいプロジェクト(New Project)をクリック ・テンプレートで「2D (Build-in Render Pipeline)」をクリック ・プロジェクト名「My project…」を英語かローマ字で書き換える  例:2025名前 ・保存場所のフォルダアイコンをクリックして「c:¥」に変更(教室PCでは「ドキュメント」) ・「プロジェクトを作成(Create project)」をクリック ・プロジェクトが開いたら最大化 ※「Unity Editor Update Check」が表示されたら「Skip new version」をクリック ※「Unity is running as adminstrator」が表示されたら、右の「I wish to continue at my own risk」をクリック ※画面レイアウトが変更されていたら「Window」「Layouts」「Default」をクリック p.24 シーンにゲームオブジェクトを追加する ・テキストでは「Create」をクリックになっているが左上の「+」をクリックし一番上の「Create Empty」をクリック ・表示された「GameObject」をクリック(しなくても自動的に開くことが多い) ・右側のInspectorに情報が表示される(されている)のを確認 p.25 ゲームオブジェクトにスクリプトのコンポーネントを追加する ・「Add Component」をクリック ・一番下の「New Script」 ・Nameに「Chap1_4_1」と入力し「Create and Add」 ・Assetに「#」アイコンのChap1_4_1が作成される  ※テキストでは「C#」だが変更されている p.27 スクリプトを編集する ・右側のInspectorの「Chap1_4_1(Script)」の「:」をクリック  (または、「#」アイコンのChap1_4_1をダブルクリックする)  ※テキストでは「歯車」だが「:」(縦3点)に変更されている  ※表示されなければ「GameObject」をクリック ・「Edit Script」をクリック ・Visual Studioが立ち上がる  ※Visual Studioの設定によって「{}」の前後に自動的に改行が入ることがある   テキストとは異なってしまうので、書き換えてから用いると良い  ※共用PCでなければ、設定を変更しておくと便利  例:「ツール」「オプション」で「テキストエディタ」「C#」「コードスタイル」「書式設定」で全チェックをオフ  また「改行」で全チェックをオフ ・9行目に下記を入力 Debug.Log( "ハロー!" ); ・「ファイル」「全て保存」 p.30 スクリプトを実行しよう ・Unityに戻り「▼」(右向き)をクリック ・Consoleが表示されなければ「Console」をクリック ・「ハロー!」の表示を確認 ・確認したら、再度「▼」(右向き)をクリックしてプレイを止める ※プレイを止めない状態で動的なスクリプトやデータの変更ができるが結果に残らないので避けた方が良い 補足説明(2) プログラム言語について ・C#はOS記述用に開発されたC言語の末裔の一つで、近い存在にJava言語、C++などがある。 ・これらをC系言語という。 ・C系言語に共通なのが「=」記号の存在で、「等しい」というが全くないことに注意  ※「等しい」は「==」p.72参照。なお、JavaScriptなどでは「===」もある) ・C#とJavaは似通っているが、アークテクチャ(構築様式)は異なる ・C言語に「オブジェクト指向」の考え方を導入したのがC++、C#、Javaなど ・オブジェクト指向は「部品化」「再利用」「チーム開発」をやりやすくするための仕組み ・なお、C系ではない言語(Pythonなど)でもオブジェクト指向が導入されているが、導入のレベルはばらつきがある。 p.032 スクリプトの構造を見てみよう:補足 ・名前空間(name space):大量の部品や機能を導入すると名前が重複したり、管理が難しくなるので、グループ化して「空間」にして分割して名前をつけたもの。名前空間が異なれば同じ名前の部品があってもOK ・プログラムから部品を使う時は「名前空間名.」を前につけるが、長くなるので、よく使う名前空間名はあらかじめ「利用の宣言」をしておくと省略できる ・この機能が「using 名前空間名;」で、UnityのプログラムではUnityが提供する名前空間の利用定義として「using UnityEngine;」を記述するのが基本(3行目)。 ・そして、必要に応じてC#が提供する名前空間の利用定義も追記する(1,2行目) ・なお、Visual Studioでは、まだ使っていない名前空間のusingは灰色で示されるので、全く使う予定がなければ「using」を行ごと消しても構わない ・System.CollectionsはC#が提供するデータ構造用部品群(コレクション)の名前空間で、効率の良いデータ構造を利用できる(後述) ・System.Collections.Genericは、コレクションの汎用性を高める仕組み(ジェネリック)の名前空間でデータ型を柔軟に扱える(後述) p.032 スクリプトの構造を見てみよう:補足:続き ・クラスはオブジェクト指向の基本概念で、プログラムやデータを構成する単位。 ・C#/Javaなどでは、プログラムの実行部はクラスの中におく必要がある ・クラスは「設計図」のイメージで、実行指示によってコンピュータの主記憶上に実行用の実体がクラスから生成されて動作する ・プログラムやプログラムが含まれるプロジェクトには複数のクラスを置くことができるので、識別用のクラス名をつける ・よって、プロジェクト内で重複しないクラス名にすること ・なお、C#ではクラス名は単なる識別用なので、ソースファイル名と一致する必要はない ・プロジェクトは複数のソースファイルとクラスで構成できるが、他のソースファイルなどの「外部」に見せる必要があれば「public」にする。 ・Unityのプログラムの場合、StartとUpdateを持つ主たるクラスは「public」にする。 ・5行目の「: MonoBehaviour」の説明は後述(p.132) p.032 スクリプトの構造を見てみよう:補足:ブロック ・C#のクラスはブロック構造になっており「{」でブロック開始、「}」でブロック終了を示す ・ブロックの中にはさらにブロックをおけるので、階層構造になっている ・よって、内側のブロックがわかりやすくなるように字下げ(インデント=開始位置の前にスペースを入れること)を行う(Visual Studioが自動的に行う) ・ブロックの中身は空でも構わない(3章まではUpdateの中は空で良い) p.032 スクリプトの構造を見てみよう:補足:Startメソッド ・クラスの中で実行用の記述部分をメソッド(手続き)という ・Unityではプログラムの起動時に実行される特別なメソッド名が「Start」と決まっている ・そして、Startメソッドのブロック内に記述された内容が、プログラムの起動時に実行される ・詳細は後述(p.131) p.033 スクリプトの構造を見てみよう:補足:コメント文 ・先頭が「//」で始まる行はコメント文(文末コメント)で、文末までがメモ書きになり、ビルドには用いられない ・よって、プログラムを読みやすくしたり管理・改良しやすくするための説明文を書くために用いる ・なお、業務によってはコメントの必要性、記述形式、記述内容のルールが決められていることが多い  例:作者/変更者名、更新履歴、変更時の留意点など ・Unityでは7行目、12行目のようにUnity側でコメント文を挟み込んでくることがある ・また、C#ではVisual Studio側でコメント文を挟み込んでくることがある p.033 スクリプトの構造を見てみよう:補足:リテラル ・プログラムの内部にデータを記述したものをリテラルという ・Chap1_4_1では、"ハロー"がリテラル ・リテラルには種類があり、文字を0文字以上並べたもの(文字列)を""で挟んだものを文字列リテラルという ・よって、"ハロー"は文字列リテラル 提出:アレンジ演習: Chap1_4_1 ・9行目の下に1行開けて文字列リテラル"グッバイ"を表示する処理を追記しよう 次回予告:p.034「演算子」から