講義メモ 後半

補足説明(1) プログラムについて

・入力したプログラムをソースプログラムといい、人間用。
・コンピュータ側からみると単なる文字列で解釈不能
・そこで、内部的にコンピュータ用の機械語への翻訳が実行されている。これをコンパイルという
・コンパイルによって生成される機械語ファイルをOBJファイルといい、最近のOSではこのままでは動作しない
・OBJファイルに実行に必要な部品(ライブラリ)を結合して、実行用ファイルを作る必要がある。これをリンクという。
・Visual Studioはコンパイルとリンクをまとめて行うようになっており、これをビルドという
・UnityではMonoの仕掛けにより内部的にビルドを行って、Unity上で動作するプログラムを自動生成している

補足説明(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行開けて文字列リテラル"グッバイ"を表示する処理を追記しよう

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です