Unity'de Nesne Dokunuşunda Metni Görüntüleme

Oyununuzda bir nesneye dokunduğunuzda metnin nasıl görünmesini sağlayacağınızı öğreneceğiniz bu Unity eğitimine hoş geldiniz. Bu basit etkileşim projenize sürükleyici bir unsur katabilir. Bu eğitim hem mobil hem de masaüstünde çalışacaktır.

1. Adım: Bir Unity Projesi oluşturun

Henüz yapmadıysanız, Unity'i açıp bir yeni 3D proje oluşturarak başlayın. Tercih ettiğiniz geliştirme ortamı için gerekli varlıkların kurulu olduğundan emin olun.

Adım 2: 3D Nesneyi İçe Aktarın

Oyuncuların etkileşimde bulunacağı öğeyi temsil eden bir 3D nesnesini sahnenize aktarın. Bu bir küp, küre veya oyununuza uygun herhangi bir nesne olabilir.

Adım 3: Çarpıştırıcı Ekle

3B nesnenize bir çarpıştırıcı bileşeni ekleyin. Bu, diğer nesnelerin onunla ne zaman etkileşime girdiğini algılamasını sağlayacaktır. Yaygın çarpıştırıcı türleri arasında nesnenizin şekline bağlı olarak Kutu Çarpıştırıcısı, Küre Çarpıştırıcısı veya Örgü Çarpıştırıcısı bulunur.

Adım 4: Kanvas ve Metin Oluşturun

Sahne hiyerarşisine sağ tıklayıp UI'yı ve ardından Canvas'ı seçerek bir UI Canvas oluşturun. Kanvasın içine mesajınızı görüntüleyecek bir Metin bileşeni ekleyin.

Adım 5: Kanvası Dünya Alanına Ayarlayın

Canvas bileşeninin İşleme Modunu 'World Space' olarak değiştirin. Bu, tuvalin oyununuzun 3B alanında var olmasını sağlar.

Adım 6: Kanvası Konumlandırın

Kanvasın konumunu 3B nesnenizle aynı hizada olacak şekilde ayarlayın. Bu, tetiklendiğinde metnin nesnenin yakınında görünmesini sağlar.

Adım 7: Komut Dosyasını Yazın

Oyuncunun nesneyle etkileşime girdiğini tespit edecek bir script yazın. Etkileşim oluştuğunda Kanvas'ı etkinleştirin ve Metin bileşeninin içeriğini ayarlayın. Aşağıdaki örnek komut dosyasını kontrol edin:

'ObjectInteraction.cs'

using UnityEngine;
using UnityEngine.UI;

public class ObjectInteraction : MonoBehaviour
{
    public GameObject canvas;
    public Text displayText;

    private void Start()
    {
        canvas.SetActive(false);
    }

    private void Update()
    {
        // Use inline conditional to determine input position based on platform
        Vector3 inputPosition = (Input.touchCount > 0) ? Input.GetTouch(0).position : (Vector3)Input.mousePosition;

        // Raycast to determine if the touch or click hits the object
        Ray ray = Camera.main.ScreenPointToRay(inputPosition);

        RaycastHit hit;
        if (Physics.Raycast(ray, out hit) && hit.collider.gameObject == gameObject)
        {
            // Activate the canvas and set the text
            canvas.SetActive(true);
            displayText.text = "Your message here!";
        }
    }
}

Adım 8: Nesneye Komut Dosyası Ekleme

Etkileşim mantığını yönetecek ve gerekli tüm değişkenleri atayacak bir C# betiğini 3B nesnenize ekleyin.

Adım 9: Oyununuzu Test Edin

Oyununuzu çalıştırın ve etkileşimi test edin. Belirlenen nesneye tıkladığınızda veya dokunduğunuzda metin görünmelidir.

Önerilen Makaleler
Unity'de Nesne Havuzunun Uygulanması
Envanter ve Eşya Üretim Sisteminin Unity İçinde Yapılması
Unity'de Etkileşimli Nesneler Oluşturma
Unity'de Kinetik Etkileşimleri Uygulamak
Çekmece ve Dolapların Özel Anahtarlarla Birlik İçinde Açılması
Unity'de Envantersiz Alma ve Bırakma Sistemi
Unity Geliştiricileri için En Faydalı Kod Parçacıkları