Los scripts de Unity editados en Visual Studio no proporcionan autocompletar

Resuelto CorbenDalas asked hace 7 años • 37 respuestas

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:

Vídeo de la función de autocompletar que falta

Como se ve, el transformobjeto no abre el menú de autocompletar.

Versión de Unity: 5.5.2f1
Visual Studio 2015
Visual Studio Tools para Unity está instalado

CorbenDalas avatar Mar 04 '17 22:03 CorbenDalas
Aceptado

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:

ingrese la descripción de la imagen aquí

El mensaje " Archivos varios " puede aparecer por muchas razones:

  1. Puede suceder cuando abre su archivo Unity C# desde otra carpeta en lugar de abrirlo desde Unity Editor.

  2. Esto también puede suceder porque Unity falló mientras Visual Studio todavía estaba abierto, lo que corrompió algunos archivos.

  3. 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.

  4. Esto puede suceder cuando Visual Studio Tools para Unity no está instalado.

  5. 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 :

  1. Descargue e instale Visual Studio Tools para Unity desde este enlace. Haga esto mientras Unity y Visual Studio estén cerrados.

  2. Desde Unity Editor, vaya a EditarPreferencias ... → Herramientas externas . En el menú desplegable del Editor de secuencias de comandos externo , cámbielo a Visual Studio 2015 .

    ingrese la descripción de la imagen aquí


Arreglar la parte 2 :

Si los archivos C# recién creados aparecen como Varios , siga las instrucciones a continuación:

  1. Desde Visual Studio, vaya a HerramientasOpciones...Herramientas para UnityVarios . En Mostrar icono de conectividad , configúrelo para trueluego reiniciar Visual Studio.

    ingrese la descripción de la imagen aquí

  2. 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 .

    ingrese la descripción de la imagen aquí


Arreglar la parte 3 :

¿Aún no lo has solucionado?

Vuelva a importar el proyecto y luego abra el proyecto C#.

  1. Cierre Visual Studio.

  2. Desde Unity, vuelva a importar el proyecto yendo a ActivosReimportar todo .

    ingrese la descripción de la imagen aquí

  3. Ahora, abra el proyecto en Visual Studio yendo a ActivosAbrir proyecto C# . Esto recargará el proyecto y solucionará posibles problemas con el archivo de solución.

    ingrese la descripción de la imagen aquí


Arreglar la parte 4 :

¿Aún no lo has solucionado?

Repare cada archivo C# individualmente.

  1. Haga clic en el icono Mostrar todos los archivos .

    ingrese la descripción de la imagen aquí

  2. Seleccione el script que no se completa automáticamente, luego haga clic derecho y seleccione Incluir en proyecto .

    ingrese la descripción de la imagen aquí


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.

  1. Cerrar Visual Studio

  2. 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.

  3. 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"

  1. Instale Nuget PackageManager desde aquí .

  2. 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.

Programmer avatar Mar 04 '2017 17:03 Programmer

Prueba esto,

  1. 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).

  2. 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.

Junaid Pathan avatar Jun 17 '2019 10:06 Junaid Pathan

Encontré otra forma de solucionar este problema de una manera más conveniente:

  1. Seleccione el archivo roto en el Explorador de soluciones.
  2. Abra sus Propiedades.
  3. Cambie el campo "Crear acción" de "Compilar" a "Ninguno".
  4. 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".

Michaël Nguyen avatar Oct 30 '2017 19:10 Michaël Nguyen

Si ha hecho todo lo anterior y aún no funciona, intente esto: Nota: debería haber actualizado VS. Captura de pantalla del estudio visual

Vaya a Unity > editar > preferencia > Herramientas externas > editor de script externo. Captura de pantalla de la unidad 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.

yOhaan avatar Apr 22 '2020 01:04 yOhaan