Usare Visual Studio Tools per Unity

In questa sezione verrà illustrato come usare le funzionalità per l'integrazione e la produttività di Visual Studio Tools per Unity e come usare il debugger di Visual Studio per lo sviluppo di Unity.

Aprire script Unity in Visual Studio

Dopo aver impostato Visual Studio come editor esterno per Unity, fare doppio clic su uno script dall'editor di Unity per avviare o passare automaticamente a Visual Studio e aprire lo script scelto.Once Visual Studio is set as the external editor for Unity, double-click a script from the Unity editor will automatically launch or switch to Visual Studio and open the chosen script.

In alternativa, è possibile aprire Visual Studio senza script aperto nell'editor di origine selezionando il menu Asset > Apri progetto C# in Unity.

Screenshot of the Open C# project in Visual Studio.

Screenshot of the Open C# project in Visual Studio for Mac.

Accesso della documentazione di Unity

È possibile accedere rapidamente alla documentazione di Unity da Visual Studio. Se Visual Studio Tools per Unity non trova la documentazione dell'API in locale, proverà a individuarla online.

  • In Visual Studio evidenziare o posizionare il cursore sull'API di Unity su cui visualizzare maggiori informazioni e quindi premere CTRL+ALT+M, CTRL+H
  • È anche possibile usare il menu Guida > di riferimento api Unity anziché il tasto di scelta rapida.

Screenshot of the Unity API Reference menu in Visual Studio.

  • In Visual Studio per Mac evidenziare o posizionare il cursore sull'API Unity su cui si vuole ottenere informazioni, quindi premere Cmd+'
  • È anche possibile usare il menu Guida > di riferimento api Unity anziché il tasto di scelta rapida.

Screenshot of the Unity API Reference menu in Visual Studio for Mac.

IntelliSense per messaggi dell'API Unity

Ciò semplifica l'implementazione di messaggi dell'API Unity negli script MonoBehaviour e assiste nell'apprendimento dell'API Unity. Per usare IntelliSense per i messaggi Unity:

  1. Posizionare il cursore su una nuova riga nel corpo di una classe che deriva da MonoBehaviour.

  2. Iniziare digitando il nome di un messaggio Unity, ad esempio OnTriggerEnter.

  3. Dopo aver digitato le lettere "ontri", viene visualizzato un elenco di suggerimenti di IntelliSense.

Screenshot of using IntelliSense in Visual Studio.

  1. La selezione nell'elenco può essere modificata in tre modi:

    • Con le frecce su e giù.

    • Facendo clic con il mouse sull'elemento desiderato.

    • Continuando a digitare il nome dell'elemento desiderato.

  2. IntelliSense può inserire il messaggio di Unity selezionato, includendo gli eventuali parametri necessari:

    • Premendo Tab.

    • Premendo Invio.

    • Facendo doppio clic sull'elemento selezionato.

Screenshot of the Insert Unity message from IntelliSense in Visual Studio.

Procedura guidata MonoBehaviour di Unity per la creazione di script

È possibile usare la procedura guidata Monobehaviour per visualizzare un elenco di tutti i metodi dell'API di Unity e implementare rapidamente una definizione vuota. Questa funzionalità, in particolare se è attivata l'opzione Genera commenti del metodo, è utile se si sta ancora imparando cosa è disponibile nell'API di Unity.

Per creare definizioni vuote di metodi MonoBehaviour con la procedura guidata MonoBehaviour:

  1. In Visual Studio posizionare il cursore nel punto in cui si vogliono inserire i metodi e quindi premere CTRL+MAIUSC+M per avviare la procedura guidata MonoBehaviour. In Visual Studio per Mac premere CMD+MAIUSC+M.

  2. Nella finestra Create script methods (Crea metodi script) selezionare la casella di controllo accanto al nome dei singoli metodi da aggiungere.

  3. Usare l'elenco a discesa Framework version (Versione framework) per selezionare la versione desiderata.

  4. Per impostazione predefinita, i metodi vengono inseriti in corrispondenza del cursore. In alternativa, è possibile inserirli dopo tutti i metodi già implementati nella classe modificando il valore del punto di inserimento con la posizione desiderata.

  5. Se si vuole che la procedura guidata generi commenti per i metodi selezionati, selezionare la casella di controllo Genera commenti del metodo. Questi commenti vengono usati per facilitare l'individuazione del punto in cui viene chiamato il metodo e chiarirne le responsabilità generali.

  6. Fare clic su OK per chiudere la procedura guidata e inserire i metodi nel codice.

Screenshot of the monobehavior wizard dialog in Visual Studio.

Screenshot of the monobehavior wizard dialog in Visual Studio for Mac.

Esplora progetti Unity

Esplora progetti Unity visualizza tutti i file di progetto Unity e tutte le directory nella stessa gerarchia usata dall'editor di Unity. Si differenzia dall'esplorazione degli script Unity con Esplora soluzioni Visual Studio standard, che li organizza in progetti e in una soluzione generata da Visual Studio.

  • Nel menu principale di Visual Studio scegliere Visualizza > Esplora progetti Unity. Tasti di scelta rapida: ALT+MAIUSC+E

Screenshot of the Unity Project Explorer window.

  • In Visual Studio per Mac, il riquadro della soluzione si comporta automaticamente come questo quando viene aperto un progetto Unity.

Debug di Unity

Visual Studio Tools per Unity consente di eseguire il debug di script dell'editor e di gioco del progetto Unity usando il potente debugger di Visual Studio.

Eseguire il debug nell'editor di Unity

Consente di iniziare il debug

  1. Collegare Visual Studio a Unity facendo clic sul pulsante Riproduci etichettato Collega a Unity, o usare la scelta rapida da tastiera F5.

Screenshot of the Attach to Unity button in Visual Studio.

  1. Connettere Visual Studio a Unity facendo clic sul pulsante Riproduci o digitare Command + Return, oppure F5.

Screenshot of the Play button in Visual Studio for Mac.

  1. Passare a Unity e fare clic sul pulsante Riproduci per eseguire il gioco nell'editor.

Screenshot of the Play button in Unity on Windows.

Screenshot of the Play button in Unity on macOS.

  1. Quando il gioco è in esecuzione nell'editor di Unity mentre è connesso a Visual Studio, qualsiasi punto di interruzione incontrato causa la sospensione dell'esecuzione del gioco e la visualizzazione della riga di codice dove il gioco ha incontrato il punto di interruzione in Visual Studio.

Arrestare l'esecuzione del debug

Scegliere il pulsante Interrompi in Visual Studio oppure usare la scelta rapida da tastiera Maiusc+F5.

Screenshot of the Stop button in Visual Studio.

Fare clic sul pulsante Interrompi in Visual Studio per Mac oppure premere Maiusc + Command + Return.

Screenshot of the Stop button in Visual Studio for Mac.

Per altre informazioni sul debug in Visual Studio, vedere La documentazione per esaminare prima il debugger di Visual Studio.

Collega a Unity e gioca

Per maggiore praticità, è possibile modificare il pulsante Collega a Unity in Collega a Unity e gioca.

  1. Fare clic sulla piccola freccia GIÙ accanto al pulsante Collega a Unity.

  2. Selezionare Collega a Unity e gioca nel menu a discesa.

    Screenshot of the Attach and play button in Visual Studio.

Il pulsante per il gioco acquisisce l'etichetta Collega a Unity e gioca. Fare clic su questo pulsante o usare il tasto di scelta rapida F5 consente di passare automaticamente all'editor di Unity e di eseguire il gioco nell'editor, oltre a collegare il debugger di Visual Studio.

È possibile avviare il debug e riprodurre l'editor di Unity in un unico passaggio direttamente da Visual Studio per Mac scegliendo la configurazione Collega a Unity e gioca.

Screenshot of the Attach to Unity and Play button in Visual Studio for Mac.

Nota

Se è stato avviato il debug usando la configurazione Connetti a Unity e Riproduci , il pulsante Arresta arresterà anche l'editor di Unity.

Eseguire il debug di compilazioni del lettore Unity

È possibile eseguire il debug delle build di sviluppo di lettori Unity con Visual Studio.

Per abilitare il debug di script in un lettore Unity

  1. In Unity aprire il Impostazioni di compilazione selezionando Compilazione file > Impostazioni.

  2. Nella finestra Impostazioni di compilazione del progetto Unity selezionare le caselle di controllo Development Build (Build di sviluppo) e Script Debugging (Debug di script).

    Screenshot of the Unity build settings for debugging.

Selezionare un'istanza di Unity alla quale connettere il debugger

  • In Visual Studio scegliere Debug > Collega debugger Unity dal menu principale.

    Screenshot of the Attach Unity Debugging Window in Visual Studio.

    Nella finestra di dialogo Seleziona istanza di Unity sono visualizzate alcune informazioni sulle singole istanze di Unity a cui è possibile connettersi.

    Screenshot of the Choose an instance of Unity to connect to window in Visual Studio.

    Progetto Nome del progetto Unity in esecuzione in questa istanza di Unity.

    Computer Nome del computer o del dispositivo in cui è in esecuzione questa istanza di Unity.

    Editor dei tipi se questa istanza di Unity è in esecuzione come parte dell'editor di Unity; Lettore se questa istanza di Unity è un lettore autonomo.

    Porta Numero di porta del socket UDP usata da questa istanza di Unity per comunicare.

Importante

Poiché Visual Studio Tools per Unity e l'istanza di Unity comunicano tramite un socket di rete UDP, potrebbe essere necessaria una regola del firewall per consentirla. Se necessario, potrebbe essere visualizzato un prompt, sarà necessario autorizzare la connessione in modo che VSTU e Unity possano comunicare.

Selezione di un'istanza di Unity che non viene visualizzata nell'elenco

Se si dispone di un lettore Unity noto in esecuzione che non viene visualizzato nell'elenco, è possibile usare il pulsante IP di input nella finestra Seleziona istanza di Unity. Immettere l'indirizzo IP e la porta dell'oggetto Unity Player in esecuzione per connettere il debugger.

Per semplificare il debug del lettore senza immettere l'INDIRIZZO IP e la porta ogni volta, abilitare l'impostazione Usa destinazioni di debug salvate nel menu Strumenti > Strumenti > per Unity > Generale .

Screenshot of the Use saved debug targets setting.

Visual Studio mostrerà le destinazioni di debug salvate come opzione nel pulsante Connetti a Unity.

Screenshot of the Saved debug target setting.

  • In Visual Studio per Mac scegliere Esegui > connetti a processo dal menu in alto.
  • Nella finestra di dialogo Connetti a processo selezionare l'opzione Debugger di Unity nel menu a discesa Debugger nella parte inferiore.
  • Selezionare un'istanza di Unity dall'elenco e fare clic sul pulsante Associa .

Eseguire il debug di una DLL nel progetto Unity

Molti sviluppatori Unity scrivono componenti di codice sotto forma di DLL esterne in modo da facilitare la condivisione della funzionalità sviluppata con altri progetti. Visual Studio Tools per Unity semplifica il debug del codice in queste DLL con altro codice del progetto Unity.

Nota

Al momento Visual Studio Tools per Unity supporta solo le DLL gestite. Non è invece supportato il debug di DLL di codice nativo, ad esempio quelle scritte in C++.

Lo scenario descritto in questo articolo presuppone che l'utente sia proprietario del codice sorgente disponibile, ovvero che si stia sviluppando o riutilizzando il proprio codice oppure che il codice sorgente sia inserito in una libreria di terze parti e si intenda distribuirlo nel progetto Unity sotto forma di DLL. Lo scenario non illustra il debug di una DLL di cui l'utente non è proprietario del codice sorgente.

Per eseguire il debug di un progetto di DLL gestita usato nel progetto Unity

  1. Aggiungere il progetto di DLL esistente alla soluzione di Visual Studio generata da Visual Studio Tools per Unity. Può capitare meno frequentemente di avviare un nuovo progetto di DLL gestita per contenere i componenti di codice nel progetto Unity. In questo caso, è possibile aggiungere un nuovo progetto di DLL gestita alla soluzione Visual Studio.

    Screenshot of the Add > Existing Item menu.

    In entrambi i casi, Visual Studio Tools per Unity mantiene il riferimento al progetto, anche se deve rigenerare nuovamente i file di progetto e soluzione, di conseguenza è necessario eseguire questi passaggi una sola volta.

  2. Fare riferimento al profilo del framework Unity corretto nel progetto di DLL. Nelle proprietà del progetto di DLL in Visual Studio impostare la proprietà Framework di destinazione sulla versione del framework Unity usata. Si tratta della libreria di classi base Unity corrispondente alla compatibilità API di destinazione del progetto, ad esempio le librerie di classi base complete, micro o Web di Unity. In questo modo la DLL non potrà chiamare metodi del framework esistenti in altri framework o livelli di compatibilità ma che potrebbero non esistere nella versione del framework Unity usata.

Nota

Quanto segue è richiesto solo se si usa il runtime legacy di Unity. Se si usa il nuovo runtime di Unity, non è più necessario usare tali profili dedicati per la versione 3.5. Usare un profilo di .NET 4.x compatibile con la versione di Unity in uso.

Screenshot of the selecting target framework for a project in Visual Studio.

  1. Copiare la DLL nella cartella Assets del progetto Unity. In Unity gli asset sono file che vengono inseriti nel pacchetto dell'app Unity e distribuiti con questa per consentirne il caricamento al runtime. Poiché le DLL sono collegate in fase di esecuzione, le DLL devono essere distribuite come asset. Per distribuire le DLL come asset, l'editor di Unity richiede che vengano inserite nella cartella Assets del progetto Unity. Questa operazione può essere eseguita nei due modi seguenti:

    • Modificare le impostazioni di compilazione del progetto di DLL in modo da includere un'attività di post-compilazione che copi la DLL di output e i file PDB dalla cartella di output alla cartella Assets (Asset) del progetto Unity.

    • Modificare le impostazioni di compilazione del progetto di DLL in modo da impostare come cartella di output la cartella Assets (Asset) del progetto Unity. La DLL e i file PDB verranno entrambi inseriti nella cartella Assets (Asset).

    I file PDB sono necessari per il debug perché contengono i simboli di debug della DLL e consentono di eseguire il mapping del codice della DLL al formato del relativo codice sorgente. Se si specifica come destinazione il runtime legacy, Visual Studio Tools per Unity userà le informazioni della DLL e dei file PDB per creare un file DLL.MDB, che corrisponde al formato dei simboli di debug usato dal motore di scripting legacy di Unity. Se si specifica come destinazione il nuovo runtime e si usa PDB portatile, Visual Studio Tools per Unity non tenterà di eseguire alcuna conversione dei simboli, poiché il nuovo runtime di Unity è in grado di usare in modo nativo i file PDB portatili.

    Altre informazioni sulla generazione dei PDB sono disponibili qui. Se si specifica come destinazione il nuovo runtime, assicurarsi che "Informazioni di debug" sia impostato su "Portatile" per generare correttamente il file PDB portatile. Se si specifica come destinazione il runtime legacy, è necessario usare "Completo".

  2. Eseguire il debug del codice. È ora possibile eseguire il debug del codice sorgente della DLL con il codice sorgente del progetto Unity e usare tutte le funzionalità di debug a cui si è abituati, ad esempio punti di interruzione ed esecuzione del codice un'istruzione alla volta.

Scelte rapide da tastiera

Per accedere rapidamente alle funzionalità degli strumenti Unity per Visual Studio, è possibile usare i tasti di scelta rapida elencati di seguito.

Comando Collegamento Nome del comando associato al tasto di scelta rapida
Apri procedura guidata MonoBehaviour CTRL+MAIUSC+M EditorContextMenus.CodeWindow.ImplementMonoBehaviours
Apri Esplora progetti Unity ALT+MAIUSC+E View.UnityProjectExplorer
Accedi alla documentazione di Unity CTRL+ALT+M, CTRL+H Help.UnityAPIReference
Connetti al debugger Unity (lettore o editor) Non sono previsti valori predefiniti Debug.AttachUnityDebugger

Se si preferisce non usarle, è possibile modificare le combinazioni di tasti di scelta rapida predefinite. Per informazioni su come modificarle, vedere Identificare e personalizzare i tasti di scelta rapida in Visual Studio.

Comando Collegamento Nome del comando associato al tasto di scelta rapida
Apri procedura guidata MonoBehaviour Cmd+Shift+M EditorContextMenus.CodeWindow.ImplementMonoBehaviours
Accedi alla documentazione di Unity Cmd+' Help.UnityAPIReference

Se si preferisce non usarle, è possibile modificare le combinazioni di tasti di scelta rapida predefinite. Per informazioni su come modificarlo, vedere Personalizzazione dell'IDE.