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ş durumda


Bir küp, Yerel Gizmo Değiştirici'nde döndürülmüş durumda


Bir küp, Global Gizmo Değiştirici'nde döndürülmemiş durumda


Bir küp, Global Gizmo Değiştirici'nde döndürülmüş durumda

Unity'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

Bu blogdaki popüler yayınlar

Important Classes - Vectors

RequireComponent

Important Classes - GameObject