Domanda

Sto iniziando con il gioco Dev usando Unity3D e posso vedere che ci sono 3 lingue supportate per la creazione di script: c #, unityscript e boo ...

Sebbene, proveniente da un passato del web-design sono ovviamente usato con JavaScript, ma dopo pochi tentativi potrei notare che Unity3D non ha davvero il pieno supporto per la lingua dello script e alcuni elementi come new Date().valueOf() e alcune altre affermazioni all'interno dei metodi Come l'attributo arguments e molti altri non funzioneranno correttamente, sembra che il mio file non possa avere un metodo wrapper che avvolge tutti gli altri metodi come:

(function (scope) {
    function Start() {
        ...
    }
    ...
}(this));
.

E quando si utilizza qualcosa come new Date().valueOf() che è valido in JS Io ottengo:

.

Missingmethodexception: Metodo non trovato: 'System.Datetime.Valueof'. Boo.lang.runtime.dynamicdispatching.methoddispatcherfactory.produceExtensionDispatcher ()

Quindi forse il compilatore trasforma quel codice iniziale 'unityscript' nel linguaggio boo? Quindi forse Boo è la giusta scelta "nativa" e forse UnityScript non è il modo migliore per andare quando si sviluppano le app Unity3D?

Stavo pensando a un linguaggio che ha pieno supporto a tutte le classi e metodi nativi conosciuti che funzionerà senza problemi?

Scusa per eventuali errori sopra menzionati e per favore fammi sapere cosa ne pensi.

Altri suggerimenti

Se vuoi essere uno sviluppatore nell'unità e costruire una carriera su di esso, imparare c # e usarlo - non sprecare il tuo tempo con UnityScript. Puoi usare C # al di fuori dell'unità per la programmazione. Se la tua carriera principale è già Sviluppo Web (o sarà), quindi continuare a utilizzare JavaScript perché alla fine c # e UnityScript hanno la stessa funzionalità ma C # è molto più ampiamente utilizzata per programmare giochi e applicazioni.

La maggior parte delle attività nel negozio che ho usato sono C # o offrono sia JS che C #. La miscelazione tra le lingue crea gravi problemi di dipendenza perché per utilizzare una classe in entrambe le lingue è già stata elaborata dall'ordine di caricamento dello script di Unity. Per utilizzare una classe definita JavaScript in C #, tale file di script deve essere stato elaborato prima del file di script C #. Se la classe JavScript ha quindi bisogno di qualcosa dalla classe C #, dovresti trovare modi intorno ad esso perché semplicemente non è più possibile dal file JavaScript. L'unità ha modi per definire l'ordine di scrittura.

Ho pensato che ti avrei avvisato di mescolare c # con UnityScript perché se non ti concentri su uno o l'altro, si imbatterà in questo problema. In definitiva, c # è il centro di mezzo tra lingue ambigue come VB e JavaScript e lingue pedanti come C ++ (ho uno sfondo C / C ++ di circa 10 anni).

Il tuo titolo "Qual è il miglior XXX" conduce a risposte giudiziarie, ma sto cercando di dare il miglior consiglio possibile senza essere soggettivi. C # ti permetterà di continuare, anche se l'unità dovesse andare via un anno da ora. UnityScript / JavaScript ti consentirebbe solo di trasferirsi in un sviluppatore web. A C # Developer può facilmente trasferirsi in UnityScript / JavaScript, ma il contrario è molto più difficile (non impossibile, solo più difficile).

Dovresti usare C #.È popolare, maturo, nativo di .net.C # è quali grandi squadre usano.L'apprendimento C # sarà utile in futuro.JS in Unity3d non è vero JS come già menzionato e nessuno ha sentito parlare di Boo.

JS è il linguaggio più popolare per l'uso con l'unità.Ma la lingua è implementata in mono, e quindi tutte le restrizioni in quella implementazione influenzeranno anche gli script di unity.

Non so come l'implementazione mono di JS funziona, ma a giudicare dal messaggio di errore, utilizza i tipi di dati inizialmente definiti per BOO, almeno.Tuttavia, ciò non significa che JS è "trasformato in BOO".Entrambi sono compilati nello stesso bytecode, che è jit'ed e gestito dal runtime mono.Quindi né il linguaggio è "più nativo" dell'altro.

Vantaggi di checkout e svantaggi dell'utilizzo di C # e script Java da qui . C # è un po 'più veloce di JavaScript e ottieni funzionalità extra fornite da C #.Puoi ottenere opinioni dei popoli da qui.

Sviluppo con C # ha il vantaggio di Visual Studio 2010. Fornisce una migliore funzionalità di completamento del codice rispetto a Mono.

Solo in JavaScript, le variabili possono avere un tipo non specificato.Questo si verifica solo se non si assegna un valore durante la dichiarazione della variabile.

Le prestazioni sono più lente con variabili digitalizzate dinamicamente e puoi correre in problemi di fusione.IIF Questa è una preoccupazione, usa #pragma rigoroso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top