Quaternionとして保存されるワールド空間でのTransformの回転
Unityは内部的にQuaternionsとして回転を保存します。オブジェクトを回転させるにはTransform.Rotateを使用します。 オイラー角のような回転値を設定したい場合はTransform.eulerAnglesを設定してください。
// Reset the world rotation transform.rotation = Quaternion.identity;
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { void Example() { transform.rotation = Quaternion.identity; } }
import UnityEngine import System.Collections public class ExampleClass(MonoBehaviour): def Example() as void: transform.rotation = Quaternion.identity
他の例:
// Smoothly tilts a transform towards a target rotation. var smooth = 2.0; var tiltAngle = 30.0; function Update () { var tiltAroundZ = Input.GetAxis("Horizontal") * tiltAngle; var tiltAroundX = Input.GetAxis("Vertical") * tiltAngle; var target = Quaternion.Euler (tiltAroundX, 0, tiltAroundZ); // Dampen towards the target rotation transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * smooth);; }
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public float smooth = 2.0F; public float tiltAngle = 30.0F; void Update() { float tiltAroundZ = Input.GetAxis("Horizontal") * tiltAngle; float tiltAroundX = Input.GetAxis("Vertical") * tiltAngle; Quaternion target = Quaternion.Euler(tiltAroundX, 0, tiltAroundZ); transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * smooth); } }
import UnityEngine import System.Collections public class ExampleClass(MonoBehaviour): public smooth as float = 2.0F public tiltAngle as float = 30.0F def Update() as void: tiltAroundZ as float = (Input.GetAxis('Horizontal') * tiltAngle) tiltAroundX as float = (Input.GetAxis('Vertical') * tiltAngle) target as Quaternion = Quaternion.Euler(tiltAroundX, 0, tiltAroundZ) transform.rotation = Quaternion.Slerp(transform.rotation, target, (Time.deltaTime * smooth))