EDIT: Ho modificato l'intera domanda, poiché non è solo per Unity3D, ma per tutti i progetti .sln.Utilizzo del codice di Visual Studio e utilizzo dei simboli definiti
Ho un'installazione di Visual Studio Code (Not Visual Studio, ma questo: https://code.visualstudio.com/) sul mio Macbook al lavoro. VSCode funziona altrimenti bene con i progetti normali e Unity3D. Ottengo Intellisense su tutte le classi, comprese quelle specifiche di Unity3D, come GameObject. Quindi penso che la mia installazione e la sequenza di avvio siano corrette.
Unico problema che ho, è che VSCode non sembra riconoscere le costanti definite nei file .csproj. Innanzitutto ho notato questo con alcuni plugin Unity3D, ma è persistente anche nei normali progetti di Visual Studio.
Il mio progetto di esempio è un'applicazione fittizia scaricata da Internet, ma funziona completamente su MonoDevelop. Questo è il mio codice
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DummyConsoleApplication
{
class Program
{
static void Main(string[] args)
{
tester();
}
#if DEBUG
static void tester(){
}
#endif
}
}
La chiamata di funzione nel Main causa un'eccezione non trovato sul l'editor, ma compila bene, dal momento che il file Csproj ha questa linea:
<DefineConstants>DEBUG;TRACE</DefineConstants>
Qualsiasi verifica su se questo è un comportamento normale per VSCode sarebbe molto apprezzato. Inoltre, se qualcuno è a conoscenza di una soluzione, anche quella hacky, per superare questo bug e costringere Intellisense a completare automaticamente sarebbe di aiuto.
L'errore che ottengo è:
The name 'tester' does not exist in the current context [DummyConsoleApplication]
Il mio hardware è un Macbook con Yosemite e il mio compilatore è DNX-mono.1.0.0-beta4.
Potrebbe avere qualcosa a che fare con i finali di linea? Devi convertire le terminazioni di riga quando usi il codice di Visual Studio in Unity. e sì, MonoDevelop è un incubo. –
Beh, è qualcosa che non ho ancora fatto. Potresti indicarmi la giusta direzione su come farlo? – Quido3
Penso di aver convertito le terminazioni di linea. Ho usato un programma di utilità denominato LineBreak per farlo. Non ha corretto l'errore. Se stai usando VSCode, puoi controllare il comportamento nel tuo ambiente? – Quido3