Menu
CoddyTech

Yörünge Kamerası

Coddy'nin Unity Journey'sinin Fizik ve Oynanış bölümünün bir parçası. Ders 46 / 63.

Bir noktanın etrafında dönmek için bir açı tutun, sabit bir ofseti bu açı kadar döndürün ve sonucu noktaya ekleyin. Vektörle çarpılan rotasyon, döndürme işlemini yapar: Quaternion.Euler(0, angle, 0) * offset ofseti y ekseni etrafında döndürür ve uzunluğu ile yüksekliği aynı kalır. Bu kamera, bir heykelin etrafında saniyede 20 derece döner; her zaman 3 birim yukarıda ve 6 birim uzaktadır:

public Transform statue;
public float speed = 20f;
float angle;

void LateUpdate()
{
    angle += speed * Time.deltaTime;
    Vector3 offset = new Vector3(0, 3, -6);
    transform.position = statue.position + Quaternion.Euler(0, angle, 0) * offset;
    transform.LookAt(statue);
}

Açı 0 olduğunda ofset (0, 3, -6) olur, yani kamera heykelin arkasındadır. Açı 90 olduğunda (-6, 3, 0) olur; heykelin -x tarafındadır. Açı 180 olduğunda ise (0, 3, 6) olur ve heykelin önündedir. Kamerayı hareket ettirmek onu döndürmez, bu nedenle LookAt kamerayı her yeni konumdan heykele doğru yöneltir.

Euler Açılarında olduğu gibi açı, kendi alanınızda tutulur: bir sıçrama olmadan 360'ı aşabilir veya 0'ın altına düşebilir; açıyı sınırlayabilir ya da klavyeden değiştirebilirsiniz. Bunu LateUpdate() içinde yapmak, kamerayı kare boyunca hareket ettikten sonra heykelin ya da oyuncunun konumuna yerleştirir.

challenge icon

Görev

Orta

Oyuncunun kamerayı kulenin etrafında uçurmasını sağla; kamera her zaman kulenin konumundan distance (8) birim uzakta olsun ve hep kuleye baksın. Betik iki açıyı yaw ve pitch içinde tutar:

  • yaw, kameranın kulenin etrafında ne kadar döndüğünü belirtir. Sağ ok açıyı artırır, sol ok azaltır; hız saniyede turnSpeed (90) derecedir. yaw 0 iken kamera kulenin -z tarafındadır; yaw 90 iken -x tarafındadır.
  • pitch, kulenin hizasından bakıldığında kameranın kulenin seviyesinin kaç derece üzerine kaldırıldığını belirtir. Yukarı ok açıyı artırır, aşağı ok azaltır; hız saniyede tiltSpeed (45) derecedir ve açı 10 ile 60 arasında kalır.

Kamera yaw 0 ve pitch 30 ile başlar; bu da onu kulenin konumunun 4 birim üstüne ve 6.93 birim arkasına yerleştirir. Oynat'a bas, etrafta uç ve ardından Kontrol Et'e bas.

Kendin dene

using UnityEngine;

public class OrbitCamera : MonoBehaviour
{
    public Transform target;
    public float distance = 8f;
    public float turnSpeed = 90f;
    public float tiltSpeed = 45f;
    public float yaw = 0f;
    public float pitch = 30f;

    void Update()
    {
        // Ok tuşları yaw ve pitch değerlerini değiştirir.
    }

    void LateUpdate()
    {
        // Kamerayı target etrafına yerleştir ve ona bakmasını sağla.
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Fizik ve Oynanış bölümündeki tüm dersler