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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Unity

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

Q&A

解決済

2回答

457閲覧

JavaScript(Unity)のエラーについて

ZZkgnf

総合スコア7

Unity3D

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Unity

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

0グッド

0クリップ

投稿2017/10/03 16:26

編集2017/10/04 03:49

###前提・実現したいこと
Unityの練習のため、JavaScript(Unity版)を使って簡易的なFPSゲームを製作しようとしています。
弾を撃つための機能を実装中に以下のエラーメッセージが発生しました。
NullReferenceException:Object refrence not set to an object

###発生している問題・エラーメッセージ

NullReferenceException:Object refrence not set to an object

弾が生成されるが、そのまま地面にボトボトと落ちる。

###該当のソースコード
JavaScript(Unity)

public var bullet : GameObject; public var spawn : Transform; public var speed : float = 1000; function Update () { if(Input.GetButton("Fire1")){ Shot(); } } //Shot関数 function Shot (){ var obj : GameObject = GameObject.Instantiate(bullet); obj.transform.position = spawn.position; obj.Rigidbody.AddForce(transform.forward * speed); }

###試したこと
1番最後のobj.Rigidbody.AddForce(transform.forward * speed);
を一度消去して再生すると、エラーメッセージが発生せずに、目の前にボトボトと弾が落ちました。
この文に問題があるのではないかと感じました。
###補足情報(言語/FW/ツール等のバージョンなど)
JavaScript/Unity 2017.1.1f1 Personal

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

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

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

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

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

think49

2017/10/03 23:32

JavaScriptに存在しないエラー NullReferenceExceptionですが、UnityScriptというものなのでしょうか。公式にはJavaScriptと銘打っているようですが、JavaScriptとは別物ですね…。 https://loumo.jp/wp/archive/20130805085511/
ZZkgnf

2017/10/03 23:38

ありがとうございます。修正しておきます。
guest

回答2

0

ベストアンサー

obj.rigidbody.AddForce(transform.forward * speed);
ここが原因です。
Unity5からrigidbodyを直接呼ぶことは出来ません。(Unity4以前では出来ました)
「obj.rigidbodyがnullなのにAddForceは出来ませんよ」というエラーです。

obj.GetComponent<Rigidbody>().AddForce(transform.forward * speed);
こうしてみてください。

投稿2017/10/04 00:57

sakura_hana

総合スコア11427

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

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

ZZkgnf

2017/10/04 03:52

とてもわかりやすいです!ありがとうございます!
ZZkgnf

2017/10/04 06:52

っと、ごめんなさい!今度は Shot.js(26,33)BCE0043:Unexpected token:). と出てしまいました…… ()を消してみたり色々とためしたのですが…… たびたび申し訳ないです
ZZkgnf

2017/10/04 08:25

ありがとうございます! 一生懸命勉強します!
guest

0

Unityに詳しくありませんが、関係しそうなUnityの資料を書いておきます。
https://docs.unity3d.com/jp/530/Manual/NullReferenceException.html
JavaのNullPointerExceptionのようなものでしょうか。
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/NullPointerException.html
JavaScript なら「TypeError: null is not a object」のエラーを出力しそうです。

Re: ZZkgnf さん

投稿2017/10/03 23:43

think49

総合スコア18162

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

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

ZZkgnf

2017/10/04 03:52

ありがとうございます。参考になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問