Menu
CoddyTech

Nesnelere Bak

Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 34 / 85.

transform.LookAt(point), bir nesneyi ileri ekseni olan mavi z oku dünyadaki bir konumu gösterecek şekilde döndürür. Nesneyi döndürür, hareket ettirmez. Bu projektör, (0, 6, 0) konumundaki bir kulede bulunur ve (4, 0, 10) konumundaki kapıyı hedefler:

void Start()
{
    transform.LookAt(new Vector3(4, 0, 10));
}

Kapı ışıktan daha aşağıda olduğundan projektör hem aşağı eğilir hem de döner: LookAt, yukarı veya aşağı olması fark etmeksizin doğrudan noktayı hedefler. Ardından transform.forward, ışıktan kapıya doğru yönelir.

Start() içinde çağrıldığında LookAt bir kez hedef alır. Update() içinde çağrıldığında her karede yeniden hedef alır; böylece nesne veya nokta hareket ederken nesne noktaya dönük kalır. Argümanı her zaman bir konumdur: LookAt(Vector3.forward), nesne nerede olursa olsun dünyanın merkezinin yanındaki bir nokta olan (0, 0, 1) dünya konumunu hedef alır.

challenge icon

Görev

Orta

Rover'ın gittiği yöne bakmasını sağla.

  1. Update() içindeki yorumun altına if (move != Vector3.zero) yaz; böylece duran rover baktığı yönü korur.
  2. Bu koşulun içine transform.LookAt(transform.position + move); çağrısını ekle.

“Oyna” düğmesine bas ve rover'ı sür: rover'ın önü gittiği yöne döner. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

public class Rover : MonoBehaviour
{
    public float speed = 3f;

    void Update()
    {
        Vector3 move = Vector3.zero;
        if (Input.GetKey(KeyCode.RightArrow)) move += Vector3.right;
        if (Input.GetKey(KeyCode.LeftArrow)) move += Vector3.left;
        if (Input.GetKey(KeyCode.UpArrow)) move += Vector3.forward;
        if (Input.GetKey(KeyCode.DownArrow)) move += Vector3.back;
        move = move.normalized;
        transform.position += move * speed * Time.deltaTime;
        // Rover'ı hareket ettiği yöne bakacak şekilde döndür
    }
}

Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground