Como o C # e o UnityScript diferem no desenvolvimento do Unity? [fechadas]


13

Além das diferenças óbvias de linguagem, como o UnityScript e o C # diferem ao desenvolver jogos no Unity3D?

  • Existe uma diferença notável de desempenho?
  • O código do UnityScript está empacotado como está? Se sim, isso ajuda na modabilidade do jogo?
  • É possível usar bibliotecas desenvolvidas para um idioma enquanto desenvolvem no outro?
  • Os dois idiomas podem ser misturados no mesmo projeto do Unity; codificando algumas partes em C # e outras no UnityScript?

Não há componente de escrita sábio. Mas o C # permite coisas extras, como importações de DLL. Fora isso, é uma "escolha". E completamente subjetivo. Não se esqueça, também há o Boo no qual você pode escrever seu código.
Sidar

2
Pergunta útil com respostas objetivas - parece injusto que ela tenha sido fechada.
UpTheCreek #

1
Há duas razões principais para esta pergunta ter sido encerrada, e elas não têm a ver com a utilidade da pergunta ou a objetividade das respostas. Primeiro, a postagem faz mais de uma pergunta não relacionada. Segundo, algumas das perguntas feitas são muito orientadas para a discussão e / ou duas amplas para serem apropriadas quando escritas. Quão "útil" ou popular é uma pergunta, ou quão boas são as respostas, são independentes da questão de ser ou não apropriada para o site.

Respostas:


12

Existe uma diferença notável de desempenho?

Não. Tecnicamente, há uma diferença de desempenho muito pequena , mas não é significativa o suficiente para basear sua escolha de idioma na maioria dos casos.

É possível usar bibliotecas desenvolvidas para um idioma enquanto desenvolvem no outro?

Sim. Desde que você mantenha a estrutura de pastas recomendada pelo desenvolvedor da biblioteca, essa biblioteca poderá ser acessada de qualquer idioma. Isso tem a ver com a ordem de compilação do Unity . Alguns recursos dos IDEs, como o preenchimento automático, podem não funcionar para a biblioteca escolhida. (EDIT: isso pode ser corrigido usando o plug-in gratuito UnityVS for Visual Studio.)

É possível misturar os dois idiomas no mesmo projeto do Unity, codificando algumas partes em C # e outras em Javascript?

Mais uma vez sim. Porém, fica complicado rapidamente, pois você precisa garantir que tudo seja compilado na ordem certa. Embora seja tecnicamente possível, recomendo que você escolha um idioma e continue com ele.

Qual idioma possui melhores recursos específicos para desenvolvedores de jogos disponíveis (livros, sites, fóruns)?

Difícil de dizer. Ao navegar nos fóruns, eu diria que o Javascript tem mais tutoriais e exemplos de código. O código geralmente é bastante fácil de portar para o outro idioma, e como as bibliotecas são utilizáveis ​​em vários idiomas, isso provavelmente não será um problema importante.


8

A primeira pergunta que todos os desenvolvedores iniciantes do Unity têm é C # ou JS. Sempre vá com c #.

Agora, agora você pode estar pensando: "Mas não quero aprender C # e já sei um pouco de JavaScript".

Mas a coisa enganosa que você precisa considerar é que o Unity JavaScript não é JavaScript. É um verniz superficial da sintaxe do ECMA sobre o .NET CLR. Ele não faz nenhuma das coisas legais que o JavaScript faz como gabinetes anônimos e as funções referenciam da maneira que você usaria normalmente. Ele tem suas próprias matrizes que não correspondem às matrizes .net normais e você encontrará muitas armadilhas e limitações que você poderia evitar usando o C #. O Unity JavaScript é apenas uma camada de sintaxe revestida de doces projetada para fazer o .NET parecer menos intimidador, nada mais. Isso fará mais mal do que bem.


7

Primeiro, eu recomendaria C # sobre JavaScript para programar no Unity por dois motivos principais. A primeira razão se resume à diferença de digitação forte / fraca que você meio que dispensou. Acho que a digitação forte funciona melhor do que a digitação fraca em um nível conceitual, mas, francamente, esse é um grande argumento que as pessoas têm e, portanto, vou me concentrar mais em uma questão prática específica: implantação no iOS (e possivelmente em outras plataformas também, mas esse é o apenas um que eu tenho certeza) requer digitação estática. O Unity até tem uma diretiva "#pragma strict" que pode forçar a digitação estática no JavaScript por esse motivo, mas isso apenas me leva ao meu segundo motivo ...

Em segundo lugar, o JavaScript no Unity não é totalmente o mesmo que o JavaScript em um navegador. Isso cria problemas quando você tenta aplicar conhecimento de fora do Unity (ou seja, a maioria dos recursos sobre JavaScript) à programação no Unity. É por isso que muitos desenvolvedores do Unity se referem à linguagem como UnityScript.


Agora, para resolver suas perguntas específicas:

Existe uma diferença notável de desempenho?

Na verdade, não ( alguns detalhes )

O código javascript está empacotado como está? E se sim, isso ajuda na modabilidade do jogo?

Depende da plataforma, e não, isso realmente não ajuda na modabilidade

É possível usar bibliotecas desenvolvidas para um idioma enquanto desenvolvem no outro?

Acho que sim (embora eu nunca precisei fazer isso, porque todas as bibliotecas que eu uso foram programadas em c #)

É possível misturar os dois idiomas no mesmo projeto do Unity, codificando algumas partes em C # e outras em Javascript?

Sim (embora eu tente evitá-lo, por motivos de consistência)


dentedpixel.com/developer-diary/… talvez queira adicionar isso à sua resposta. Voto a favor.
Grey

linke interessante, adicionado
jhocking
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.