Version: 2022.3
public static Quaternion operator * (Quaternion lhs, Quaternion rhs);

参数

lhs 左侧四元数。
rhs 右侧四元数。

描述

将旋转 lhsrhs 组合到一起。

Rotating by the product lhs * rhs is the same as applying the two rotations in sequence: lhs first and then rhs, relative to the reference frame resulting from lhs rotation. Note that this means rotations are not commutative, so lhs * rhs does not give the same rotation as rhs * lhs.

using UnityEngine;
using System.Collections;

public class Example2 : MonoBehaviour { float rotateSpeed = 90;

// Applies a rotation of 90 degrees per second around the Y axis void Update() { float angle = rotateSpeed * Time.deltaTime; transform.rotation *= Quaternion.AngleAxis(angle, Vector3.up); } }

public static Vector3 operator * (Quaternion rotation, Vector3 point);

描述

对点 point 应用旋转 /rotation/。

using UnityEngine;
using System.Collections;

public class Example2 : MonoBehaviour { private void Start() { //Creates an array of three points forming a triangle Vector3[] points = new Vector3[] { new Vector3(-1, -1, 0), new Vector3(1, -1, 0), new Vector3(0, 1, 0) };

//Creates a Quaternion rotation of 5 degrees around the Z axis Quaternion rotation = Quaternion.AngleAxis(5, Vector3.forward);

//Loop through the array of Vector3s and apply the rotation for (int n = 0; n < points.Length; n++) { Vector3 rotatedPoint = rotation * points[n]; //Output the new rotation values Debug.Log("Point " + n + " rotated: " + rotatedPoint); } } }