Kontrol Mouse di Unity

Dalam tutorial ini, Anda akan mempelajari cara menerapkan kontrol dasar tetikus di Unity. Kami akan membahas deteksi input tetikus, penanganan klik tetikus, gerakan tetikus, dan berinteraksi dengan objek permainan menggunakan tetikus.

Menyiapkan Proyek

Sebelum kita mulai membuat kode, mari kita buat proyek Unity sederhana:

  1. Buat proyek Unity baru.
  2. Tambahkan objek 3D atau 2D baru ke pemandangan (misalnya, Kubus atau Sprite).
  3. Buat skrip C# baru bernama MouseController dan lampirkan ke Kamera utama atau GameObject kosong mana pun.

Mendeteksi Masukan Mouse

Unity menyediakan metode bawaan untuk mendeteksi input mouse. Kita dapat menggunakan metode Input.GetMouseButtonDown untuk mendeteksi penekanan tombol mouse.

using UnityEngine;

public class MouseController : MonoBehaviour
{
    void Update()
    {
        if (Input.GetMouseButtonDown(0)) // Left mouse button
        {
            Debug.Log("Left mouse button pressed");
        }

        if (Input.GetMouseButtonDown(1)) // Right mouse button
        {
            Debug.Log("Right mouse button pressed");
        }
    }
}

Menangani Klik Mouse

Untuk menangani klik mouse pada objek, kita perlu menggunakan Raycasting. Raycasting memungkinkan kita mendeteksi jika klik mouse bersinggungan dengan objek permainan apa pun dalam adegan.

using UnityEngine;

public class MouseController : MonoBehaviour
{
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;

            if (Physics.Raycast(ray, out hit))
            {
                Debug.Log("Hit: " + hit.transform.name);
                // Perform actions on the hit object here
            }
        }
    }
}

Gerakan Tikus

Mendeteksi pergerakan mouse di Unity dapat dilakukan menggunakan Input.GetAxis. Kita dapat menggunakan sumbu Mouse X dan Mouse Y untuk mendapatkan pergerakan mouse dalam arah horizontal dan vertikal.

using UnityEngine;

public class MouseController : MonoBehaviour
{
    void Update()
    {
        float mouseX = Input.GetAxis("Mouse X");
        float mouseY = Input.GetAxis("Mouse Y");

        if (mouseX != 0 || mouseY != 0)
        {
            Debug.Log("Mouse moved. X: " + mouseX + " Y: " + mouseY);
        }
    }
}

Berinteraksi dengan Objek Game

Mari kita perluas skrip kita untuk berinteraksi dengan objek permainan. Kita akan mengubah warna objek saat diklik.

using UnityEngine;

public class MouseController : MonoBehaviour
{
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;

            if (Physics.Raycast(ray, out hit))
            {
                Renderer renderer = hit.transform.GetComponent();
                if (renderer != null)
                {
                    renderer.material.color = Random.ColorHSV();
                }
            }
        }

        float mouseX = Input.GetAxis("Mouse X");
        float mouseY = Input.GetAxis("Mouse Y");

        if (mouseX != 0 || mouseY != 0)
        {
            Debug.Log("Mouse moved. X: " + mouseX + " Y: " + mouseY);
        }
    }
}

Kesimpulan

Kami telah membahas dasar-dasar kontrol tetikus di Unity. Kami mempelajari cara mendeteksi input tetikus, menangani klik tetikus, melacak gerakan tetikus, dan berinteraksi dengan objek permainan menggunakan Raycasting. Konsep-konsep ini dapat diperluas untuk menciptakan interaksi yang lebih kompleks dalam proyek Unity Anda.