El autocompletado no funciona en Visual Studio

151

Tengo un pequeño problema con los scripts. Cuando escribo scripts de C # para Unity con Visual Studio, parece que estoy trabajando en el bloc de notas, no hay autocompletado (¿correcto?) Y debo escribirlo muy lentamente.

Por favor, mira el video. Al principio es la situación normal (del tutorial), la segunda parte muestra mi problema.

Video con problema

Por ejemplo, la transformclase no muestra sugerencia ni autocompletar.

Imagen con problema:

ingrese la descripción de la imagen aquí

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

CorbenDalas
fuente
1
translate.google.com :) Hacer un video y subirlo a YouTube para describir el error +1 xd
Timon Post
Ok, ll try... I have a Little problem with scripts. When Iestoy escribiendo scripts de C # para Unity con Visual Studio, parece que estoy trabajando en el bloc de notas, no hay "consejos" (¿correcto?) Y debo escribirlo muy lentamente. Por favor, mira el video. Al principio es una situación normal (del tutorial), la segunda parte es mi problema.
CorbenDalas
1
Diría que está preguntando sobre 'autocompletado', no sobre información sobre herramientas.
Martijn Pieters
¿Qué versión de Visual Studio y qué versión de Unity?
Programador
Versión de Unity: 5.5.2f1 / Visual studio 2015 / Visual Studio Tools para Unity está instalado
CorbenDalas

Respuestas:

341

No hay autocompletado porque el script dice " Varios archivos " en lugar del nombre del Proyecto. Eche un vistazo a la imagen a continuación que vino del video en su pregunta:

ingrese la descripción de la imagen aquí

El mensaje " Varios archivos " 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 se bloqueó mientras Visual Studio todavía está abierto, por lo tanto, corrompe 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, se obtienen " Varios archivos " y no se completa automáticamente.

4. Esto puede suceder cuando Visual Studio Tools for 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 el ícono de la ronda de animación termine de animarse.


La mayoría de las veces, reiniciar Unity y Visual Studio debería solucionar esto.

No puedo decir cuál está causando el problema, pero cubriré la solución más probable para solucionarlo.

Arreglar la Parte 1 :

1 .download e instalar Visual Studio Tools para la unidad de este enlace. Haga esto mientras Unity y Visual Studio están cerrados.

2. Desde Unity Editor, vaya a Editar -> Preferencias ... -> Herramientas externas . En el menú desplegable Editor de secuencias de comandos externas , 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 Herramientas -> Opciones ... -> Herramientas para Unity -> Varios . En Mostrar icono de conectividad , configúrelo para trueluego reiniciar Visual Studio.

ingrese la descripción de la imagen aquí

2. Cuando reinicie, el icono de conexión ahora debería estar disponible en Visual Studio. Haga clic en él y luego elija la instancia de Unity para conectarse. El ícono rojo 'x' 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 Varios .

ingrese la descripción de la imagen aquí


Arreglar la Parte 3 :

¿Todavía no está arreglado?

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

1 .Cierre Visual Studio.

2. Desde Unity, vuelva a importar el proyecto yendo a Activos -> Reimportar todo .

ingrese la descripción de la imagen aquí

3 .Ahora, abra el proyecto en Visual Studio yendo a Activos -> Open C # Proyecto . Esto volverá a cargar el proyecto y solucionará los posibles problemas del archivo de solución.

ingrese la descripción de la imagen aquí


Arreglar la Parte 4 :

¿Todavía no está arreglado?

Arregle 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 el proyecto .

ingrese la descripción de la imagen aquí


Arreglar la Parte 5 :

¿Aún no está arreglado?

El crédito va a chrisvarnz por esta solución particular que parece haber funcionado para varias personas.

1 .Cierre Visual Studio

2. Vaya al directorio de su proyecto y elimine todos los archivos de Visual Studio generados.

Estas son las extensiones de archivos para eliminar:

  • .csproj
  • .usuario
  • .sln

Ejemplo:

Digamos que el nombre de su proyecto se llama "Target Shoot" , estos son los archivos que debe 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 elimines nada más.

3. Haga doble clic en el script nuevamente desde Unity, 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 .install Nuget PackageManager desde aquí .

2. Reiniciar Visual Visual.

Vea esta respuesta para más información.

Programador
fuente
44
¡Gracias por el puntero de varios archivos! Cerrar VS, eliminar los proyectos VS y sln, y luego hacer doble clic en un script en Unity (por lo tanto, regenerar los archivos del proyecto y volver a abrir VS) lo arregló para mí. Recomiendo probar eso antes del botón "reimportar todo" ya que es almuerzo / pernoctación para proyectos no triviales.
chrisvarnz
2
Ese es un buen consejo. Espero que cualquiera que lea esto pueda ver este comentario
Programador
La mayoría de las veces, esto se debe a la creación de nuevos scripts o al moverlos a diferentes carpetas dentro de Unity. Siempre que reiniciar la unidad y VS no lo resuelve, yo simoly Eliminar también los *.csprojy *.slnarchivos y comienzo de la Unidad. Esto generalmente funciona
derHugo
1
La solución @chrisvarnz funcionó para mí después de probar todas estas otras sugerencias.
gollumullog
1
@gollumullog Bien. Como eso funcionó para varias personas, he actualizado mi respuesta para incluir también eso.
Programador
38

Prueba esto,

En Unity Editor, vaya a Menú, haga clic en Editar -> Preferencias -> Herramientas externas -> Editor de script 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 se está ejecutando, vaya a Visual Studio, le pedirá que vuelva a cargar el proyecto. Recargar el proyecto. Compruebe si funciona, si no, cierre Visual Studio. Ahora abra el archivo cs desde Unity Editor, y ahora debería funcionar.

Juned Khan Momin
fuente
Lo mismo para mí, gracias! Intenté todo pero solo esto lo solucionó.
Shadowmak
1
Esta es la respuesta REAL. ¡Esto debe estar en la cima!
Mark Purnell
Esto funcionó para mí también. Además, una cosa adicional que hice en Unity 2020.2.0a13 fue desmarcar y verificar nuevamente la marca en Editar / Configuración del proyecto / Reproductor / Otras configuraciones: API de gráficos automáticos. Después de reiniciar Visual Studio, el autocompletado regresó: D
Ant100
14

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

  1. Seleccione el archivo roto en el Explorador de soluciones.
  2. Abre sus propiedades.
  3. Cambie el campo "Acción de compilación" de "Compilar" a "Ninguno".
  4. Luego vuelva a "Compilar".

Esto matará 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
fuente
7

Descargue y vuelva a cargar el proyecto, en Visual Studio:

  • haga clic derecho en su proyecto en el Explorador de soluciones
  • seleccione Descargar proyecto
  • seleccione Actualizar proyecto

¡Fijo!

Encontré que esta solución funciona mejor (más fácil), ya que me he encontrado con el problema varias veces.

Fuente: https://alexdunn.org/2017/04/26/xamarin-tips-fixing-the-highlighting-drop-in-your-xamarin-android-projects/

Xonatron
fuente
¡Gracias por la ayuda! Esto funcionó, pero creo que estamos de vuelta en los 90 y necesitamos reiniciar Windows, solo que esta vez es VS 2017.
user3053247
4
  1. Seleccionar proyecto en Visual Studio
  2. Haga clic en el botón "Actualizar"

ingrese la descripción de la imagen aquí

GLeBaTi
fuente
1
Whoa! Nada más me ayudó; Vuelva a instalar VS, incluso reinstale Unity para que reinstale VS, eliminando los archivos .sln y .cjsproj para que se regeneren. nada ayudó ... pero finalmente un simple clic en el explorador de soluciones para mostrar las carpetas parecía hacerlo: o
antont
3

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

Ir a Unidad> editar> preferencia> Herramientas externas> editor de script externo. Captura de pantalla de Unity De alguna manera para mí no había seleccionado "estudio visual" para el editor de script externo y no estaba funcionando. Tan pronto como seleccioné esto e hice doble clic en el archivo C # desde la unidad, comenzó a funcionar.

Espero que te ayude a ti también.

yOhaan
fuente
2

Llegué a los mismos problemas hoy usando Visual Studio 2017 15.4.5 con Unity 2017.

Pude solucionar el problema haciendo clic derecho en el proyecto en Visual Studio y cambiando el marco de destino de 3.5 a 4.5.

Espero que esto ayude a alguien más en un escenario similar.

único
fuente
2

Dos opciones alternativas:

Fix 1

@singleton me señaló en esta dirección. En lugar de cambiar el objetivo en Visual Studio, debe cambiarlo en Unity ya que el proyecto se genera automáticamente.

Primero elimine los archivos de Visual Studio generados automáticamente: .csproj .user .sln

Luego, desde Unity, vaya a PlayerSettings y en 'Otras configuraciones' cambie la 'Versión de tiempo de ejecución de secuencias de comandos' de Estable 3.5 a Experimental 4.6.

Sin embargo, eso no me lo solucionó.

Fix 2

Noté que todas las referencias al código relacionado con Unity estaban marcadas con una advertencia amarilla. Verifique sus registros de errores y vea si este es el caso. En particular, vea si obtiene el siguiente error: getreferenceNearestTargetframeworkTask

Si es así, intente: Inicie Visual Studio Installer nuevamente.

En Build Tools 2017, haga clic en Modificar,

Asegúrese de que "Nuget objetivos y tareas de compilación" están marcados. Esto debería marcarse si hace clic en el desarrollo de la Plataforma universal de Windows.

ickydime
fuente
1

Encontré mi solución creando el archivo .cs desde Visual Studio en lugar del editor de la unidad

  • haga clic derecho en la carpeta del proyecto en el explorador de soluciones
  • agregar> nuevo elemento
  • escriba "unidad" en el campo de búsqueda en la parte superior derecha
  • seleccione "CSharp MonoBehaviour"
  • nombra tu script en la parte inferior y haz clic en Agregar
Fredy Rommy Sianturi
fuente
1
¿Qué sucede si ya ha creado los scripts pero, de repente, surge este problema, va a eliminar todos los scripts y volver a crearlos desde Visual Studio?
Programador el
@Programador, bueno, usaría su solución de la Parte 4 para corregir el script de error, pero siempre uso Visual Studio para crear un nuevo script porque ninguna de sus soluciones impidió que el nuevo script tuviera error a menos que creara el archivo de Visual Studio
Fredy Rommy Sianturi
1

En mi caso, la versión correcta de .net no estaba instalada en mi PC. Instalo .net 3.5 en mi PC y eso funcionó para mí.

Habibur Rahman Ovie
fuente
Su respuesta me dio la idea de cambiar el nivel de compatibilidad de API en la configuración de Unity Player de .Net 2.0 a .Net 4.x. Y luego vuelva a cargar el proyecto en Visual Studio. Ahora todo funciona bien.
Juned Khan Momin
1

El problema que enfrenté fue que el Proyecto C # apuntaba a un .NET Framework diferente (4.7.2), mientras que el proyecto Unity tenía un objetivo diferente (.NET 3.5).

Lo arreglé cambiando el objetivo en Unity como-

Archivo -> Configuración de compilación -> Configuración del reproductor -> Otras configuraciones -> Nivel de compatibilidad de API: configúrelo en la versión .NET que ya ha instalado (verifique su versión .NET aquí ). En mi caso, era 4.x

Después de esto, Visual Studio funcionó perfectamente y también se corrigió la autocorrección.

rkbroach
fuente
Esto funcionó para mí. Cambié mi nivel de compatibilidad de API a .Net 4.x, y luego Visual Studio me pidió que volviera a cargar el proyecto. Recargué el proyecto. Luego cerré Visual Studio, abrí el archivo cs desde Unity Editor y ahora todo funciona bien.
Juned Khan Momin
1

Intente presionar Ctrl + Alt + Space(que alterna entre los modos de sugerencia y finalización estándar)

maitrunghieuit
fuente
0

Para Windows o macOS:

Descargue / instale el IDE de Visual Studio (con las herramientas de Unity)

Al instalar, asegúrese de incluir la instalación de

Desarrollo de juegos con Unity

ingrese la descripción de la imagen aquí

Luego, utilizando Unity (puede hacer doble clic en uno de sus archivos C #), abra un nuevo proyecto C # y el IDE de Visual Studio debería abrirse con su nueva estructura de proyecto.

ingrese la descripción de la imagen aquí

A partir de ahí, deberías poder ver lo que estás buscando.

Por ejemplo:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Para Linux (sugerencia):

Pruebe Monodevelop : información adicional , proporciona sugerencias / finalización de código.

Brien Foss
fuente
0

Resolví instalar la misma versión de .NET en WIN que estaba configurada en mi proyecto de Unity. (Configuración del jugador)

Bruno Araujo
fuente
0

Mi autocompletado tampoco funcionó porque Visual Studio Tools para Unity no estaba instalado. Entonces, después de instalar eso, elimine los archivos de Visual Studio generados automáticamente. Otros dijeron que vuelve a abrir el archivo y que el problema está resuelto pero no lo está.

El truco es: en lugar de hacer doble clic normalmente en el archivo, debe abrir el archivo C # desde Unity haciendo clic derecho y luego "Abrir proyecto C #".

Thayakorn Rakwetpakorn
fuente
0

Ninguna de las soluciones anteriores funcionó para mí. Sin embargo, abrí el archivo ProjectName.CSPROJ y agregué manualmente el nuevo archivo y funcionó de maravilla

Sebinjude Shaolin
fuente
0
  • Vaya a Opciones en el menú Herramientas y luego seleccione Documentos en el nodo Entorno. (Si Documentos no aparece en la lista, seleccione Mostrar todas las configuraciones en el cuadro de diálogo Opciones).
  • Marque "Varios archivos en el Explorador de soluciones" y haga clic en Aceptar. (Esta opción muestra el nodo "Varios archivos" en el Explorador de soluciones. Los archivos varios son archivos que no están asociados con un proyecto o solución, pero pueden aparecer en el Explorador de soluciones para su conveniencia si marca esta opción).
  • Localice su archivo en el Explorador de soluciones en "Varios archivos". Luego arrastre y suelte su archivo a donde debería pertenecer y listo. Esto copiará el archivo donde lo dejaste. Ahora puede eliminar de forma segura el archivo anterior en la carpeta Varios archivos si desea hacerlo

Créditos: https://stackoverflow.com/a/47662523/10471480


En caso de que la carpeta Scripts no esté visible:

  • Haga clic en "Mostrar todos los archivos" en el Explorador de soluciones
  • Localice la carpeta Scripts.
  • Haga clic derecho en Scripts y seleccione "Incluir en proyecto"
Mangaldeep Pannu
fuente
0

Lo que me funcionó es que copié todo el código dentro de la clase rota y eliminé ese archivo. Luego, abrí un archivo vacío y lo pegué.

Resultado : ¡volvieron los hermosos aspectos de sintaxis!

Eray Alparslan
fuente
0

Tenga en cuenta que si está utilizando la herramienta ReSharper, anulará el IntelliSense y mostrará su propio. Para cambiar eso, en VS, vaya a Extensiones -> ReSharper -> Opciones -> IntelliSense -> General, luego elija Visual Studio y no ReSharper.

usuario11897507
fuente
0

Antes de reiniciar y / o reinstalar VS, primero intente abrir cualquier otro de sus proyectos para ver si Intellisence funciona, si es así, el problema probablemente recaiga en su proyecto actual. Primero, la víctima más probable sería los paquetes NUGET con actualizaciones pendientes. Para arreglar esto,

  1. Haga clic derecho en referencias
  2. Proceda a administrar paquetes NUGET en Paquetes NUGET
  3. proceder a las actualizaciones Instalar actualizaciones y volver a verificar Intellisence
David, Ambuka
fuente
0

Intenté todo esto, pero terminé descubriendo que necesitaba hacer clic derecho en la solución en el Explorador de soluciones y agregar elementos existentes y encontrar el archivo de ensamblaje C # en el Explorador de Windows. Parece que hay un billón de problemas diferentes que le dan este error, esta es probablemente la solución más simple. Si hace doble clic en su script desde la unidad, no parece arrastrar el ensamblaje.

Kevin Martin
fuente
0

uno de los métodos anteriores me funcionó y acabo de encontrar una solución a este problema:
1. Primero, vaya al directorio del proyecto y elimine el .slnarchivo
2. Segundo, vaya a la unidad y haga doble clic en su script. Entonces Visual Studio se abrirá con un error, ingrese la descripción de la imagen aquí

  1. Luego haga clic en Aceptar y cierre el editor de Visual Studio.
  2. Finalmente, apague su Windows Defender y luego vaya al directorio de su proyecto y habrá un .csprojarchivo. Simplemente haga doble clic y abra esto desde su editor de Visual Studio y abra la carpeta de scripts dentro de la carpeta de activos y abra los scripts y el autocompletado funcionará perfectamente bien.
Indrajith Ekanayake
fuente
0

Actualización 2020 con Visual Studio Community 2019 y Unity 2019.3:

1) Abra el instalador de Visual Studio como administrador, seleccione modificar su instalación actual y agregue "Desarrollo de juegos para Unity"

2) Si agrega un nuevo script de C # en Unity ahora y lo abre (automáticamente) con Visual Studio, no se describe como "Varios" en la parte superior de la ventana, sino con "Assembly-CSharp", y el autocompletado funciona.

Andi Schroff
fuente
0

Otra posible solución:

  1. En la ventana del proyecto, haga clic en la carpeta Activos
  2. Haga clic derecho y Crear -> C # Script
  3. Haga doble clic en eso y espere.

Por alguna razón, este trabajo.

Kale_Surfer_Dude
fuente
-1

Probar con combinación: Ctrl + Alt + Space

Barna Kadar
fuente