Transform.Rotate
Açıklama
GameObject'leri çeşitli şekillerde döndürmek için Transform.Rotate'i kullanın. Dönüş genellikle Euler açısı olarak sağlanır ve Quaternion değil.
Dönüşü dünya eksenlerine veya yerel eksenlere göre belirtebilirsiniz.
Dünya eksenli dönüş, Sahne'nin koordinat sistemi kullanır, bu nedenle bir GameObject'i döndürmeye başladığınızda, x, y ve z eksenleri x, y ve z dünya eksenleriyle hizalanır. Bu nedenle, bir küpü dünya uzayında döndürdüğünüzde, eksenleri dünya ile hizalanır. Unity Editörü'nün Sahne görünümünde bir küpü seçtiğinizde, sol/sağ, yukarı/aşağı ve ileri/geri dönüş eksenleri için dönüş Gizmo'ları görünür. Bu Gizmo'ları taşıyarak küpü eksenlere göre döndürebilirsiniz. Küpü seçimi bırakıp tekrar seçtiğinizde, eksenler dünya hizalamasında yeniden başlar.
Yerel dönüş, GameObject'in kendi koordinat sistemi kullanır. Yeni oluşturulan bir küp, x, y ve z eksenlerini sıfır dönüş olarak kullanır. Küpü döndürmek, dönüş eksenlerini günceller. Küpü seçimi bırakıp tekrar seçtiğinizde, eksenler önceki yönde gösterilir.
Bir küp, Yerel Gizmo Değiştirici'nde döndürülmemiş durumdaUnity'de Rotasyon hakkında daha fazla bilgi için, Unity'de Rotasyon ve Yön sayfasına bakabilirsiniz.
Deklarasyon
public void Rotate(Vector3 eulers, Space relativeTo = Space.Self);
Parametreler
eulers Uygulanacak dönüşün Euler açılarındaki değeri..
relativeTo GameObject'i ya yerel olarak kendi ekseni etrafında döndürüp döndürmemeyi ya da
Sahne'ye göre dünya uzayında döndürmeyi belirler.
Açıklama
Transform.Rotate, eulerAngles.z derece etrafında z ekseni etrafında, eulerAngles.x derece etrafında x ekseni etrafında ve eulerAngles.y derece etrafında y ekseni etrafında (bu sırayla) bir dönüş uygular.
Rotate, Euler açısı olarak bir Vector3 argümanını kabul eder. İkinci argüman dönüş eksenleridir ve yerel eksene (Space.Self) veya küresel eksene (Space.World) ayarlanabilir. Dönüş Euler miktarıyla yapılır.
Deklarasyon
public void Rotate(float xAngle, float yAngle, float zAngle, Space relativeTo = Space.Self);
Parametreler
xAngle GameObject'in X ekseni etrafında döndürülecek derece.
yAngle GameObject'in Y ekseni etrafında döndürülecek derece.
zAngle GameObject'in Z ekseni etrafında döndürülecek derece.
relativeTo GameObject'i ya yerel olarak kendi ekseni etrafında döndürüp döndürmemeyi ya da
Sahne'ye göre dünya uzayında döndürmeyi belirler.
Açıklama
Bu metodun uygulaması, z ekseninde zAngle derecesinde, x ekseninde xAngle derecesinde ve y ekseninde yAngle derecesinde (bu sırayla) bir dönüş uygular.
Rotate, euler açılarını x, y ve z için 3 ayrı float değeriyle alabilir.
Örnek iki küp gösteriyor: bir küp Space.Self (GameObject'in yerel uzayı ve eksenleri) kullanırken diğeri Space.World (/Sahneye/ göre uzay ve eksenleri) kullanıyor. İlk olarak her iki küp de X ekseninde 90 derece döndürülüyor, bu nedenle varsayılan olarak dünya eksenine hizalanmıyorlar. Inspector'da açığa çıkan xAngle, yAngle ve zAngle değerlerini kullanarak farklı dönüş değerlerinin her iki küpe nasıl uygulandığını görebilirsiniz. Küplerin görsel olarak nasıl döndüğünün, mevcut yönlendirmeye ve kullanılan Space seçeneğine bağlı olduğunu fark edebilirsiniz. Değerleri sahne görünümünde küpleri seçerken deneyin ve nasıl etkileşimde bulunduklarını anlamaya çalışın.
using UnityEngine;
// Transform.Rotate örneği
// Bu komut dosyası iki farklı küp oluşturur: biri kırmızı ve Space.Self kullanılarak döndürülür;
// diğeri yeşil ve Space.World kullanılarak döndürülür. Bir sahnede herhangi bir GameObject
// üzerine ekleyin ve çalıştırmak için oynat düğmesine basın. Dönüş, xAngle, yAngle ve
// zAngle kullanılarak inspector üzerinden denetlenir ve düzenlenebilir.
public class ExampleScript : MonoBehaviour
{
public float xAngle, yAngle, zAngle;
private GameObject cube1, cube2;
void Awake()
{
cube1 = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube1.transform.position = new Vector3(0.75f, 0.0f, 0.0f);
cube1.transform.Rotate(90.0f, 0.0f, 0.0f, Space.Self);
cube1.GetComponent<Renderer>().material.color = Color.red;
cube1.name = "Self";
cube2 = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube2.transform.position = new Vector3(-0.75f, 0.0f, 0.0f);
cube2.transform.Rotate(90.0f, 0.0f, 0.0f, Space.World);
cube2.GetComponent<Renderer>().material.color = Color.green;
cube2.name = "World";
}
void Update()
{
cube1.transform.Rotate(xAngle, yAngle, zAngle, Space.Self);
cube2.transform.Rotate(xAngle, yAngle, zAngle, Space.World);
}
}
Deklarasyon
public void Rotate(Vector3 axis, float angle, Space relativeTo = Space.Self);
Parametreler
axis Uygulanacak dönüş ekseni.
angle Uygulanacak dönüş açıları.
relativeTo GameObject'i yerel olarak, GameObject'in kendisine göre döndürüp döndürmeyeceğini
veya sahneye göre dünya uzayında döndürüp döndürmeyeceğini belirler.
Açıklama
Nesneyi, verilen eksen etrafında, belirtilen açı kadar derece döndürür.
Rotate, bir eksen, açı ve yerel veya global parametrelere sahiptir. Dönme ekseni herhangi bir yönde olabilir.
Deklarasyon
public void Rotate(Vector3 eulers);
Parametreler
eulers Euler açılarında uygulanacak dönüş.
Açıklama
Bu metod, eulerAngles.z derecesi kadar z ekseni etrafında, eulerAngles.x derecesi kadar x ekseni etrafında ve eulerAngles.y derecesi kadar y ekseni etrafında dönüş uygular (sırasıyla).
Dönüş, GameObject'in yerel uzayına göre yapılır (Space.Self).
Deklarasyon
public void Rotate(float xAngle, float yAngle, float zAngle);
Parametreler
xAngle GameObject'in X ekseni etrafında döndürülecek derece.
yAngle GameObject'in Y ekseni etrafında döndürülecek derece.
zAngle GameObject'in Z ekseni etrafında döndürülecek derece.
Açıklama
Bu metodun uygulaması, z ekseni etrafında zAngle derecesi, x ekseni etrafında xAngle derecesi ve y ekseni etrafında yAngle derecesi kadar dönüş yapar (sırasıyla).
Dönüş, GameObject'in yerel uzayına göre gerçekleştirilir (Space.Self).
Deklarasyon
public void Rotate(Vector3 axis, float angle);
Parametreler
axis Uygulanacak dönüş ekseni.
angle Uygulanacak dönüş açıları.
Açıklama
Verilen açı ile belirtilen eksene göre nesneyi döndürür.
Rotate'in ekseni, açısı ve yerel veya dünya parametreleri bulunur. Dönüş ekseni herhangi bir yönde olabilir. Dönüş, GameObject'in yerel uzayına (Space.Self) göre gerçekleştirilir.
Bu blog Unity Docs'un Türkçeye çevrilmiş halidir.
Yorumlar
Yorum Gönder