見出し画像

[見なきゃ損!!]chatgpt×unityで絶対必須なプロンプト

皆さんこんにちは!うらさきです。今回はchatgptを使ってコードを書いてもらうときに絶対に使用するべきプロンプトについて解説していきます!


プロンプトって?


プロンプトとはchatgptに送る質問のことです。質問の仕方によって返ってくる返事も変わってくるのでプロンプトはとても大事!

実際にコードを書いてもらうとき


ここで一つ補足
今回使うコードは少しバグが起こっているコードにはなっていますが、
あくまでも質問の仕方がメインなのでその辺はご了承くださいね。
そして僕の場合は動画を見ながら作った正常に動くコードがあります。すべてchatgptに任せる場合でも
そんなに大差はありませんが、修正が多くなるのは理解してください


まず質問をしてみましょう

もう少しオリジナリティが欲しいのです。反射するたびに加速していくプログラムを次のプログラムに付け足してみてください。言語はc#です

ここで重要なのは自分が使っているコードを張り付けてあげることです。続きになっていると勘違いすると要所要所が変わっていたり足りないものがあるかもしれないので、必ず自分が使っているコードを質問の度に張り付けましょう、そうすることで自然とコードを覚えてくれたりするので便利です!!
今回はこちらのコードを張り付けました(Chatgptに書かせてからの場合はそのコードに付け足してもらえばいい)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ball : MonoBehaviour
{
    private Rigidbody2D myRigidBody;

    public float speedX = 10;
    public float speedY = 10;
    public GameManager myManager;

    // 追加:角度の範囲
    public float minAngle = 15f;
    public float maxAngle = 75f;

    // Start is called before the first frame update
    void Start()
    {
        myRigidBody = this.gameObject.GetComponent<Rigidbody2D>();

        Vector2 force = new Vector2(speedX, speedY);

        myRigidBody.AddForce(force);
    }

    // Update is called once per frame
    void Update()
    {

    }

    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.tag == "Finish")
        {
            Destroy(this.gameObject);
            myManager.GameOver();
        }
        else if (collision.gameObject.tag == "Player")
        {
            // ボールがプレイヤーに衝突した場合、反射する
            float hitAngle = (transform.position.x - collision.transform.position.x) * 5f;
            hitAngle = Mathf.Clamp(hitAngle, -maxAngle, maxAngle);
            hitAngle = Mathf.Clamp(hitAngle, minAngle, maxAngle);

            Vector2 newDirection = new Vector2(Mathf.Cos(hitAngle * Mathf.Deg2Rad), Mathf.Sin(hitAngle * Mathf.Deg2Rad));
            myRigidBody.velocity = newDirection * myRigidBody.velocity.magnitude;
        }
    }
}

エラーや思った通りに行かなかったとき


先ほどのコードに付け足された反射のコードを試したところ、少しおかしくなってしまいました。
まずエラーが起きた場合のプロンプトはこうしましょう
エラーコードを張り付け
chatgptが書いたコードを張り付ける
エラーの原因となっている部分を修正してください

こうすればエラー箇所はなくなります!

エラーが多くあった場合は一つ一つ解決していきましょう。(二つエラーコードを張った際は一つしか修正されませんでした)私はこれでどこでエラーが起きているのか調べるのにも使いました!!

原因を伝えるのも大事

chatgptに原因となっているコードを予測でもいいので伝えてあげましょう


ボールがブロックに衝突した場合、反射する // ボールがプレイヤーに衝突した場合、反射する はunityの物理エンジンで自動で反射してくれるのでいらないと思います。どれがおかしくなる原因だと思うのでそれらのコードを削除したコードを書いてください

chatgptはどこがどんなプログラムなのか書いてくれているのでいらないと思った部分をコピペして削除して書いてもらうようお願いしましょう!
僕はこれでエラーは起きなくなりました(上記に書いた通り正常にプレイはできるが思った通りにはならなかった)これは途中であきらめたのもあったので数をこなせば解決できるはずです!頑張りましょう!

chatgptはやばい

やはりchatgptはやばいです、言語を何も知らない僕でも簡単にゲームを改造することができてしまいました。これからの時代は言語がわからなくてもゲームやウェブサイトが作れるようになってしまいそうですね、中学生ながらAIの進化には驚いています

皆さんもやってみたいと思っている題材などあればchatgptと一緒にやってみましょう!わかりやすく教えて中学生でもわかるようにとプロンプトを書くと独学でも簡単に理解を深めることができるでしょう!!
#chatgpt

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