Los scripts de Unity editados en Visual Studio no proporcionan autocompletar
Cuando quiero editar scripts de C# Unity, se abren en Visual Studio. Se supone que proporciona autocompletar para todo el código relacionado con Unity, pero no funciona.
Aquí puedes ver la funcionalidad que falta:
Como se ve, el transform
objeto no abre el menú de autocompletar.
Versión de Unity: 5.5.2f1
Visual Studio 2015
Visual Studio Tools para Unity está instalado
No hay autocompletado porque el script dice " Archivos varios " en lugar del nombre del proyecto. Eche un vistazo a la imagen a continuación que proviene del video de su pregunta:
El mensaje " Archivos varios " puede aparecer por muchas razones:
Puede suceder cuando abre su archivo Unity C# desde otra carpeta en lugar de abrirlo desde Unity Editor.
Esto también puede suceder porque Unity falló mientras Visual Studio todavía estaba abierto, lo que corrompió algunos archivos.
Puede suceder porque Unity se cerró y luego se volvió a abrir pero ya no está conectado a Visual Studio. Cuando se abre Visual Studio, aparece " Archivos varios " y no se completa automáticamente.
Esto puede suceder cuando Visual Studio Tools para Unity no está instalado.
Cuando crea un script desde Unity, ábralo rápidamente antes de que Unity termine de procesarlo o antes de que la animación del ícono redondo termine de animarse.
La mayoría de las veces, reiniciar Unity y Visual Studio debería solucionar este problema.
No puedo decir cuál está causando el problema, pero cubriré la solución más probable para solucionarlo.
Arreglar la parte 1 :
Descargue e instale Visual Studio Tools para Unity desde este enlace. Haga esto mientras Unity y Visual Studio estén cerrados.
Desde Unity Editor, vaya a Editar → Preferencias ... → Herramientas externas . En el menú desplegable del Editor de secuencias de comandos externo , cámbielo a Visual Studio 2015 .
Arreglar la parte 2 :
Si los archivos C# recién creados aparecen como Varios , siga las instrucciones a continuación:
Desde Visual Studio, vaya a Herramientas → Opciones... → Herramientas para Unity → Varios . En Mostrar icono de conectividad , configúrelo para
true
luego reiniciar Visual Studio.Cuando reinicie, el ícono de conexión ahora debería estar disponible en Visual Studio. Haga clic en él y luego elija la instancia de Unity a la que conectarse. El ícono de la 'x' roja ahora debería convertirse en un ícono de marca de verificación marrón. Ahora, cuando crea un nuevo archivo C# en Unity, debería abrirse sin decir Miscelánea .
Arreglar la parte 3 :
¿Aún no lo has solucionado?
Vuelva a importar el proyecto y luego abra el proyecto C#.
Cierre Visual Studio.
Desde Unity, vuelva a importar el proyecto yendo a Activos → Reimportar todo .
Ahora, abra el proyecto en Visual Studio yendo a Activos → Abrir proyecto C# . Esto recargará el proyecto y solucionará posibles problemas con el archivo de solución.
Arreglar la parte 4 :
¿Aún no lo has solucionado?
Repare cada archivo C# individualmente.
Haga clic en el icono Mostrar todos los archivos .
Seleccione el script que no se completa automáticamente, luego haga clic derecho y seleccione Incluir en proyecto .
Arreglar la parte 5 :
¿Aún no lo has solucionado?
El crédito es para Chrisvarnz por esta solución particular que parece haber funcionado para varias personas.
Cerrar Visual Studio
Vaya al directorio de su proyecto y elimine todos los archivos generados de Visual Studio.
Estas son las extensiones de archivos a eliminar:
.csproj
.user
.sln
Ejemplo:
Digamos que el nombre de su proyecto se llama
Target_Shoot
, así es como deberían verse los archivos a eliminar:Target_Shoot.csproj
Target_Shoot.Editor.csproj
Target_Shoot.Editor.csproj.user
Target_Shoot.Player.csproj
Target_Shoot.Player.csproj.user
Target_Shoot.sln
No borres nada más.
Haga doble clic en el script nuevamente desde Unity , lo que debería generar un nuevo archivo de Visual Studio y luego abra Visual Studio. Esto puede resolver su problema.
Arreglar la parte 6 :
Si no funciona, verifique si tiene este error:
No se encontró la tarea "GetReferenceNearestTargetFrameworkTask"
Instale Nuget PackageManager desde aquí .
Reinicie Visual Studio.
Consulte esta respuesta para obtener más información.
Arreglar la parte 7
Asegúrese de que todos los proyectos estén cargados. En el Explorador de soluciones debería indicarle # de # proyectos. Si no se muestran todos los proyectos, haga clic derecho en "Solución (# de # proyectos)" y haga clic en Cargar proyectos.
Prueba esto,
En Unity Editor, vaya al Menú, haga clic en Editar -> Preferencias -> Herramientas externas -> Editor de secuencias de comandos externo. Configúrelo en Visual Studio (su versión instalada de VS).
Ahora, en la barra de menú, vaya a Editar -> Configuración del proyecto -> Configuración del reproductor -> Otras configuraciones -> En Configuración -> Verificar nivel de compatibilidad de API -> Cámbielo a su versión .Net instalada. En mi caso lo configuré en .Net 4.x
Ahora, si Visual Studio ya se está ejecutando, vaya a Visual Studio y le pedirá que vuelva a cargar el proyecto. Vuelva a cargar el proyecto. Compruebe si funciona, si no, cierre Visual Studio. Ahora abra el archivo cs desde Unity Editor y ahora debería funcionar.
Encontré otra forma de solucionar este problema de una manera más conveniente:
- Seleccione el archivo roto en el Explorador de soluciones.
- Abra sus Propiedades.
- Cambie el campo "Crear acción" de "Compilar" a "Ninguno".
- Luego vuelva a cambiarlo a "Compilar".
Esto acabará con la sincronización entre Unity y Visual Studio de alguna manera.
La próxima vez que Visual Studio vuelva a cargar el proyecto, aparecerá una advertencia. Simplemente haga clic en "Descartar".
Si ha hecho todo lo anterior y aún no funciona, intente esto: Nota: debería haber actualizado VS.
Vaya a Unity > editar > preferencia > Herramientas externas > editor de script externo. De alguna manera, no había seleccionado "visual studio" para el editor de script externo y no funcionaba. Tan pronto como seleccioné esto y hice doble clic en el archivo c# de Unity, comenzó a funcionar.
Espero que te ayude a ti también.