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

参数

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

返回

Vector3 RotateTowards 生成的位置。

描述

将向量 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); } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961