Unity初心者やってみた4

前回：https://qiita.com/akagane99/items/dc0291df28f84e192ffd
次回：https://qiita.com/akagane99/items/a7c5912a7ec98da9c7b9
一覧：https://qiita.com/akagane99/items/2dd005511a8d50f5634d

### （前回の続き）

* Unity 5でコインプッシャーゲームを作ろう（中編） | Think IT（シンクイット）
  * https://thinkit.co.jp/story/2015/08/05/6257
* Unity 5でコインプッシャーゲームを作ろう（後編） | Think IT（シンクイット）
  * https://thinkit.co.jp/story/2015/08/19/6311

### バグ対応：コイン出るとこ壁にめり込む

追加した箇所をコメントアウトしてバグ箇所を特定。
下記箇所でバグ発生。

```
	void Update () {

		/* 追加
         * Mathf.Clamp である変数の最小値と最大値を設定することができる。
         * 第一引数は設定したい変数、第二引数は最小値、第三引数は最大値である。
         * Spawner の移動できるx 座標範囲をleftWallPosition のx 座標から、rightWallPostion のx 座標の範囲にしている。
         */
		Vector3 currentPosition = this.transform.position;
		currentPosition.x = Mathf.Clamp(currentPosition.x,　　　　←バグ箇所
		                                leftWallPositionX,
		                                rightWallPositionX);
		this.transform.position = currentPosition;
		/* 追加ここまで*/
(省略)
     }
```

Mathf.Clampのマニュアル確認
どうもやりたい事は、コイン出るとこのX軸を、両方の壁のX軸以上に行かないようにしたいみたい。

Mathf.Clamp - Unity スクリプトリファレンス
https://docs.unity3d.com/ja/current/ScriptReference/Mathf.Clamp.html
> public static int Clamp (int value, int min, int max);

Debug.logでX軸を確認

```
        Debug.Log("currentPosition.x: " + currentPosition.x);
        Debug.Log("leftWallPositionX: " + leftWallPositionX);
        Debug.Log("rightWallPositionX: " + rightWallPositionX);
```

![image.png](https://qiita-image-store.s3.amazonaws.com/0/109904/a6991cd5-36ea-48e2-653d-355d51330dd6.png)

* Clamp (int value, int min, int max);
  * value = currentPosition.x: 0.4
  * min = leftWallPositionX: 2.83   
  * max = rightWallPositionX: -2.9
     * min, maxの値を逆にセットしないと機能しない

min, maxの値を逆して修正

```
	void Update () {

		/* 追加
         * Mathf.Clamp である変数の最小値と最大値を設定することができる。
         * 第一引数は設定したい変数、第二引数は最小値、第三引数は最大値である。
         * Spawner の移動できるx 座標範囲をleftWallPosition のx 座標から、rightWallPostion のx 座標の範囲にしている。
         */
		Vector3 currentPosition = this.transform.position;

		// 修正
		//currentPosition.x = Mathf.Clamp(currentPosition.x,　　　　
		//                                leftWallPositionX,
		//                                rightWallPositionX);
		currentPosition.x = Mathf.Clamp(currentPosition.x,　　　　
		                                rightWallPositionX,
		                                leftWallPositionX);

		this.transform.position = currentPosition;
		/* 追加ここまで*/
(省略)
     }
```

上記で修正できた。
どうも壁作るときに逆に　　　　　　　　　　　　　　　　　　　　　
壁の厚みを計算に入れてないので、まだ壁にめり込むけど、壁の外にはでないようになった。

* https://akagane99.github.io/WebGLGames/coin4/
  * バグ修正。壁めりこむけど壁むこうに行かなくした

#### 参考リンク

* debug.logの文字連結で利用した
  * [方法: 複数の文字列を連結する (C# ガイド) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/csharp/how-to/concatenate-multiple-strings)

### 行動予定: 初めの本1冊買う

下記２冊で悩み中。
レビューを参考程度に、amazonの「なか見！検索」で目次チェック

1. <a target="_blank" href="https://www.amazon.co.jp/gp/product/4797397667/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=4797397667&linkCode=as2&tag=akagane9901-22&linkId=4a3c458fb739ad326494bec06a1bfa41">Unity2018入門 最新開発環境による簡単3D&amp;2Dゲーム制作 (Entertainment&amp;IDEA)</a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=akagane9901-22&l=am2&o=9&a=4797397667" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
    1. <a target="_blank"  href="https://www.amazon.co.jp/gp/product/4797397667/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=4797397667&linkCode=as2&tag=akagane9901-22&linkId=fd9b1a7e06b5875cd8fbef6203832f11"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&MarketPlace=JP&ASIN=4797397667&ServiceVersion=20070822&ID=AsinImage&WS=1&Format=_SL250_&tag=akagane9901-22" ></a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=akagane9901-22&l=am2&o=9&a=4797397667" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
    2. 通称ひよこ本。と呼ばれるらしい
    2. Unityの基本的な使い方まとめ
1. <a target="_blank" href="https://www.amazon.co.jp/gp/product/4797397659/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=4797397659&linkCode=as2&tag=akagane9901-22&linkId=b65e084bf0d224efe1b7f23ac88364c0">Unityの教科書 Unity 2018完全対応版 2D&amp;3Dスマートフォンゲーム入門講座 (Entertainment&amp;IDEA)</a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=akagane9901-22&l=am2&o=9&a=4797397659" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
    1. <a target="_blank"  href="https://www.amazon.co.jp/gp/product/4797397659/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=4797397659&linkCode=as2&tag=akagane9901-22&linkId=f260b21119275450b3b63c35de1b3a1a"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&MarketPlace=JP&ASIN=4797397659&ServiceVersion=20070822&ID=AsinImage&WS=1&Format=_SL250_&tag=akagane9901-22" ></a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=akagane9901-22&l=am2&o=9&a=4797397659" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
    2. Unityの基本的なことも加えて、ゲーム企画、ゲーム設計、C#にもページ割いてた
    1. ひよこ本より、ちょいむずの印象

Kindle版と紙版があるけど、紙かなぁ。うーん。

#### 結論

<a target="_blank"  href="https://www.amazon.co.jp/gp/product/4797397659/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=4797397659&linkCode=as2&tag=akagane9901-22&linkId=f260b21119275450b3b63c35de1b3a1a"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&MarketPlace=JP&ASIN=4797397659&ServiceVersion=20070822&ID=AsinImage&WS=1&Format=_SL250_&tag=akagane9901-22" ></a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=akagane9901-22&l=am2&o=9&a=4797397659" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

* Unityの教科書 Unity 2018完全対応版 2D&3Dスマートフォンゲーム入門講座のKindle版を購入
  *  ゲーム企画気になる。C#について書いてある。JavaやPHPやった経験からプログラミング言語のちょいむずでも多分大丈夫だろうと判断。
  *  Kindle版でプログラミング言語系の本読めるか、使えるか試してみるテスト。PC版のKindleアプリ使って、画面切り替えながら使えばウェブサイトと変わらないはず。
     * ああああこの本画像組みだ。そういや検索できないんだった。ぐすん。

### C#のTODO表示

#### 書き方

```C#
        // TODO 壁の厚みを考慮する
```

#### TODOタスク一覧表示

メニューバー > 表示 > タスク一覧
![image.png](https://qiita-image-store.s3.amazonaws.com/0/109904/738dc651-3d6f-eee4-2511-17e846ec9005.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/109904/23e98282-1861-a822-c688-7e49f840ee2b.png)

##### 参考リンク

[コメントをタスク一覧に表示させる方法｜ソフトウエア開発部（システム開発・システム設計　株式会社アイロベックス｜東京都新宿区）](https://www.ilovex.co.jp/Division/SRD/archives/2004/12/post_18.html)

### エディタの視点移動

思い通りに動かせないのでマニュアル参照
今後メモする。

[シーンビューの操作 - Unity マニュアル](https://docs.unity3d.com/ja/2018.1/Manual/SceneViewNavigation.html)


### ここまでできた

いままでの一覧
https://github.com/akagane99/WebGLGames/blob/gh-pages/README.md


### // 行動予定・行動結果

* 行動予定
    * エディタの視点移動メモる
        * [シーンビューの操作 - Unity マニュアル](https://docs.unity3d.com/ja/2018.1/Manual/SceneViewNavigation.html)
    * 別の入門サイトのゲーム作ってみる。そのうち
      * [Unity入門にオススメ！初心者向けのチュートリアルサイト6選 | プログラミング教室情報サイト【プロナビ】](https://programming-study.com/trouble/unity-tutorial/)
* 行動結果
    * 1.5時間（5.5時間/20時間）