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

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

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

RPG (Report Program Generator)とは、IBMの System i(AS/400)サーバ向けのプログラミング言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

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

Q&A

解決済

2回答

443閲覧

unityのマップ作成でエラー

unitybegin_0729

総合スコア15

RPG

RPG (Report Program Generator)とは、IBMの System i(AS/400)サーバ向けのプログラミング言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

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

0グッド

0クリップ

投稿2016/07/29 03:12

###前提・実現したいこと

はじめまして、unity初心者のものです。
UnityでRPGゲームを作ろうと思い、ある入門サイトで
マップの作成を行っていたのですが、エラーが出てしまいました。
この第一回を一通り済ませたいと思っております。
入門サイトは以下のURLの、第1回ダンジョン作ってみるというページです。
http://raharu0425.hatenablog.com/entry/20130131/1359601502
躓いたところは、床の周りに壁を作るスクリプトをC♯で書いたところ(コピペです)で
以下のエラーがでてしまい、コンパイルができませんでした。
どうかご教授の程よろしくお願いします。

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

「現在のコンテキストに'defaultWallPrefab'という名前は存在しません。」

###該当のソースコード

using UnityEngine; using System.Collections; public class MapGenerator : MonoBehaviour { public GameObject wallPrefab; private int default_x_max = 19; private int default_z_max = 19; // Use this for initialization void Start () { //枠を作るメソッド呼び出し CreateMapWaku(); } //枠を作るメソッド void CreateMapWaku() { //ループしながらz軸の上と下2列に枠を作ります for(int dx = 0; dx <= default_x_max; dx++){ Instantiate(defaultWallPrefab, new Vector3(dx, 0, 0), Quaternion.identity); Instantiate(defaultWallPrefab, new Vector3(dx, 0, default_z_max), Quaternion.identity); } //同じくx軸に右と左に枠を作ります for(int dz = 0; dz <= default_z_max; dz++){ Instantiate(defaultWallPrefab, new Vector3(0, 0, dz), Quaternion.identity); Instantiate(defaultWallPrefab, new Vector3(default_x_max, 0, dz), Quaternion.identity); } } ###試したこと 現在のコンテキストに~のエラーを確認後、試しにMapGeneratorの フィールドにdefaultWallPrefabを生成したところエラーはなくなりましたが(この方法があってるのか 分からないです)、別のエラーが出て Unity側で「No MonoBehaviour scripts in the file ,or their names do not match the file name.」 というエラーが出ました。また、エディタ側ではコンパイルエラーはないのに、 「The associated script can not be loaded. Please fix any compile errors and assign a valid script.」 というエラーができて、スクリプトを実行できません。 エディタはmonodiveではないですが日本語文のコメントを英語に直してみたところ、やはりできませんでした。 このエラー文の対処法も併せてご回答頂けると、とてもうれしいです。 ###補足情報(言語/FW/ツール等のバージョンなど) unityのverは5.3.5f1Personalで、使っているエディタはVisual Studio2015です。

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

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

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

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

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

k1000

2016/08/01 01:25

二重投稿のようなので先に投稿されたほうに記入したのですが、回答がついてしまったのでこちらにも。 タグ 'RPG' は説明にもあるとおりIBMのAS/400というオフコン用のプログラミング言語 'Report Program Generator' のことでゲームとはあまり関係ありません。 かわりに、'ゲーム開発' というタグがあるのでそちらを付けたほうが良いかと思います。
guest

回答2

0

ベストアンサー

エラー内容としてhoritomoさんの回答にあるように、defaultWallPrefabという名前の変数が宣言されていないことが原因だと思われます。

てっきりコピペミスかとも思ったのですが、参考にされているサイトを見たところ、確かに2-2のスクリプトにはdefaultWallPrefabは存在しないのですが、3-2のスクリプトにはdefaultWallPrefabが記述されているので、そもそも質問に投稿されたスクリプトはまだ途中だったのではないでしょうか。

3-2のスクリプトではエラーは起きなかったので、そちらのスクリプトを試してみてはいかがでしょうか。

投稿2016/08/06 21:22

urahimono

総合スコア714

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

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

0

「現在のコンテキストに'defaultWallPrefab'という名前は存在しません。」

つまり、変数defaultWallPrefabが宣言されていませんよ。という意味だと思います。
public GameObject wallPrefab; をpublic GameObject defaultWallPrefab;
にすれば、いいのでは?
自分も初心者なんで細かい言い回しの意味とかはあってるかわかりませんが。

投稿2016/07/31 10:46

horitomo

総合スコア26

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問