1
0

More than 5 years have passed since last update.

Unity初心者やってみた4

Last updated at Posted at 2019-03-24

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

(前回の続き)

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

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

    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

  • 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;
        /* 追加ここまで*/
(省略)
     }

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

参考リンク

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

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

  1. Unity2018入門 最新開発環境による簡単3D&2Dゲーム制作 (Entertainment&IDEA)
    1. 通称ひよこ本。と呼ばれるらしい
    2. Unityの基本的な使い方まとめ
  2. Unityの教科書 Unity 2018完全対応版 2D&3Dスマートフォンゲーム入門講座 (Entertainment&IDEA)
    1. Unityの基本的なことも加えて、ゲーム企画、ゲーム設計、C#にもページ割いてた
    2. ひよこ本より、ちょいむずの印象

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

結論

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

C#のTODO表示

書き方

        // TODO 壁の厚みを考慮する

TODOタスク一覧表示

メニューバー > 表示 > タスク一覧
image.png
image.png

参考リンク

コメントをタスク一覧に表示させる方法|ソフトウエア開発部(システム開発・システム設計 株式会社アイロベックス|東京都新宿区)

エディタの視点移動

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

シーンビューの操作 - Unity マニュアル

ここまでできた

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

// 行動予定・行動結果

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0