版本: Unity 6 (6000.0)
语言英语
  • C#

Quaternion.operator *

建议修改

成功!

感谢您帮助我们改进 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提供的每项建议更改,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们改进 Unity 文档的质量。

关闭

取消

切换到手册
public static Quaternion operator *(Quaternion lhs, Quaternion rhs);

参数

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

描述

组合旋转 lhsrhs

通过乘积 lhs * rhs 进行旋转等同于按顺序应用两个旋转:先应用 lhs,然后应用 rhs,相对于由 lhs 旋转产生的参考系。请注意,这意味着旋转不是可交换的,因此 lhs * rhsrhs * lhs 产生的旋转不同。

using UnityEngine;
using System.Collections;

public class Example2 : MonoBehaviour { float rotateSpeed = 90;

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

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

描述

使用 rotation 旋转点 point

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); } } }