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

参数

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

描述

将旋转 lhsrhs 组合到一起。

旋转 lhs * rhs 的乘积与按以下顺序应用两个旋转的效果相同:先应用 lhs,然后相对于 lhs 旋转生成的参考帧应用 /rhs/。注意,这意味着旋转不满足交换律,因此 lhs * rhs 产生的旋转效果不同于 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); } } }