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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Unity3D

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

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

3807閲覧

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

GOTOken

総合スコア54

Unity3D

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

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2018/06/25 11:38

c#

1public class Bullet : MonoBehaviour { 2 3 public float BulletSpped; 4 private Vector3 m_velocity; // 速度 5 6 // 毎フレーム呼び出される関数 7 private void Update() 8 { 9 // 移動する 10 transform.localPosition += m_velocity*BulletSpped; 11 Destroy(gameObject, 3f); 12 } 13 14 // 弾を発射する時に初期化するための関数 15 public void Init(float angle, float speed) 16 { 17 // 弾の発射角度をベクトルに変換する 18 var direction = Utils.GetDirection(angle); 19 20 // 発射角度と速さから速度を求める 21 m_velocity = direction * speed; 22 23 // 弾が進行方向を向くようにする 24 var angles = transform.localEulerAngles; 25 angles.z = angle - 90; 26 transform.localEulerAngles = angles; 27 28 // 2 秒後に削除する 29 Destroy(gameObject, 2); 30 } 31} 32

c#

1 if (Input.GetKeyDown(KeyCode.Joystick1Button1)) 2 { 3 Instantiate(BulletPrefab,transform.localposition,Quaternion.identity); 4 var nowPos = this.transform.position; 5 6 7 float x = this.transform.position.x - prevPos.x; 8 float y = this.transform.position.y - prevPos.y; 9 10 Vector2 vec = new Vector2(x, y).normalized; 11 12 13 float rot = Mathf.Atan2(vec.y, vec.x) * 180 / Mathf.PI; 14 if (rot > 180) rot -= 360; 15 if (rot < -180) rot += 360; 16 17 prevPos = nowPos; 18 19 Debug.Log("Angle = " + rot); 20 prevPos = this.transform.position; 21 22 23 // BulletPrefab.transform.position += transform.position * bulletSpeed; 24 //target_to_Move 25 } 26 } 27 void setup() 28 { 29 prevPos = this.transform.position; 30 } 31

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

error

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

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

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

投稿2018/06/25 11:51

TomoG12

総合スコア299

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問