如何让 android 在 waypoints 之间随机移动?

How can I make the android to mvoe between the waypoints randomly?

既然 android 也应该在空中飞行或移动,我想我也应该使用物理学?不确定。

我添加了一些球体作为 waypoints,我希望 android 在它们之间随机移动,包括随机移动范围和旋转速度。例如1-10范围随机移动和旋转速度。

现在当我在 运行 游戏时它做了什么 NAVI (1) 只是循环移动 none 停在小区域不知道为什么,但它在球体。

这个想法是让 NAVI 机器人像出现故障一样行动。

这是 NAVI (1) 及其检查器的屏幕截图:

此屏幕截图是 Waypoints 附带的 Waypoints 脚本:

这是 Waypoints 脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Waypoints : MonoBehaviour
{
    public Transform objectToMove;
    public float moveSpeed = 3.0f;
    public float rotationSpeed = 3.0f;
    public GameObject[] waypoints;
    public int currentWP;

    private void Awake()
    {
    }

    private void Start()
    {
        currentWP = 0;
    }

    private void Update()
    {
        if (waypoints.Length == 0) return;

        var lookPos = waypoints[currentWP].transform.position - objectToMove.position;
        lookPos.y = 0;
        var rotation = Quaternion.LookRotation(lookPos);
        objectToMove.rotation = Quaternion.Slerp(objectToMove.rotation, rotation, Time.deltaTime * rotationSpeed);
        objectToMove.position += objectToMove.forward * moveSpeed * Time.deltaTime;
    }
}

你可以这样做。

//for example you've got 5 waypoints
currentWaypoint = Random.Range(1, 5);

希望对您有所帮助

你永远不会改变currentWP。这意味着在每一帧,你都在向同一个导航点旋转并将机器人移回它。

只有当机器人到达时,您才需要更改当前的 WP。在目标导航点和机器人之间使用 OnTrigger。