Force Ricarica VS soution Explorer quando aggiungi un nuovo script c # tramite Unity3d?


8

Quando creo C # script ( Create -> C# Script) tramite Unity3d o lo elimino da Unity3d- Visual Studiomi mostra la finestra di avviso.

inserisci qui la descrizione dell'immagine

è fastidioso.

Esiste un modo per forzare "ReloadAll" in Esplora soluzioni senza la finestra?

Risposte:


3

Quindi, quello che abbiamo.

Lo sviluppatore ha VS Tools for Unity team detto che è una delle richieste di funzionalità più votate. Ed è sorprendentemente non banale da risolvere, ci stanno lavorando.

Tuttavia, ho trovato alcuni script che possono usare .. L'ho trovato nella comunità di unità russa .

Grazie mille a DbIMok . Inoltre ha pubblicato questo script ieri su forum.unity3d.com

È necessario creare uno script C # denominato come FileModDialogCloser.cse inserirlo nella Editorcartella. Ecco il codice:

using System;
using System.Runtime.InteropServices;
using UnityEditor;

[InitializeOnLoad]
public class FileModDialogCloser {

        [DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
        static extern IntPtr FindWindowByCaption(IntPtr ZeroOnly, string lpWindowName);

        [DllImport("user32.dll")]
        static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

        [DllImport("user32.dll")]
        static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);

        const string search = "File Modification Detected";
        static IntPtr hwnd;

        static void Check() { 
                hwnd = FindWindowByCaption(IntPtr.Zero, search);
                if ((int)hwnd != 0) {
                        ShowWindow(hwnd, 5);
                        keybd_event(0x0D, 0, 0, 0);
                }
        }

        static FileModDialogCloser() {
                EditorApplication.update += Check;
        }
}

Chiedendosi!

Funziona per la creazione e l'eliminazione di script C # tramite Unity.

Come puoi vedere il codice ha una linea keybd_event(0x0D, 0, 0, 0);. Questo è simulare la pressione del Enterpulsante. E questo significa Ricaricare la realizzazione. se hai bisogno di ReloadAll allora devi fare così:

keybd_event(0x09, 0, 0, 0);
keybd_event(0x0D, 0, 0, 0);

Questo è premendo il Tabpulsante e quindi Enter.

PICCOLO GUASTO: quando si crea / elimina lo script: confermare la finestra si apre, si avvia keybd_event, la finestra si chiude. Succede molto velocemente, quindi non è necessario fare clic su alcun pulsante. Ma puoi comunque vedere questa finestra in pochi millisecondi. Penso, per ora non c'è modo migliore per farlo.


INOLTRE:

All'interno puoi creare script C # per progetti Unity (non solo semplici script C #) Visual Studio. Unityaggiungerà il file automaticamente senza finestra di conferma.

Il primo metodo (semplice) :

Se ho capito bene: quando stai usando Visual Studio Tools for Unity, quello strumento sta già integrando modelli per la creazione di script Unity C # in VS. Quindi, fai clic con il pulsante destro del mouse su Soluzione e scegli Add -> NewItem. Puoi vedere due modelli per Unity:

введите сюда описание изображения

введите сюда описание изображения

Tuttavia, questi modelli possono contiene un sacco di informazioni inutili, i commenti, per esempio // Use this for initialization, // Update is called once per frameecc E, come @wondra nei commenti ha detto : è possibile aggiungere il proprio modello di elemento personalizzato per gli script unità.

Il secondo metodo :

  • Creazione di file da qualsiasi luogo.

введите сюда описание изображения

  • Aggiunta di ciò che si desidera o eliminazione di smth. O esempio:

введите сюда описание изображения

  • Clic File -> ExportTemplate

    введите сюда описание изображения

  • Scegliere ItemTemlate

введите сюда описание изображения

  • Controlla il tuo modello nell'elenco

введите сюда описание изображения

  • Clicca Next,Next
  • Impostare il nome e la descrizione per il modello, fare clic su Finish

введите сюда описание изображения

  • Il modello verrà aggiunto nella c:\Users\YOUR_PROFILE\Documents\Visual Studio 2015\My Exported Templates\cartella, anche nella cartella c:\Users\YOUR_PROFILE\Documents\Visual Studio 2015\Templates\ItemTemplates\. Dopo il VSriavvio è possibile visualizzare questo modello nell'elenco proprio come VS Tools for Unitymodelli:

введите сюда описание изображения

Ecco la spiegazione del video .


Lieto fine!


0

È possibile aggiungere il nuovo script direttamente su Visual Studio nella directory desiderata in Unity. In tal caso non sarà necessario ricaricare. inserisci qui la descrizione dell'immagine

Ma dovrai fare qualcos'altro. Il nuovo script in Visual Studio avrà alcuni spazi dei nomi che utilizzavano l'impostazione predefinita. È possibile modificarli o rimuoverli. Dovrai using UnityEngine;prima aggiungere i privilegi relativi a Unity. Dovrai aggiungere void Start()o void Update()da solo se ne hai bisogno. La nuova classe dovrebbe apparire come: inserisci qui la descrizione dell'immagine


1
Grazie, lo so. Ma a volte voglio creare / eliminare script all'interno di Unity
Alexey Shimansky il

1
Non è necessario aggiungere utilizzando UnityEngine o start () / stop () manualmente, è possibile aggiungere il proprio modello di elemento personalizzato per gli script di unità.
Wondra,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.