質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • Unity

    4004questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • Unity3D

    1294questions

    Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

  • Unity2D

    883questions

Insantiateする際にエラーが出て、生成されない

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 135

GOTOken

score 39

public class Bullet : MonoBehaviour {

    public float BulletSpped;
    private Vector3 m_velocity; // 速度

    // 毎フレーム呼び出される関数
    private void Update()
    {
        // 移動する
        transform.localPosition += m_velocity*BulletSpped;
        Destroy(gameObject, 3f);
    }

    // 弾を発射する時に初期化するための関数
    public void Init(float angle, float speed)
    {
        // 弾の発射角度をベクトルに変換する
        var direction = Utils.GetDirection(angle);

        // 発射角度と速さから速度を求める
        m_velocity = direction * speed;

        // 弾が進行方向を向くようにする
        var angles = transform.localEulerAngles;
        angles.z = angle - 90;
        transform.localEulerAngles = angles;

        // 2 秒後に削除する
        Destroy(gameObject, 2);
    }
}
        if (Input.GetKeyDown(KeyCode.Joystick1Button1))
        {
            Instantiate(BulletPrefab,transform.localposition,Quaternion.identity);
        var nowPos = this.transform.position;


        float x = this.transform.position.x - prevPos.x;
        float y = this.transform.position.y - prevPos.y;

        Vector2 vec = new Vector2(x, y).normalized;


        float rot = Mathf.Atan2(vec.y, vec.x) * 180 / Mathf.PI;
        if (rot > 180) rot -= 360;
        if (rot < -180) rot += 360;

        prevPos = nowPos;

        Debug.Log("Angle = " + rot);
        prevPos = this.transform.position;


           // BulletPrefab.transform.position += transform.position * bulletSpeed;
            //target_to_Move
        }
    }
    void setup()
    {
        prevPos = this.transform.position;
    }


このように記述したところ、

rgumentException: The Object you want to instantiate is null.
UnityEngine.Object.CheckNullArgument (System.Object arg, System.String message) (at C:/buildslave/unity/build/Runtime/Export/UnityEngineObject.cs:239)
UnityEngine.Object.Instantiate (UnityEngine.Object original, Vector3 position, Quaternion rotation) (at C:/buildslave/unity/build/Runtime/Export/UnityEngineObject.cs:151)
UnityEngine.Object.Instantiate[Bullet] (.Bullet original, Vector3 position, Quaternion rotation) (at C:/buildslave/unity/build/Runtime/Export/UnityEngineObject.cs:206)
playerCont.Update () (at Assets/Scripts/playerCont.cs:41)


このようなエラーがエディタ内で出現し、見たところ、Instantiateが出来ない。という状況になっているのがわかったのですが、具体的な内容が理解できていません。解決方法を模索しました。
Quaternion.identity 原因はここにあると思いましたが、identity以外を試そうとした際に、すべてにエラーが返るため解決方法がわかりませんでした。
この場合の解決方法はどのようにすればよいのでそ

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

BulletPrefabに何も入っていない。もしくは正常に入っていないのではないでしょうか?

同じエラーログが出ている記事がありましたので、こちらを確認してみてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    [初心者]UnityでFPSを作っています。

    前提・実現したいこと unityでFPSを作っています、今銃から弾を発射するscriptで悩んでいます。 発生している問題・エラーメッセージ scriptを作成後bull

  • 解決済

    Unity ヒンジ 角度 C#

    Unityの2Dヒンジ、または3Dヒンジで2つのオブジェクト間の角度をC#で取得、値を代入するにはどうすればよろしいのでしょうか?

  • 解決済

    Instantiateで生成したものが必ず90度回転している

    前提・実現したいこと モンスターを倒したらモンスターが消えた場所にコインを出したい。 Unityの3Dです。 発生している問題・エラーメッセージ 自分の持っている知識で

  • 解決済

    3Dゲームでバイオハザードと同じ様な操作を(自機に)したい。

    ・カメラの位置は自機の頭部の少し後ろ上に固定。 ・カメラのポジションはxとy軸のみ変更可能。 ・W,S,A,Dのそれぞれのキーで前進、後退、左移動、右移動。 上記の三点を行いた

  • 解決済

    自キャラが向いてる方向に攻撃をしたい

    3Dゲームの自機にビームの様な攻撃をしたいのですが真っすぐ(Z軸)にしか弾が飛んでいきません。 自機が向いてる方向に攻撃を行うにはどの様なコードを記述すればいいのか教えて頂きたいで

  • 解決済

    Unity: instantateで複製されるprefabの名前を変更したい

    前提・実現したいこと instantateで複製される際にコピーの名前をhoge0 hoge1...hoge5などのように変更し、かつ 一定の数値を超えるとまた0に戻るようなプログ

  • 解決済

    unityのInstantiateについて

    前提・実現したいこと z軸方向に一定のスピードで進むプレイヤーがいる。プレイヤーの前方から、一定のタイミングで敵が発生するようにしたいです。めっちゃ初心者です・・・ヒントをください

  • 解決済

    ランダムなタイミングで攻撃する敵を作りたい。

    現在、Unityで3Dシューティングゲームを制作しています。 そこで質問させていただきたいのですが、敵が攻撃してくるタイミングをランダムにできないでしょうか。 具体的に言うと、敵が

同じタグがついた質問を見る

  • Unity

    4004questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • Unity3D

    1294questions

    Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

  • Unity2D

    883questions