Loading...
Unity

Connettere il tuo progetto Unity

Come creare la tua base di dati su Azure

SOMMARIO

La seguente guida descrive come connettere un progetto sviluppato con Unity a una base di dati presente su Azure. La guida è aggiornata alla versione di Unity 2018.3.0f2. Non c’è nessun requisito necessario a parte usufruire di una sottoscrizione Azure. In caso non ne avessi una è possibile creare un account di prova per 12 mesi cliccando qui.

AZURE

Azure è un insieme di strumenti e di risorse sparsi nel mondo i quali possono essere privati o pubblici. Il principio fondante è quello di pagare un servizio in funzione del numero di utilizzi e non a priori. Alcune risorse sono gratuite se non si effettuano più di un numero x di utilizzi.

PROGETTO DI ESEMPIO

L’obiettivo della guida è quello di mostrare come creare un database su Azure che contiene dati acquisiti dall’applicazione sviluppata con Unity. A tal proposito si ipotizza un semplice form di registrazione di cui è importante salvare username e password inseriti dall’utente. L’esempio è scaricabile da qui.

AZURE

Entrare sul portale di Azure e creare una nuova risorsa. Il tipo di risorsa da creare è Web App.

Scegliere ‘Web App ‘ e creare la risorsa. Scegliere un nome qualsiasi per la risorsa (io sceglierò registrazioneunity), utilizzare la sottoscrizione che si desidera(o anche quella appena creata) e creare un nuovo gruppo di risorse con nome registrazioneUnityGroup. Diverse risorse sono raggruppate tra loro quando principalmente lavorano a uno stesso progetto. Procedere e attendere la creazione.

La risorsa ha il seguente indirizzo https://registrazioneunity.azurewebsites.net.

Tra le diverse proprietà della risorsa esiste Easy Tables. Esse sono un metodo per avere un interfaccia semplificata dell’archiviazione dei dati. La proprietà si trova nella categoria Mobile e per utilizzarla è necessario configurare adeguatamente la risorsa.

Per archiviare i dati è necessario l’utilizzo di un database.

E’ possibile utilizzare due tipi di archiviazione:

  • SQL Database: utilizza il modello relazione
  • Storage: per la memorizzazione di oggetti

Selezionare SQL Database e impostare registrazioneunity come nome.

Ogni SQL Database è collegato a un server. Crearne quindi uno con nome
registrazioneunityserver. Impostare credenziali per il server. Ogni server è localizzato in una zona precisa. E importante notare che ai fini della guida
non è influente la posizione di esso.

La sottoscrizione gratuita di Azure permette di creare un solo Database per ogni regione. Inoltre è possibile archiviare fino a 32Mb di dati gratuitamente.

Tornando alla proprietà Easy Tables selezionare Create TodoItem table. La base di dati è stata creata. L’ultimo passo è quello di creare una relazione (una table) che descriva la realtà di interesse.

Selezionare Add e creare una relazione(table) con nome utenze. Essa infatti conterrà tutti i dati dei diversi utenti caratterizzati da username e password. Lasciare libere tutte le concessioni.

La relazione appena creata avrà per ovvi motivi 0 ennuple(records). Di default saranno inseriti dei campi standard: id, createdAt, updatdAt, version, deleted. n

Modificare lo schema aggiungendo il campo password. L’attributo username è identificato dal campo Id. Selezionare manage schema e successivamente add a column per aggiungere un campo. Il campo password è di tipo String.

La risorsa è pronta per ricevere delle utenze e memorizzarle.

UNITY

La prima cosa da fare è scaricare da qui lo Unity SDK for Azure Mobile Apps e importarlo nel progetto interessato. Esso contiene la libreria per interfacciarsi con le diverse risorse Azure come Client.

Creare una nuova scena di nome registrazione e creare una semplice form di registrazione come segue

E’ una form costituita da due InputField e da un Button.

L’obiettivo è quello di creare un oggetto che rispecchi la struttura della table precedentemente creata. L’oggetto sarà inviato alla Web App e sarà compito di quest’ultima inserirle nella Easy Table. Creare quindi la classe utenze con due attributi username e password entrambi di tipo String. Ogni istanza di questa classe rappresenta un record nella table.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class utenze
 {
    public string Id { get; set; }
    public string password { get; set; 
}

A questo punto è necessario gestire la creazione dell’oggetto da inserire e a tal proposito è utile creare una nuova classe di nome AzureConnection. Essa userà Microsoft.WindowsAzure.MobileServices.

MobileServiceClient Client;
IMobileServiceTable<utenze> tbl;

void Start()
{
    Client = new MobileServiceClient("https://registrazioneunity.azurewebsites.net");
}


public async void Insert()
{
    IMobileServiceTable<utenze> tbl = Client.GetTable<utenze>();

    try
    {
        utenze utente = new utenze();
        utente.Id =      GameObject.Find("UsernameText").GetComponent<Text>().text;
        utente.password = GameObject.Find("PasswordText").GetComponent<Text>().text;

        await tbl.InsertAsync(utente);

    }
    catch (Exception e)
    {

    }
}

Si inizializzano due oggetti della libreria.

  • MobileServiceClient seguito dalla link della risosrsa su Azure permette la comunicazione tra i due. E’ importante notare che ai fini della guida per agevolare non è stato inserito nessun meccanismo di verifica. Ogni risorsa ha infatti una stringa di connessione privata.
  • IMobileServiceTable permette di creare un oggetto che possa essere facilmente inserito che eredita i campi della classe passata come parametro. Possiede i metodi per caricare l’oggetto su Azure.

La funzione Insert è chiamata nel momento in cui si preme il bottone Inserisci. E’ creato un oggetto utenze, è aggiornato con le informazioni inserite dall’utente, si sincronizza con Azure in modo asincrono.

CONCLUSIONE

Se si avvia la scena e si registra un nuovo utente è possibile notare come questo si sia registrato sulla Easy Table di Azure.

La guida è una semplice spiegazione di come collegare la propria applicazione a una base di dati presente su Azure. Data proprio la sua semplicità l’applicazione non gestisce le altre operazioni CRUD tipiche nella manutenzione di una base di dati.


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *