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

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

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

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

Q&A

解決済

3回答

2684閲覧

Unity スクリプトエラーの訂正がわかりません。

aluseus-SITE

総合スコア12

JavaScript

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

0グッド

0クリップ

投稿2016/11/16 02:27

編集2016/11/16 06:15

※皆様のコメントを読み、情報が少なすぎたようですので、追加致しました。
よろしくお願い致します。

###前提・実現したいこと
「Unity5入門 最新開発環境による簡単3D&2Dゲーム制作」
というひよこ本で、Unityを独学中です。

スクリプトを、教本通りに入力をしたのですが、
赤線のエラーがでてしまい、どう修正すればよいかわかりません。

プログラミングの知識が全くないので、困っています。
間違っているのですが、間違っているところも見つけられません。
訂正方法をご存知の方教えていただけますでしょうか。

よろしくお願い致します。

###発生している問題・エラーメッセージ
エラーメッセージ画像を添付しました。
赤線箇所はエラーなので訂正が必要。と教本に書かれておりますが、どう直せばよいのかわかりません。。
エラーメッセージ
イメージ説明

###該当のソースコード
1 #pragma strict
2
3 public var prefab : GameObject;
4 public var power;
5
6 function Update () {
7
8 if(input.GetMouseButtonDown(0))
9
10 var bullet = loadbullet();
11
12 var ray : Ray = Camera.main.ScreenPointoRay(Input.mousePosition);
13 var dir : Vector3 = ray.direction.normalized;
14
15 bullet.GetComponent.<Rigidbody>().velocity = dir*power;
16 }
17
18 }
19
20 function Loadbullet () : GameObject {
21 var bullet = GameObject.Intantiate(prefad)as GameObject;
22 bullet.transform.parent = transform;
23 bullet.transform.localposition = Vector3.zero;
24 return bullet;
25 }

###試したこと
教本を見直しました。ローマ字のスペルはあっていると思うのですが、、
初心者なのでまったくわかりません。。。

###補足情報(言語/FW/ツール等のバージョンなど)
言語 Java
ツール/バージョン Unity5.4.1!
教本のスクリプト記述画像イメージ説明
私の作ったスクリプト画像イメージ説明

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

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

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

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

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

coco_bauer

2016/11/16 02:40

ソースコードのどの部分がエラーになったのですか? 
ishi9

2016/11/16 02:45 編集

今書かれている言語はJavaではなくJavaScriptです(正確にはUnityScript)。名前は似てますが、全く違う言語なので専門違いの方の目に入ってしまいます。ですので修正お願いします。
aluseus-SITE

2016/11/16 06:25

修正対応致しました。ご連絡ありがとうございました。
guest

回答3

0

ベストアンサー

よく見るとタイプミスがいっぱいでしたね。

[エラー1個目]
Assets/Cannon.js(10,22) ~ Unknown identifier : 'loadbullet'
「Cannon.js の10行目22文字目の "loadbullet" という識別子(名前)がわかりません」と書かれています。
さらにざっくり言うと「 loadbullet って書かれてるけど、そんな変数や関数知らないよ」ということです。

この情報を元にもう一度ソースを見てみてください。
10行目の loadbullet() は、おそらく20行目の Loadbullet() 関数の打ち間違いですね。
(もしくは、上の方の言うように、Loadbullet を loadbulletに変える)

[2個目]
'ScreenPointtoRay' is not a member ~~ Did you mean 'ScreenPointToRay'?
「ScreenPointtoRay って何? ScreenPointToRay じゃない?」
エラーに出ている通り、これも大文字、小文字の打ち間違いですね。

[3個目]
power という変数の型が定義されていないため、エラーになっているようです。
4行目を public var power : float に直してみてください

[4個目]
'Intantiate' is not a member of 'UnityEngine.GameObject'
「Intantiate なんてメンバは UnityEngine.GameObject にないよ」
これも打ち間違いですね。
「メンバ」については、今後勉強していってください。おそらく参考書にも書かれていると思います。

[5個目]
Unknown identifier : 'prefad'
1個目同様、打ち間違いですね。

[6個目]
2個目と同じようなエラーメッセージですね。
これも打ち間違いです。

投稿2016/11/16 06:45

Kapustin

総合スコア1186

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

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

aluseus-SITE

2016/11/17 01:59

2回目の質問でもお答えいただき本当にありがとうございました。
guest

0

Loadbulletの先頭が小文字になっています。どちらかに統一しましょう。

C#

1var bullet = loadbullet();

投稿2016/11/16 06:24

ishi9

総合スコア1294

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

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

aluseus-SITE

2016/11/17 02:00

ご回答を参考にして、解決致しました。 ありがとうございました。
guest

0

エラーメッセージがあるともう少し絞れるのですが。。
public var prefab で定義したプレファブが設定されていないことはないでしょうか?
このスクリプトがアタッチされているゲームオブジェクトのインスペクタで確認してみてください。

投稿2016/11/16 02:46

Kapustin

総合スコア1186

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

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

aluseus-SITE

2016/11/17 02:01

本当に何度もご回答を頂いて感謝しております。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問