39 lines
1.1 KiB
C#
39 lines
1.1 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
|
|
namespace Pathfinding.Examples {
|
|
using Pathfinding.RVO;
|
|
|
|
/// <summary>
|
|
/// Player controlled character which RVO agents will avoid.
|
|
/// This script is intended to show how you can make NPCs avoid
|
|
/// a player controlled (or otherwise externally controlled) character.
|
|
///
|
|
/// See: Pathfinding.RVO.RVOController
|
|
/// </summary>
|
|
[RequireComponent(typeof(RVOController))]
|
|
[HelpURL("https://arongranberg.com/astar/documentation/stable/manualrvoagent.html")]
|
|
public class ManualRVOAgent : MonoBehaviour {
|
|
RVOController rvo;
|
|
|
|
public float speed = 1;
|
|
|
|
void Awake () {
|
|
rvo = GetComponent<RVOController>();
|
|
}
|
|
|
|
/// <summary>[ManualRVOVelocity]</summary>
|
|
void Update () {
|
|
var x = Input.GetAxis("Horizontal");
|
|
var y = Input.GetAxis("Vertical");
|
|
|
|
var v = new Vector3(x, 0, y) * speed;
|
|
|
|
// Override the RVOController's velocity. This will disable local avoidance calculations for one simulation step.
|
|
rvo.velocity = v;
|
|
transform.position += v * Time.deltaTime;
|
|
}
|
|
/// <summary>[ManualRVOVelocity]</summary>
|
|
}
|
|
}
|