Entonces, lo que tenemos.
El desarrollador VS Tools for Unity team
dijo que es una de sus solicitudes de funciones más votadas. Y sorprendentemente no es trivial arreglarlo, están trabajando en ello.
Sin embargo, encontré un script que puede usar ... Lo encontré en la comunidad de la unidad rusa .
Muchas gracias a DbIMok . También publicó este script ayer en forum.unity3d.com
Necesita crear un script C # llamado como FileModDialogCloser.cs
y ponerlo en la Editor
carpeta. Aquí está el código:
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;
}
}
Preguntándose!
Funciona para crear y eliminar scripts de C # a través de Unity.
Como puede ver, el código tiene una línea keybd_event(0x0D, 0, 0, 0);
. Esto es simular presionar el Enterbotón. Y eso significa realización de recarga . si necesita ReloadAll, entonces tiene que hacer así:
keybd_event(0x09, 0, 0, 0);
keybd_event(0x0D, 0, 0, 0);
Esto es presionar el Tabbotón y luego Enter.
FALLA PEQUEÑA: Cuando está creando / eliminando script: la ventana de confirmación se abre, se ejecuta keybd_event
, la ventana se cierra. Sucede muy rápido, por lo que no necesita hacer clic en ningún botón. Pero puedes ver esta ventana en unos pocos milisegundos de todos modos. Creo que, por ahora, no hay mejor manera de hacerlo.
ADICIONALMENTE:
Puede crear una secuencia de comandos C # para proyectos de Unity (no solo una secuencia de comandos simple C #) dentro Visual Studio
. Unity
agregará el archivo automáticamente sin ventana de confirmación.
El primer método (simple) :
Si lo hice bien: cuando está usando Visual Studio Tools for Unity
, esa herramienta ya está integrando plantillas para crear scripts de Unity C # en el VS
. Entonces, haga clic derecho en Solución y elija Add -> NewItem
. Puede ver dos plantillas para Unity:
Sin embargo, estas plantillas pueden contener mucha información innecesaria, comentarios, por ejemplo // Use this for initialization
, // Update is called once per frame
etc. Y, como dijo @wondra en los comentarios : puede agregar su propia plantilla de elementos personalizados para los scripts de la unidad.
El segundo método :
- Crear archivo desde cualquier lugar.
- Agregar lo que quieras o eliminar smth., O ejemplo:
- Revisa tu plantilla en la lista
- Clic
Next
,Next
- Establezca el nombre y la descripción de la plantilla, haga clic en
Finish
- La plantilla se agregará a la
c:\Users\YOUR_PROFILE\Documents\Visual Studio 2015\My Exported Templates\
carpeta, también a c:\Users\YOUR_PROFILE\Documents\Visual Studio 2015\Templates\ItemTemplates\
. Después de VS
reiniciar, puede ver esta plantilla en la lista como VS Tools for Unity
plantillas:
Aquí está la explicación en video .
¡Final feliz!