【Unity×ChatGPT】頻繁に使う処理のサンプルコードを検証

今回は、Unityにおいて実装することが多いと思われる処理を、ChatGPTにサンプルコードを答えてもらう形で、そのソースコードがちゃんと思惑通りの処理をしてくれるのか検証してみたいと思います。

正確性にはまだまだ問題があるということもあり、どのようなソースコードを回答してくれるのか、そしてどんな処理を行うのか等楽しみですね。

スポンサーリンク

【Unity×ChatGPT】頻繁に使う処理のサンプルコードを検証

基本的には、望んだ通りのサンプルコードを返してくれるのがありたがいわけですが、もしかすると的外れな内容が返ってくる場合もあるんでしょうかね?

とりあえず、ゲーム開発初心者の方がより効率良く学習出来る事を意識して初心者がよく実装するであろう処理に関するサンプルコードを教えてもらうことにします。

①Cubeを左右に移動させたい

聞き方によって内容が変わるのかもしれませんが、「UnityでCubeを左右に移動させるスクリプトを教えてください。」とChatGPTに質問してみました。

すると、返ってきたソースコードが次の通りです。

矢印キーを使ってとは入力していませんが、気を利かせてなのか矢印キーを使った左右入力に応じてCubeを移動させるようなスクリプトになっていますね。

移動に関しては「transform.Translate」を使用していることが分かります。何故かは分かりませんが、主に移動を専門として扱うのがTranslateメソッドだからですかね。

実際にCubeをシーン上に配置してこのスクリプトをCubeにアタッチすると、上記のような挙動をします。

②スコアを表示したい

続いてはスコアの表示に関するスクリプトです。

ゲーム開発初心者の方が、ミニゲームを作る際に非常によく実装することが多いスコア表示に関する内容ですね。

「Unityでスコアを表示するスクリプトを教えてください。」

すると、最初にこういったスコアを管理するスクリプトが返ってきました。

このスクリプトをスコアを管理するオブジェクトにアタッチすることで、スコアの加算と表示が可能になるといった内容のソースコードです。

更に続けて例として、Cubeに当たったらスコアを1加算して、Cubeを破棄する内容のスクリプトを教えてもらいました。

このコードは、CubeにアタッチしてPlayerタグを持っているプレイヤーオブジェクトに接触した際に、スコアの加算及び破棄を行うわけですね。

しかし、よく見るとnamespaceが無くなっていますね。これをこのままコピペしてもエラーになっちゃいますね。

まぁ頭に「using UnityEngine;」を追加するだけで良いわけですけど、この辺はまだ精度が不十分なのかな?と感じました。

また、私のようにTextではなくTextMeshProを使っている場合には、ScoreManagerに「using TMPro;」を追記して、テキストオブジェクトも「public TextMeshProUGUI scoreText;」に変えてあげないといけませんね。

今回の場合は、「Text」を使用する前提で回答しているようですかね。

これらを踏まえて先ほど作成した矢印キーで動かせるCubeをプレイヤーに見立てて、スコアを表示する処理を実装してみます。

こんな感じですね。

事前準備として私はPlane、Canvasの作成やScoremanagerオブジェクト等は自分で実装しましたが、これらの方法についても「キャンバスを使ってスコアを表示させたい」等と質問することで、その手順を教えてくれます。

ですから、初心者の方でもこれらの質問を組み合わせることでかなり開発効率をアップさせることが出来るんじゃないかと思いました。

また、初心者にとってありがたいのがコメントが表示されているので、特定の行が何を行っているのかが分かるので、よりUnityの学習が捗ると思いますね。