見出し画像

Unity スクリプト学習 「bool」で判断!?

おはこんばんちは!

ChatGPT&Copilotのにらめっこが日々のデフォとなりつつあります。
つかChatGPTとCopilot優秀だけど、どっか抜けててむしろそれを添削することでスキルを上げているような感じです。
AI→人間というかAI+人間で仲良く学習っていう感じです。
いつかAIが上回って人類って要らないんじゃ?ってなよくあるダークな未来はノーサンキューだけどネ。

んで、本題。

艦尾ミサイル発射管が1~24番まで存在する。
1~12番は前方にミサイル射出する
13~24番は後方にミサイル射出する
前方にミサイル射出する1~12番は本艦が前進する速度が加算されているので、それに見合った【ゆっくり射出フェーズ】メソッドを呼び出し
後方にミサイル射出する13~24番は本艦のスピードが相殺されてしまうので、【ゆっくり射出フェーズ】を飛ばし【初期加速】メソッドを呼び出す

if文でcount<12で判断して~って思っていたがChatGPTさんは
boolでおkとのこと・・・!?

void FireMissile(int index)
    { // ミサイルを発射
        if (Targets.Count == 0)// ターゲットがいない場合、ミサイルは発射されない
        {
            Debug.Log("No targets available.");
            return;
        }
        Target target = Targets[0];// ターゲットを取得(TEST用に最初のターゲットを固定している)
        Transform REMPoint = REMPoints[index]; // ミサイルの発射管 (REMPoint) を取得

        // ミサイルが後方発射かどうかを判断
        // boolを宣言しつつ、そのbool値は 12以上ならtrue 違うならfalse を代入。宣言とtrueかfalseか、という設定もしてしまう魔法のような記述である(キリッ
        bool isRearFire = (index >= 12); // 13〜24のミサイルは後方発射

        GameObject RmissileGO = Instantiate(REMPrefab, REMPoint.position, REMPoint.rotation); // REMミサイル(ゲームオブジェクト)を生成(第四引数が無い為hierarchyルートに配置される)
        REM Rmissile = RmissileGO.GetComponent<REM>(); // ↑上でInstantiateで生成されたオブジェクト内のREMクラスを取得しREM Rmissileに入れる
        Rmissile.Launch(this, REMPoint, target,isRearFire); // REMクラスのLaunchメソッドを引数This=AAクラスと、REMPoint、target、isRearMissileを付けて呼び出す
        RmissileGO.transform.SetParent(REMPoint); // 発射管を親に設定し、ミサイルを発射管の子オブジェクトにする
        // デバッグログでミサイルの発射とターゲットを確認
        Debug.Log("Missile launched with target: " + target.name + ", Is rear missile: " + isRearFire);
    }

ほう、、、boolでifっぽいことできるのね!それ、知らんかったんとってんチントンシャン

で、動画はこちら

なにかアドバイス、ご意見、ご要望ございましたら、激しくどんどこさ、いらっしゃいませ!

この記事が気に入ったらサポートをしてみませんか?