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

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

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

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

Unity

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

Q&A

解決済

1回答

4592閲覧

UnityでMagicaVoxelで作成したモデルが動かせない

seamo1129

総合スコア22

Unity3D

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

Unity

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

0グッド

0クリップ

投稿2018/06/04 04:03

UnityでMagicaVoxelで作成したキャラクターとマップをインポートして、キャラを動かしたいと思い、以下のサイトを参考にしながら作成いたしました。

Unity クリックした位置にObjectを移動させる
http://qiita.com/junya0215@github/items/315946e4c57b2a63a7e7

上記のサイトの手順通りにスクリプトを作成し、動かしたいキャラにアタッチしても以下の警告が出て動きません。

『Failed to create agent because it is not close enough to the』

調査したところ、NavMeshに十分に近くないところでエージェントを作成しているのが原因とのことでしたが、近くに置いても警告が消えません。

また他のサイトでは、インスタンス化したあとにNav Mesh Agentコンポーネントを有効にすると解決方法があるとのことでしたが、そういう風にスクリプトを修正しても警告が出て、キャラクターを動かせません。

解決方法があれば教えて頂きたいです。
宜しくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

「NavMeshとAgentのAgentTypeが合致しているか確認」
Unity Issue Tracker - Custom NavMesh Agent Type causes an error "Failed to create agent" in the Console

「Agent Type settingsをリセットした上でNavMeshをベイクし直す」
Failed to create agent because it is not close enough to the NavMesh | Treehouse Community

「オブジェクトのインスタンス生成後、0.1秒待ってからNav Mesh Agentをオンにする」
Failed to create agent because it is not close enough to the NavMesh - Unity Answers

ページ名の通り。
NavMeshAgentのコンポーネントは、PrefabをInstantiateしてから、AddComponentしないといけない!(。・ˇ_ˇ・。) - sugi-choのコメント / はてなブックマーク

ざっくり調べた限りですがお試しください。

投稿2018/06/04 10:07

sakura_hana

総合スコア11427

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

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

seamo1129

2018/06/04 11:07

ありがとうございます。早速試したいと思います。
seamo1129

2018/06/05 23:01

ご回答頂いた方法を試したところ、警告は止まってのですが、クリックした位置にObjectを移動させることは出来ませんでした。 そこで動かしたいObjectにCapsule ColliderをAdd Componentしたところ、クリックした位置にObjectを移動させることは出来ませんが、キャラをスワイプすると、キャラが移動出来ました。 ただクリックした位置にObjectを移動させることは出来ませんでした。 申し訳ありません。 ソースは以下の通りになっております。 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; public class Move : MonoBehaviour { private NavMeshAgent agent; private RaycastHit hit; private Ray ray; public GameObject obj; void Start() { obj.AddComponent<NavMeshAgent>(); agent = GetComponent<NavMeshAgent>(); agent.GetComponent<NavMeshAgent>().baseOffset = 0; agent.GetComponent<NavMeshAgent>().acceleration = 100; } void Update() { if (Input.GetMouseButtonDown(0)) { ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, 100f)) { agent.SetDestination(hit.point); } } } }
sakura_hana

2018/06/06 00:58

if (Physics.Raycast(ray, out hit, 100f)) の中にDebug.Logを入れて、正しくRaycastが検知されているか確認してください。 恐らく地面にColliderが付いていないとか、Rayの距離が短すぎ(100fの部分)でRayが当たっていない可能性が考えられます。 (CapsuleColliderを付けて動くのはCapsuleColliderにRayが当たって、「現在地からちょっとだけずれた場所」に移動している為だと思われます)
seamo1129

2018/06/06 11:57

>恐らく地面にColliderが付いていないとか ⇒ その通りでした。ColliderをAdd Componetを追加したらクリックした位置にObjectを移動させることが出来ました。色々とありがとうございます。 以上です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問