Autentikasi di Unity

Tutorial ini akan memandu Anda dalam menyiapkan Autentikasi Unity dalam proyek Unity. Autentikasi Unity memungkinkan Anda mengelola dan mengautentikasi pengguna dalam game Anda menggunakan perangkat Identity Unity. Kami akan membahas langkah-langkah yang diperlukan untuk menyiapkan autentikasi, mengintegrasikannya ke dalam proyek Anda, dan menerapkan fungsi sign-in.

Prasyarat

  • Unity Hub dan Editor Unity terpasang.
  • Unity proyek dengan Layanan Unity diaktifkan.
  • Unity akun dan ID proyek aktif.

Langkah 1: Siapkan Autentikasi Unity di Dasbor Unity

  1. Masuk ke Dasbor Unity.
  2. Pilih proyek Anda atau buat yang baru.
  3. Navigasi ke Authentication di bawah bagian "Services".
  4. Aktifkan Autentikasi dengan mengklik tombol Aktifkan.
  5. Konfigurasikan pengaturan Autentikasi sesuai kebutuhan, seperti atribut pengguna, metode masuk, dan kontrol akses.

Langkah 2: Instal Paket Autentikasi Unity

Untuk menggunakan Autentikasi Unity di proyek Anda, Anda perlu menginstal paket yang sesuai.

  1. Buka proyek Unity Anda.
  2. Navigasi ke Jendela > Manajer Paket.
  3. Cari Authentication di Pengelola Paket.
  4. Klik Instal untuk menambahkan paket Autentikasi ke proyek Anda.

Langkah 3: Siapkan Skrip Inisialisasi

Untuk menggunakan autentikasi dalam game Anda, Anda perlu menginisialisasi layanan Unity dan autentikasi saat runtime. Tambahkan kode berikut dalam skrip C# (misalnya, AuthenticationManager.cs), dan lampirkan ke GameObject dalam adegan Anda.

using UnityEngine;
using Unity.Services.Core;
using Unity.Services.Authentication;
using System.Threading.Tasks;

public class AuthenticationManager : MonoBehaviour
{
    async void Start()
    {
        await InitializeUnityServicesAsync();
    }

    private async Task InitializeUnityServicesAsync()
    {
        try
        {
            await UnityServices.InitializeAsync();
            Debug.Log("Unity Services initialized successfully.");

            if (!AuthenticationService.Instance.IsSignedIn)
            {
                await SignInAnonymously();
            }
        }
        catch (System.Exception e)
        {
            Debug.LogError($"Error initializing Unity Services: {e.Message}");
        }
    }

    private async Task SignInAnonymously()
    {
        try
        {
            await AuthenticationService.Instance.SignInAnonymouslyAsync();
            Debug.Log("Signed in anonymously.");
        }
        catch (System.Exception e)
        {
            Debug.LogError($"Error signing in anonymously: {e.Message}");
        }
    }
}

Skrip ini menginisialisasi layanan Unity saat permainan dimulai dan memasukkan pengguna secara anonim jika mereka belum masuk.

Langkah 4: Terapkan Sign-In dengan Autentikasi Unity

Anda juga dapat memberikan opsi untuk metode masuk tertentu, seperti email atau masuk dengan Google, tergantung pada persyaratan permainan Anda. Berikut adalah contoh cara menerapkan masuk dengan Autentikasi Unity.

Contoh: Masuk dengan Email dan Kata Sandi

using UnityEngine;
using Unity.Services.Authentication;
using System.Threading.Tasks;

public class AuthenticationManager : MonoBehaviour
{
    async void Start()
    {
        await InitializeUnityServicesAsync();
    }

    private async Task InitializeUnityServicesAsync()
    {
        try
        {
            await UnityServices.InitializeAsync();
            Debug.Log("Unity Services initialized successfully.");
        }
        catch (System.Exception e)
        {
            Debug.LogError($"Error initializing Unity Services: {e.Message}");
        }
    }

    public async Task SignInWithEmailAsync(string email, string password)
    {
        try
        {
            await AuthenticationService.Instance.SignInWithEmailAndPasswordAsync(email, password);
            Debug.Log("Signed in with email successfully.");
        }
        catch (System.Exception e)
        {
            Debug.LogError($"Error signing in with email: {e.Message}");
        }
    }
}

Untuk memanggil metode ini, buat formulir UI di Unity agar pengguna memasukkan email dan kata sandi mereka, lalu panggil SignInWithEmailAsync dari acara onClick tombol UI.

Langkah 5: Keluar

Untuk manajemen pengguna, Anda mungkin ingin menerapkan fungsi keluar juga. Berikut caranya:

public void SignOut()
{
    AuthenticationService.Instance.SignOut();
    Debug.Log("Signed out successfully.");
}

Panggil metode ini setiap kali Anda ingin mengeluarkan pengguna dari permainan Anda.

Kesimpulan

Kami membahas cara menyiapkan Autentikasi Unity di proyek Unity Anda, termasuk inisialisasi, login anonim, login email, dan fungsi sign-out. Dengan Autentikasi Unity, Anda dapat mengelola pengguna secara lebih efektif dan meningkatkan keamanan dalam game Anda. Untuk pengaturan yang lebih canggih, seperti penyedia login kustom atau menautkan beberapa metode autentikasi, lihat dokumentasi resmi Unity.