Alors, ce que nous avons.
Le développeur du VS Tools for Unity team
dit que c'est l'une de leurs demandes de fonctionnalités les plus votées. Et ce n'est étonnamment pas trivial à corriger, ils y travaillent.
Cependant, j'ai trouvé un script qui peut utiliser .. Je l'ai trouvé sur la communauté de l'unité russe .
Un grand merci à DbIMok . Il a également publié ce script hier sur forum.unity3d.com
Besoin de créer un script C # nommé comme FileModDialogCloser.cs
et de le mettre dans le Editor
dossier. Voici le code:
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;
}
}
Je me demande!
Il fonctionne pour créer et supprimer des scripts C # via Unity.
Comme vous pouvez le voir, le code a une ligne keybd_event(0x0D, 0, 0, 0);
. C'est simuler en appuyant sur le Enterbouton. Et cela signifie réaliser la recharge . si vous avez besoin de ReloadAll, vous devez faire comme ça:
keybd_event(0x09, 0, 0, 0);
keybd_event(0x0D, 0, 0, 0);
C'est en appuyant sur le Tabbouton puis Enter.
PETIT DÉFAUT: Lorsque vous créez / supprimez un script: confirmez que la fenêtre s'ouvre, s'exécute keybd_event
, la fenêtre se ferme. Cela se produit très rapidement, vous n'avez donc pas besoin de cliquer sur un bouton. Mais vous pouvez quand même voir cette fenêtre en quelques millisecondes. Je pense que, pour l'instant, il n'y a pas de meilleure façon de le faire.
ADITIONELLEMENT:
Vous pouvez créer un script C # pour les projets Unity (pas seulement un simple script C #) dans Visual Studio
. Unity
ajoutera le fichier automatiquement sans fenêtre de confirmation.
La première méthode (simple) :
Si je comprends bien: lorsque vous utilisez Visual Studio Tools for Unity
- cet outil intègre déjà des modèles pour créer des scripts Unity C # dans le VS
. Alors, faites un clic droit sur Solution et choisissez Add -> NewItem
. Vous pouvez voir deux modèles pour Unity:
Cependant, ces modèles peut contenir beaucoup d'informations inutiles, par exemple des commentaires // Use this for initialization
, // Update is called once per frame
etc. Et, comme dans les commentaires @wondra dit : vous pouvez ajouter propre modèle d'élément personnalisé pour les scripts d'unité.
La deuxième méthode :
- Créer un fichier de n'importe où.
- Ajout de ce que vous voulez ou suppression de smth., Ou exemple:
- Vérifiez votre modèle dans la liste
- Cliquez
Next
,Next
- Définissez le nom et la description du modèle, cliquez sur
Finish
- Le modèle sera ajouté dans le
c:\Users\YOUR_PROFILE\Documents\Visual Studio 2015\My Exported Templates\
dossier, également dans le c:\Users\YOUR_PROFILE\Documents\Visual Studio 2015\Templates\ItemTemplates\
. Après le VS
redémarrage, vous pouvez voir ce modèle dans la liste comme des VS Tools for Unity
modèles:
Voici l' explication vidéo .
Fin heureuse!