21:51こんにちは、ブログを拝見して頂きありがとうございます。(._.)スクリプトの書き換えをチョコチョコしていた時にフィールド名を変更し、ブログの記事ではそこを直さずにいたりして間違った記述になってしまった箇所がいくつかあるようです。間違えていた箇所は修正しておきました。00:41最近Unityを勉強し始めて、毎日こちらで楽しく学ばせていただいています。わかりやすいご説明でここまで順調に進んできていたのですが、ここで躓いてしまいました。object」エラーが出てしまいます。transform.parent.GetComponent(MoveEnemy);」も入れてあるのですが、実行時にGetState()の部分でこのエラーが出てしまいます。MoveEnemyのメソッドにアクセスしなければこのエラーは出ず、正しく反応するようなのですが。04:45ありがとうございます(._.)moveEはMoveEnemyスクリプトを取得して参照を入れておくフィールドで、このスクリプトを設定しているSearchAreaゲームオブジェクト?の親の要素にMoveEnemyが設定されている必要があります。transform.parent.GetComponent(MoveEnemy);}↑のような感じですね。その為、MoveEnemyスクリプトが親のゲームオブジェクトに設定されていない場合にそのようなエラー内容が表示されると思います。コンポーネントの取得方法についてはhttps://gametukurikata.com/program/getcomponentを参照して頂くと階層を辿ってコンポーネントを取得する方法がわかるので、親の要素以外にMoveEnemyを設定した場合に参考にして頂けると思います。フィールドをprivateからpublicにするかC#なら[SerializeField]、JavaScriptなら@SerializeFieldアトリビュートを指定して宣言し、インスペクタであらかじめ敵キャラクターに設定したMoveEnemyを設定してしまうと簡単です。MoveEnemy;↑のように宣言するとインスペクタでMoveEnemyを設定する事が出来るので、SearchAreaを持つ敵キャラクターに設定したMoveEnemyスクリプトをインスペクタで設定してあげると、インスタンスが設定されていないというエラーは解消されると思います。moveEはインスペクタで設定する為、Start関数等でMoveEnemyスクリプトを探す必要がありません。12:07ご返信ありがとうございました。transform.parent.GetComponent(MoveEnemy);Debug.Log(“Test”);}こうやってみたらLogの掃き出しすらしませんでした。{」の行を追加で入力しなおして、今までの行を消してみたところ動きました。大文字小文字も一致していたので、何か余分な空白などがあったのかなぁと思っております。こんなことも気を付けるべき点なんだなと勉強になりました。引き続きこちらで勉強させていただきます。13:41関数のオーバーロードをしている部分で以下のようなエラーが出ます。19:23同じエラーが出た事がないので、MonoDevelopの.Netのバージョンがわたくしのよりも高いので出てるエラーかもしれませんね。わたくしのパソコンでは新しいUnityにバージョンアップ出来ないので、その確認が出来ません。オーバーロードをしている関数の定義と、それを呼び出しているスクリプトはどんな風に記述しているかを書いて頂くと何かわかるかもしれません。position;}↑のように別の関数として扱って問題ありません。07:28なるほど、確かに複数コライダを付けて一つのスクリプトで処理しようとすると、それぞれ別個に扱いたい場合にOnTriggerStayやOnTriggerExit内でどのコライダに反応したのか振り分けられないですね。納得しました!丁寧なご回答ありがとうございます。12:48こんにちは、最近Unityを勉強し始めた初心者です。SearchAreaを敵キャラのボーンの階層の下に別に作る理由について教えていただけないでしょうか?敵キャラ(z@walk)に直接BoxColliderをAddComponentしてMoveEnemy内にOnTriggerStayとOnTriggerExitを記述し処理を振り分ければ、SearchAreaスクリプトを作成せずに済み、スクリプトが一つにまとまるので一覧性が高まって良いのかなと思ったのですが、そうしない意図についてご説明いただけないでしょうか?それともUnityでゲームを作るにあたってはこのような処理をそれぞれ細く分けた方が後々楽になってオススメということでしょうか?もしよろしければご意見を頂けますと幸いです。20:50おそらくほとんどの場合でMoveEnemyにコライダの検知であるOnTriggerStayやOnTriggerExitを付けて判別しても問題はないと思われます。わたくしが空のゲームオブジェクトに検知範囲を別にして取り付けた理由としては、「敵が主人公を検知する用に取り付けたコライダ」と「敵自身の当たり判定のコライダ」を別個に扱いたかったからです。主人公検知エリア用のコライダだけでなく、CharacterControllerコンポーネントのコライダが他のエリアに侵入した時も発生します。幽霊のような敵キャラクターを作り、物理的に当たらないとすると主人公キャラクターで幽霊を検知したいと思った時に、検知用コライダと主人公の当たり判定用のCharacterControllerのコライダの両方で判定されてしまう可能性があります。一応説明は付けましたが・・・、ただ単純に別個に扱いたかったからかもしれませんね。(^_^;)わたくしの作り方が正しいというわけでもないので、試してみて問題なければあえて同じにする必要はないので色々試してみてください。18:18無事動きました!お忙しい中ありがとうございました。state;}と記述したら直りました。これで正解かは不安ですが・・・。20:05記事内の処理が抜けていたようです。ご報告ありがとうございます。m(__)m記事は修正しておきました。処理はその記述で問題ないと思います。この頃の記事は関数名の最初の文字が小文字になっているのでそれも直しておきました。06:41コードを全文載せてくださると助かります。12:29コード全文を載せると見てる方にはすごく便利になる事はわかってはいるのですが(実際全部載せてる記事が多い)諸々の理由により今後どうしようか迷っている所です。申し訳ありませんがコードを追加、修正してスクリプトを作成して頂けると助かります。15:55各スクリプトの宣言の部分がどうしてもわからないのです。お願いします、どうか教えてください。transform.parent.GetComponent(MoveEnemy);}MoveEnemyはすでに元のスクリプトがないので以下のようになっています。不要な変数等は削除してください。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。サイト内検索が出来ますプロフィール管理人のかめくめちゃんです。(-_-)メールはこちらにお願いします(記事への質問はコメント欄にお願いいたします)。kamekumechan@gmail.comいずれはSIRENやバイオハザードみたいなアクションゲームを作りたいと思っています。ゲームシナリオが書けないので面白いゲームはなかなか作れません・・・・。(^_^;)名前の由来はカメが好きだからです。プロフィールになってないな・・・・(-.-)Unityをこれから始める人へこれからUnityを使ってみようという方はUnityを使った3Dゲームの作り方(かめくめ)の歩き方Unityを使った3Dゲームの作り方(かめくめ)で、はじめてUnityの学習をする時の当ブログの記事を読む順番を書きました。21:43の記事に記載の順番で見て頂くとUnityの基本的な使い方がわかり、簡単なTPSゲームの作成までが出来ます。Д`)シクシク...お知らせ2020/02/15個人的にUnity2019.3.1f6をインストールしました。2020/01/31個人的にUnity2020.1.0a21(アルファ版)をインストールしました。2018/08/07コメント欄へのわたくしの返信は停止しております。わたくしに出来る事は既に記事にしてあるので、ブログ右上の検索窓を活用してください。(._.)またブログの最初の方の機能を積み上げていく記事に関しての疑問点は当ブログ記事のスクリプトの説明と寄せられた質問への回答Unityを使った3Dゲームの作り方(かめくめ)の機能積み上げ形式の記事のスクリプトの説明と寄せられた記事の機能についての質問への回答を掲載しています。21:41も参照してみてください。コメントの返信はありませんが、回答は記事に反映されている可能性があります。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。Unityを使った3Dゲームの作り方(かめくめ).。