「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);
}
}
}
