UnityではじめるC# 2日目

今日の学習内容

  • chap4:Unityプログラミングの基本

◇イベント関数:Start、Update関数などのこと。ほかにはOnMouseClickやOnMouseDrag、OnColisionEnter、OnColisionExitなどがある。
Update関数などの定期イベントはフレーム事に呼び出される。fpsが60くらいだとすると、Update関数もそのぐらいの頻度で呼び出される。

定期イベントにはFixedUpdate、Update、LateUpdateの三種類がある。

  • LateUpdate関数:すべてのゲームオブジェクトの更新が完了した後でやりたい処理がある場合に用いる。一般的には全キャラクターの移動が完了したあとで、それに合わせてカメラを移動する処理などがある。
  • FixedUpdate関数 : 固定間隔で呼び出される 定期イベント。3Dゲームなどで1フレームの処理がパソコンで処理しきれないほど重い場合には、描画しきれないフレームが間引かれ、fpsが減ってしまうことがある。これによって不都合が生じる場合に用いられる。

◇画像の表示

2DゲームではTextureTypeがSprite(2D and UI)になっている必要がある。
Generate Mip Mapsは3Dゲームのテクスチャ向けの設定で、有効にしているとスマートフォン上で画像がぼやけることがあるので、2Dゲームの場合にはオフにする。

SpriteRendererコンポーネント:Spriteタイプの画像を表示するコンポーネント。Spriteに指定された画像がゲームオブジェクトの外観として表示される。

◇インスペクタ―上の「プロパティ」

インスペクター上のTransformコンポーネントでPositionなどのプロパティを調整することで、オブジェクトの正確な位置などを調節できる。
ここでいう「プロパティ」とはC#のプロパティとは異なるものであるが、Unityのクラスが持つプロパティやメンバー変数はたいていインスペクタ―上に表示されるので、同じものと考えてもあながち間違えではない。
スクリプトコンポーネントをオブジェクトにアタッチすると、スクリプト上でpublicで宣言されているメンバ変数はインスペクタビューから値を設定できるようになることからも、ほぼ同じものといえるだろう。

◇コンポーネントの取得

GetComponent関数:ゲームオブジェクトが持っているコンポーネントを取得する関数。下記の表のような種類が存在する。

メンバー働き
gameObject変数
このコンポーネントがアタッチされているゲームオブジェクト
transform変数ゲームオブジェクトにアタッチされたTransform
GetComponent関数ゲームオブジェクトから指定した型のコンポーネントを取得
GetComponentChildren関数子オブジェクトのコンポーネントを取得
GetComponentParent関数親オブジェクトのコンポーネントを取得
GetComponents関数ゲームオブジェクトから指定した型のコンポーネントをすべて取得する(同じコンポーネントが複数アタッチされている場合に使用)

◇Transformクラスの利用

Transformコンポーネント(C#から見るとTransformクラスのインスタンス)を取得し、Transformクラスのメンバー変数を使うことが良くあるが、Transformクラスは次の表のようなメンバー変数を持っている。

メンバー働き
localPotion変数ローカル空間(親オブジェクト基準)の位置
localRotation変数 ローカル空間(親オブジェクト基準)の回転
position変数ワールド空間の位置
rotation変数ワールド空間の回転
localScale変数親オブジェクトを基準にした相対的な拡大縮小率
LookAt関数対象をTransformの方向を向かせる?
TransformPoint関数ローカル空間からワールド空間へpositionを変換

ここでpositionはVector3型の変数であるが、Vector3はクラスではない。
Vector3は構造体と呼ばれ、classではなくstructで定義する。クラスに似ているが、intなどと同様に値として扱われる。変数から変数に代入された場合には、クラスであればインスタンスを参照する状態になるが、Vector3では別のものにメンバー変数がコピーされた状態になる。

◇Prefab→割愛

とりあえず4章を終わらせました。

4章は簡単なスクリプトを書いてみて、オブジェクトを動かしてみる感じでした。
内容的にもキホンのキの部分という感じなので、Unity5の教科書には載っていない部分だけピックアップして書き出してみています。
4章のようなオブジェクトをスクリプトコンポーネントで制御することは、すでにUnity5の教科書を通してやってきているので、スクリプトを読んで理解できたら再現はしない方針にしました。

chap5では脱出ゲームを作るようなので、こちらはしっかりスクリプトの意味を理解しつつ、実際に手を動かして取り組んでみようと思います。

ここまで読んでくださりありがとうございます。
それでは、この辺で。

コメントを残す

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