「Unity/3d/アニメーション/追跡」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→追跡アクション追加) |
(→追跡アクション追加) |
||
行1: | 行1: | ||
==追跡アクション追加== | ==追跡アクション追加== | ||
#敵オブジェクトにAddComponentsでRigidbodyとCapsuleColliderを追加 | #敵オブジェクトにAddComponentsでRigidbodyとCapsuleColliderを追加 | ||
− | # | + | #床オブジェクトのstaticにチェックをつける |
+ | #Window/Navigationから床オブジェクトを選択し、Bakeタブを選択しBakeボタンを押す。 | ||
#敵オブジェクトのAddComponentsからNavMeshAgentを追加 | #敵オブジェクトのAddComponentsからNavMeshAgentを追加 | ||
#敵オブジェクトに以下csのようにNavMeshAgentを追加 | #敵オブジェクトに以下csのようにNavMeshAgentを追加 | ||
#障害物オブジェクトを設置してstaicにチェックを入れる。 | #障害物オブジェクトを設置してstaicにチェックを入れる。 | ||
+ | #障害物オブジェクトにもBakeを設定する。 | ||
<pre> | <pre> | ||
using UnityEngine.AI; | using UnityEngine.AI; | ||
行31: | 行33: | ||
} | } | ||
</pre> | </pre> | ||
− | |||
− | |||
− | |||
− | |||
参考:https://unity.moon-bear.com/3d%E3%83%9B%E3%83%A9%E3%83%BC%E3%82%B2%E3%83%BC%E3%83%A0%E3%80%8C%E3%82%B9%E3%82%B1%E3%82%A2%E3%82%AF%E3%83%AD%E3%82%A6%EF%BC%9A%E5%BB%83%E6%9D%91%E3%81%AE%E6%81%90%E6%80%96%E3%80%8D/navmesh%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%80%8C%E8%BF%BD%E3%81%84%E3%81%8B%E3%81%91%E3%81%A6%E3%81%8F%E3%82%8B%E6%95%B5%E3%82%AD%E3%83%A3%E3%83%A9%E3%80%8D%E3%82%92%E4%BD%9C%E3%82%8B/ | 参考:https://unity.moon-bear.com/3d%E3%83%9B%E3%83%A9%E3%83%BC%E3%82%B2%E3%83%BC%E3%83%A0%E3%80%8C%E3%82%B9%E3%82%B1%E3%82%A2%E3%82%AF%E3%83%AD%E3%82%A6%EF%BC%9A%E5%BB%83%E6%9D%91%E3%81%AE%E6%81%90%E6%80%96%E3%80%8D/navmesh%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%80%8C%E8%BF%BD%E3%81%84%E3%81%8B%E3%81%91%E3%81%A6%E3%81%8F%E3%82%8B%E6%95%B5%E3%82%AD%E3%83%A3%E3%83%A9%E3%80%8D%E3%82%92%E4%BD%9C%E3%82%8B/ |
2020年6月9日 (火) 02:48時点における版
追跡アクション追加
- 敵オブジェクトにAddComponentsでRigidbodyとCapsuleColliderを追加
- 床オブジェクトのstaticにチェックをつける
- Window/Navigationから床オブジェクトを選択し、Bakeタブを選択しBakeボタンを押す。
- 敵オブジェクトのAddComponentsからNavMeshAgentを追加
- 敵オブジェクトに以下csのようにNavMeshAgentを追加
- 障害物オブジェクトを設置してstaicにチェックを入れる。
- 障害物オブジェクトにもBakeを設定する。
using UnityEngine.AI; public class EnemyController : MonoBehaviour { Animator animator; NavMeshAgent agent; void Start() { animator = GetComponent<Animator>(); if (GetComponent<NavMeshAgent>() != null) { agent = GetComponent<NavMeshAgent>(); agent.updateRotation = false; agent.updatePosition = true; } } void Update() { GameObject target = GameObject.Find("Main Camera"); if (target != null && agent != null) { agent.SetDestination(target.transform.position); } } }