Legacy Documentation: Version 4.5.0

Script language:

  • JS
  • C#
  • Boo
Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Quaternion.operator *

static function operator *(lhs: Quaternion, rhs: Quaternion): Quaternion;
static Quaternion operator *(Quaternion lhs, Quaternion rhs);
static def operator *(lhs as Quaternion, rhs as Quaternion) as Quaternion

Description

Combines rotations lhs and rhs.

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

	// Applies the rotation of
	// extraRotation to the current rotation.

var extraRotation : Transform; transform.rotation *= extraRotation.rotation;

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    public Transform extraRotation;
    void Example() {
        transform.rotation *= extraRotation.rotation;
    }
}
import UnityEngine
import System.Collections

public class ExampleClass(MonoBehaviour):

	public extraRotation as Transform

	def Example() as void:
		transform.rotation *= extraRotation.rotation

static function operator *(rotation: Quaternion, point: Vector3): Vector3;
static Vector3 operator *(Quaternion rotation, Vector3 point);
static def operator *(rotation as Quaternion, point as Vector3) as Vector3

Description

Rotates the point point with rotation.

	// Moves the object along relativeDirection
	// Usually you would use transform.Translate for this

var relativeDirection = Vector3.forward;

function Update () { var absoluteDirection = transform.rotation * relativeDirection; transform.position += absoluteDirection * Time.deltaTime; }

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    public Vector3 relativeDirection = Vector3.forward;
    void Update() {
        Vector3 absoluteDirection = transform.rotation * relativeDirection;
        transform.position += absoluteDirection * Time.deltaTime;
    }
}
import UnityEngine
import System.Collections

public class ExampleClass(MonoBehaviour):

	public relativeDirection as Vector3 = Vector3.forward

	def Update() as void:
		absoluteDirection as Vector3 = (transform.rotation * relativeDirection)
		transform.position += (absoluteDirection * Time.deltaTime)