public static Vector3 RotateTowards (Vector3 current, Vector3 target, float maxRadiansDelta, float maxMagnitudeDelta);

Parameters

current要处理的向量。
target目标向量。
maxRadiansDelta两个向量之间的距离(以弧度表示)。
maxMagnitudeDelta弧度的长度。

Returns

Vector3 RotateTowards 生成的位置。

Description

将向量 currenttarget 旋转。

该函数类似于 MoveTowards,但向量被视为方向而不是位置。 current 向量将朝 target 方向旋转 maxRadiansDelta 的角度, 但其将准确地落在目标上而不会超过目标。 如果 currenttarget 的大小不同,则在旋转期间对结果大小进行线性插值。 如果为 maxRadiansDelta 使用负值,则向量将朝远离 target 的方向旋转, 直到它指向完全相反的方向,然后停止。

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { // The target marker. Transform target;

// Angular speed in radians per sec. float speed;

void Update() { Vector3 targetDir = target.position - transform.position;

// The step size is equal to speed times frame time. float step = speed * Time.deltaTime;

Vector3 newDir = Vector3.RotateTowards(transform.forward, targetDir, step, 0.0f); Debug.DrawRay(transform.position, newDir, Color.red);

// Move our position a step closer to the target. transform.rotation = Quaternion.LookRotation(newDir); } }