Unity Pahfinding 插件中直接用RVOController来移动角色

using UnityEngine;
using System.Collections;
using Pathfinding.RVO;

public class SimpleRVOAI : MonoBehaviour {
    RVOController controller;

    // Use this for initialization
    void Awake () {
        controller = GetComponent<RVOController>();
    }

    // Update is called once per frame
    public void Update () {
        // Just some point far away
        var targetPoint = transform.position + transform.forward * 100;

        // Set the desired point to move towards using a desired speed of 10 and a max speed of 12
        controller.SetTarget(targetPoint, 10, 12);

        // Calculate how much to move during this frame
        // This information is based on movement commands from earlier frames
        // as local avoidance is calculated globally at regular intervals by the RVOSimulator component
        var delta = controller.CalculateMovementDelta(transform.position, Time.deltaTime);
        transform.position = transform.position + delta;
    }
}

代码做的事情就是,获取RVOController组件,并且每帧设置一个前方很远的点,它告诉局部回避系统,它想以一个10每秒的速度移动,但是如果条件允许,它可以以12每秒的速度移动。如果你都添加好了,那么点击PLAY按钮,它会以一个稳定的速度前行。

需要注意的是,RVOController本身并不处理移动,一些游戏如果想使用transform.translate的话,也可以加一个CharacterController,甚至一些人可能想使用rigidbody也是没有问题的。但是要知道,它的移动速度是取决于RVOController的velocity计算的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值