Unityのはじめかた 〜基本操作編〜

#過去の記事
・[Unityのはじめかた 〜インストール編〜](https://qiita.com/yui666a/items/21b3f24610b13009114a)
・[Unityのはじめかた 〜設定編〜](https://qiita.com/yui666a/items/67e535ed7f610601f6a7)

#はじめに
研究室の引継ぎ資料代わりの投稿 part 3

この記事は簡単な操作について書いていくつもりです．
前回同様，なるべく丁寧に書くつもりだけど，わからないところがあったらコメントで聞くか，他の人の記事を読んで欲しいです．

この記事では以下の項目について説明します．
1. オブジェクトの作成
2. 実行方法
3. コンポーネント

#オブジェクトの作成
hierarchyウィンドウの上で右クリックをし，3D Objectを選択する．
すると以下の12種類が表示される．
![1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/432442/86e675db-6157-0c14-bf39-162b098f0c39.gif)
と言っても実際よく使うのは下の画像の4つだけ．あとは平べったい地面を作るplaneや，隆起させたりして地形を作れるTerrian，簡単な壁や画像を表示させたりするときに使うQuadなどがある．
その他に関しては試してもらった方がわかりやすいと思うのでここでは省略．
<img width="918" alt="スクリーンショット 2020-04-17 16.57.02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/432442/6e595163-45ff-07cb-8969-447bd3489bbd.png">

#実行
画面上部中央に3つのボタンがある．
左のボタンをクリックすると実行，中央は一時停止，右はステップボタンである．
実行中に一時停止ボタンをクリックすると一時停止する．一時停止中にステップボタンをクリックすると1フレームづつ進めることができる．
また， Command + P で実行，Shift + Command + P で一時停止， option + Command + P でステップ実行ができる．
<img width="1440" alt="スクリーンショット 2020-04-17 19.50.13.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/432442/2b499541-a8dd-cd2b-8f32-13097c507481.png">


#コンポーネント
オブジェクトに様々なコンポーネントを追加することで，ただの物体でしかなかったオブジェクトが機能や役割を持った物体に変化する
オブジェクトを生成し，オブジェクトを選択するとInspectorウィンドウに色々と表示される．ここに表示されるものがコンポーネントである．
<img width="1440" alt="スクリーンショット 2020-04-17 17.14.05.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/432442/e7a1d712-c70e-ff74-1b8f-0733a1aa06ec.png">
Inspectorウィンドウの一番上にある部分ではオブジェクトの名前やオブジェクトの有効/無効などが設定できる．
オブジェクトの名前はHierarchyウィンドウで右クリック(またはオブジェクトを選択してEnterキー)でも変更できる．
![2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/432442/4aa9d229-f829-ad3f-e22b-fd0f749f5860.gif)

その下にあるTransformコンポーネントではオブジェクトの位置・角度・大きさを調節できる．ルートオブジェクトのポジションやスケールは単位がメートルである．つまり，
ポジション(位置)が X = 1 だと原点からX軸方向に1m移動した位置．
スケール(大きさ)が(1, 1, 1)だと縦・横・高さが1mの立方体．
また，ローテーション（角度）は弧度法(rad)でなく度数法(°)で記述する．
TransformはSceneウィンドウでも変更することができる．
ポジションはwキー，ローテーションはeキー，スケールはrキーを押してからオブジェクトを操作する．出来なかったら画面左上にあるアイコンをクリックしてから操作する．
![3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/432442/a0c1f82e-b1e9-11cc-3408-e8551bb817f9.gif)

このTransformコンポーネントだけは削除することができないが，他のコンポーネントは削除や追加が可能である．
色々なコンポーネントがあるが，よく使われるRigidbodyを用いて説明する．
例えばゲームオブジェクトにRigidbodyコンポーネントを追加すると，物理特性によって制御する事が可能になる．[(※詳しくは公式ドキュメントから)](https://docs.unity3d.com/ja/2018.4/Manual/PhysicsSection.html)
追加方法はAdd Componentをクリックし，追加したいコンポーネントを選択するだけ．

![4.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/432442/73ec0ddf-7334-9747-5db7-7acc6438c1db.gif)
Rigidbodyコンポーネントの Use Gravityにチェックを入れると，実行時にオブジェクトに重力が加わる．

以下の表のようにCubeオブジェクトとSphereオブジェクトにRigidbodyコンポーネントを追加し，SphereオブジェクトのUse Gravityのチェックを外して実行してみると下のgifのようになる．

| ゲームオブジェクト    | Rigidbody          | Use Gravity|
|:-----------------|:------------------:|:------------------:|
| Cube             | ○ |        ○        |
| Sphere|○ |×
|Capsule| ×| ×

![5.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/432442/3d28f819-57d4-020d-8f9a-1eaf10c18b8c.gif)
このようにCubeにのみ重力という力が加わっているためCubeのみ動く．
次に，SphereとCapsuleにCubeを落としてみる．
![6.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/432442/000c7787-994e-03a8-c442-7d16071619f2.gif)

SphereにはRigidbodyが追加されているため，CubeをぶつけるとSphereでも物理演算が行われ，衝突によって加わった力の向きに移動する．
しかし，CapsuleにはRigidbodyが追加されていなかったので衝突してもCubeのみ物理演算が行われ，Capsuleはそのまま停止し続ける．

#おわりに
そろそろ一回飛躍して，去年使ったVRの設定と，同期通信について書いていこうかな．