Pergunta

Eu estou começando com o game dev usando Unity3d e eu posso ver que há 3 idiomas com suporte para a criação de scripts:C#, unityscript e Boo...

embora, vindo de um web-design passado estou, obviamente, utilizado com javascript, mas depois de algumas tentativas eu podia notar Unity3d realmente não tem suporte completo para a linguagem de script e alguns elementos como new Date().valueOf() e algumas outras declarações dentro de métodos, tais como o atributo arguments e muitos outros não funcionar corretamente, também parece que o meu arquivo não pode ter um wrapper método que envolva todos os outros métodos, como:

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

e quando algo como new Date().valueOf() o que é válido em JS eu recebo:

MissingMethodException:Método não encontrado:Do sistema'.Data / hora.valueOf'.Boo.Lang.O tempo de execução.DynamicDispatching.MethodDispatcherFactory.ProduceExtensionDispatcher ()

Por isso, talvez o compilador transforma a inicial 'unityscript' código em linguagem Boo?então, talvez a Vaia é o 'nativo' choice e talvez unityscript em si não é a melhor forma para ir ao desenvolver unity3d apps?

Eu estava pensando em uma linguagem que tem suporte completo para todos os conhecidos nativo classes e métodos que vai funcionar sem problema?

Desculpe pelos erros acima mencionados e, por favor, deixe-me saber o que você pensa.

Foi útil?

Solução

A unidade não utilizar o 'real' Javascript per se.Veja:

http://forum.unity3d.com/threads/1117-Javascript-Version

UnityScript é baseado em javascript 2.0.Existem algumas coisas em falta (switch declarações, etc.), mas eles recebem a metade da velocidade de C++, que é mais rápido que o Mozilla.

Uma vez que você se acostumar a ele, desenvolvendo-se em 'JS' para a unidade é muito, muito rápido e flexível...mas, claro, se você estiver indo para desenvolver componentes nativos, ou interface para nada em C, você precisará usar C# (no final, C# não é difícil de aprender).

Outras dicas

Se você quer ser um desenvolvedor na Unidade e construir uma carreira em ti, aprender C# e usá-lo - não perca seu tempo com UnityScript.Você pode usar C# fora de Unidade para programação.Se sua carreira principal já está em desenvolvimento web (ou vai ser) e, em seguida, continuar a usar o javascript, pois, em última análise, C# e UnityScript têm a mesma funcionalidade, mas o C# é muito mais amplamente utilizado para a programação de jogos e aplicativos.

A maioria dos ativos na loja que eu utilizados estão em C# ou oferecer tanto JS e C#.A mistura entre as línguas cria sérios problemas de dependência, já que para usar uma classe em qualquer língua tem de já ter sido processado pela Unidade de script de ordem de carregamento.Para usar um Javascript classe definida em C#, o arquivo de script deve ter sido processadas antes do C# arquivo de script.Se a net classe, em seguida, mais tarde, precisa de algo a partir de classes do C#, você teria que encontrar maneiras de contornar-lo, porque simplesmente não é mais possível a partir do ficheiro de javascript.A unidade possui métodos para definir o script de ordem.

Eu pensei que eu iria avisá-lo sobre a mistura de C# com UnityScript porque se você não se concentrar em um ou outro, você irá se deparar com este problema.Em última análise, o C# é o meio termo entre o ambíguo linguagens como VB e JavaScript, e pedante linguagens como C++ (eu tenho um C/C++ de fundo de cerca de 10 anos).

O título "Qual é o melhor xxx" leva a opinativo respostas, mas eu estou tentando dar o melhor aconselhamento possível sem ser subjetiva.C# vai permitir-lhe para continuar, mesmo se a Unidade fosse para ir para longe de um ano a partir de agora.UnityScript/JavaScript só permitiria a mudar-se para ser um desenvolvedor web.A C# desenvolvedor pode facilmente mover-se em UnityScript/JavaScript, mas o inverso é muito mais difícil (não impossível, só um pouco mais difícil).

Você deve usar o c#.Ele é popular, maduro, nativa .LÍQUIDA.c# é que as grandes equipes de uso.Aprendendo c# vai ser útil no futuro.JS em Unity3D não é real JS como já foi mencionado, e ninguém soube de Boo.

JS é a língua mais popular para uso com a Unidade.Mas a linguagem é implementado em Mono, e para quaisquer restrições em que a implementação vão afetar Unidade de scripts também.

Eu não sei como o Mono implementação da JS funciona, mas a julgar pela mensagem de erro, ele usa tipos de dados definido inicialmente por Boo, pelo menos.No entanto, isso não significa que a JS é "se transformou em "Boo".Ambos são compilados para o mesmo bytecode, que é JIT ed e executado pelo Mono runtime.Então, nem a linguagem é mais "nativo" do que o outro.

Checkout vantagens e desvantagens da utilização de c# e Java script aqui.C# é um pouco mais rápido do que JavaScript e obter recursos extras fornecidos pelo C#.Você pode obter povos opinião aqui.

Desenvolvimento com c# tem a vantagem do Visual Studio 2010.Fornece o melhor recurso de conclusão de código de Mono desenvolver.

No JavaScript, somente, as variáveis podem ter um não especificado tipo.Isso ocorre apenas se você não atribuir um valor ao declarar a variável.

O desempenho é mais lento com dinamicamente tipada variáveis, e que você pode executar em fundição de problemas.Iif esta é uma preocupação, use #pragma.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top