Escolar Documentos
Profissional Documentos
Cultura Documentos
Enviada: 2009/11/08 17:56 Esta a minha introduo criao de scripts com a verso da Unidade de Javascript, tambm conhecido como UnityScript. Ele assume nenhuma experincia anterior em programao. Se voc tem alguma experincia anterior em programao, voc pode querer pular para funes e classes. Se voc um especialista, voc provavelmente vai querer evitar esse thread totalmente, como provvel que voc se sentir ofendido com o quanto eu simplificada alguns conceitos!: Wink: Se voc deseja executar o cdigo de exemplo, voc precisa estar familiarizado com a interface Unity e sabe como criar um script e anex-lo a um objeto de jogo. Veja os links abaixo. Intro para a interface Unity:http://download.unity3d.com/support/...Essentials.pdf Introduo ao Scripting com Unity leia sees rotuladas "script Nosso primeiro" e "Fixao do script". http://download.unity3d.com/support/...20Tutorial.pdf texto em VERMELHO se aplica a
VARIVEIS
pensar em
uma varivel como um recipiente que contm alguma coisa. Voc pode escolher para citar qualquer coisa varivel que desejar , desde que no contenha espaos, comea com uma letra (de preferncia caso inferior), contm apenas letras, nmeros ou sublinhados, e no uma palavra reservada. Use 'var' a palavra-chave para criar uma varivel. Vamos chamar 'caixa' o nosso primeiro.
Cdigo:
1. var caixa;
L vai voc, voc declarou a varivel primeiro! Se voc est querendo saber sobre o ponto e vrgula no final, as declaraes (comandos) em Javascript deve terminar com um ponto e vrgula. programadores do iPhone, se voc declarar uma varivel sem defini-lo como um valor, voc deve indicar o tipo da varivel , neste caso String. Os tipos comuns incluem String, int, float, boolean, Array e. Note-se que a capitalizao apropriada necessria! caixa var: String; Claro, nossa caixa est vazia, ento vamos defini-lo como um valor, adicionando a seguinte linha:
Cdigo:
1. caixa = "ma" ;
Agora nossa caixa contm uma seqncia de texto (tipo de varivel), que passa a ser "ma". Note que voc pode declarar a varivel e configur-lo para um valor na mesma declarao:
Cdigo:
1. var box = "ma" ;
Mas, uma vez declarada, voc no pode declar-lo novamente. Voc pode, no entanto, alter-lo para outro valor (desde que o novo valor o mesmo tipo que o original). Cdigo:
1. caixa = "laranja" ;
Este um inteiro (int), o que significa nmeros inteiros apenas ... sem casas decimais. Mas ns tambm podemos fazer um nmero de ponto flutuante (float), que tem casas decimais:
Cdigo:
1. var myFloat = 10,5 ;
As variveis tambm podem conter valores booleanos. Um booleano simplesmente um valor true / false: Cdigo:
1. var gameover = verdadeiro ;
Vamos discutir estes mais tarde. Observe que uma varivel normalmente s pode conter uma coisa de cada vez. Mas podemos fazer uma varivel que contm vrias coisas, criando uma matriz:
Cdigo:
Esta varivel contm tudo que voc precisa para fazer uma torta de ma! Se quisssemos ver o contedo do applepie, poderamos produzir para o console usando o comando da Unidade de depurao. Adicione esta linha para o cdigo acima:
Cdigo:
1. Depurar . Log ( applepie ) ;
No jogo, o console deve exibir: ma, acar mascavo, manteiga, massa de torta Para acessar um nico elemento (item) de uma matriz, podemos acess-lo atravs de seu ndice (posio na matriz). Isso pode parecer confuso, mas os ndices comeam em 0. Assim, o ndice 0 , na verdade, o primeiro elemento na matriz.
Cdigo:
1. var applepie = array ( "ma" , "Brown Sugar" , "manteiga" , "massa de torta" ) ;
Voc pode realmente usar a indexao com Strings tambm. O cdigo a seguir mostra o primeiro caractere de "Ol", a letra "h": Cdigo:
1. var myString = "Ol" ;
Agora vamos alterar nossas variveis de outras maneiras. Podemos adicionar variveis:
Cdigo:
1. var numero1 = 10 ;
2. var numero2 = 11 ;
Se voc adicionar um int (inteiro) para um float (nmero de ponto flutuante), o resultado tornase um float: Cdigo:
1. var numero1 = 100 ;
Obviamente, tambm podemos subtrair / dividir / multiplicar ints e carros alegricos. Menos bvio, tambm podemos 'adicionar' cordas. Esta mescla-los juntos:
Cdigo:
1. var string1 = "ma" ;
Se somarmos um nmero para uma string o resultado se torna uma string. Podemos tambm multiplicar cordas.
Cdigo:
1. var greeting = "Ol" ;
Infelizmente, no podemos dividir ou subtrair cordas. H maneiras de dividir seqncias e remover partes de cordas, mas que um tpico mais avanado. Vamos encerrar nossa discusso sobre variveis com nmeros de incremento (mudana de seu valor por um determinado perodo). Primeiro, declarar uma varivel e defini-lo como um :
Cdigo:
1. var = nmero 1 ;
O acima adiciona 1 para o nosso nmero, e torna-se 2. Mas os programadores so preguiosos, e decidiu que era muito longo. Assim, eles abreviado para:
Cdigo:
1. nmero + = 1 ;
Isto simplesmente uma abreviao para nmero = nmero + 1; Mas adivinhem? Programadores preguiosos decidiu at isso foi por muito tempo, e encurtou-o para:
Cdigo:
1. nmero + +;
Use o que faz mais sentido para voc, todos eles fazem a mesma coisa! Mas note que se voc optar por incrementar por um valor diferente de 1, + + no vai funcionar. + + uma abreviao para + = 1 apenas. Voc tambm pode fazer o mesmo com a subtrao:
Cdigo:
1. nmero -;
Mas, para a diviso e multiplicao, voc deve usar uma das formas mais longos: Cdigo:
1. = nmero nmero / 2 ;
2. nmero * = 2 ;
diviso.
instrues IF
Se so declaraes condicionais. . Se a
condio for avaliada como verdadeira, fazer algo Podemos fazer uma comparao entre dois valores usando dois sinais de igual, == "nmero == 10" avalia como verdadeiro se a varivel nmero igual a 10, caso contrrio, ele avalia como falso. Nota: importante lembrar de usar dois sinais de igual quando se comparam as variveis / valores, mas um sinal de igualdade, ao definir uma varivel para um valor! A seguir cria uma varivel e define-a como verdadeira, verifica se a varivel igual a true, e se assim imprime uma seqncia de texto para o console:
Cdigo:
1. var gameStarted = verdadeiro ;
2. se
( gameStarted == verdadeiro )
3.
A descrio acima realmente redundante, uma vez que a varivel 'gameStarted' um booleano. No h nenhuma razo para verificar "se for verdade igual a verdade", basta verificar "se for verdade": Cdigo:
1. var gameStarted = verdadeiro ;
2. se
( gameStarted )
3.
Se voc est se perguntando por que eu no coloquei um ponto e vrgula para trs se (gameStarted), porque, tecnicamente, apenas a primeira metade da declarao. Eu poderia t-lo escrito assim: Cdigo:
1. se ( gameStarted ) Debug . Log ( "Jogo comeou" ) ;
2.
3. }
Esses parnteses representam um bloco de cdigo, e diga o comando if para executar qualquer coisa no meio ... se a condio verdadeira! Quando se contm apenas uma instruo para executar, os colchetes so opcionais. Mas se ele contiver mais de uma declarao, voc deve usar os suportes! Note que ponto e vrgula no so necessrias depois colchetes.
Cdigo:
1. var gameStarted = false ;
2. Se
( gameStarted == falso ) {
3.
gameStarted = verdadeiro ;
4.
5. }
Leia a segunda linha de cdigo acima. Lembre-se os programadores preguiosos? Eles no querem escrever Cdigo:
1. se ( gameStarted == falso )
Mas voc sabe o que? Por que escrever "no" quando eu posso encurtar esse tambm? Cdigo:
1. se
( ! gameStarted )
! Sim, um ponto de exclamao significa 'no' para programadores preguiosos Voc tambm pode combinar isso com iguais, onde ela significa "no igual":
Cdigo:
1. var resposta = 1 ;
2. se
( resposta =! 42 )
2. se
( idade> 18 )
3.
4. mais
se
( idade < 18 )
5.
6. outro
7.
Observe o 'else if' e 'else' palavras-chave? se o primeiro se a condio instruo falha (avalia como falso), que verifica a condio sob else if. Se isso um falhar, ele ir verificar o prximo else if (se estiver disponvel) e, finalmente, se todas as condies falhar, ele executa a declarao em outro lugar. Novamente, se o 'se', 'else if', ou 'Else' declaraes conter mais do que uma declarao, cada bloco de cdigo devem ser separados por colchetes. Voc tambm pode verificar as condies de mltiplas em uma nica instruo:
Cdigo:
1. se ( idade> = 21 && sexo == "feminino" )
2.
buyDrink = verdadeiro ;
Acima, foi introduzido maior do que ou igual a> = e o operador, o qual tem dois caracteres ampersand: &&. Se ambas as condies forem verdadeiras, a instruo executada. Se at mesmo uma falsa, a afirmao no . Observao: se voc deseja executar o cdigo acima, lembre-se de criar variveis para idade (int), sexo (String), e buyDrink (boolean) em primeiro lugar!
Cdigo:
1. se ( motor == "Unity" | | desenvolvedor == "amigo" )
2.
buyGame = verdadeiro ;
Acima, ns utilizamos o operador OR, que de dois personagens de tubos: | |. Se qualquer condio for verdadeira, a instruo executada. Se ambas so falsas, a declarao no . Observao: se voc deseja executar o cdigo acima, lembre-se de criar variveis para o motor (String), programador (String), e buyGame (boolean) primeiro! Se tambm pode ser usado com o palavra-chave 'in'. Esta funo geralmente utilizada com matrizes:
Cdigo:
1. var nomes = array ( "max" , "Rick" , "Joe" ) ;
2. se
( "Joe"
em
nomes )
LOOPING
Looping permite repetir comandos de uma certa quantidade de vezes, geralmente at que alguma condio seja atendida.que se voc quiser incrementar um nmero e exibir os resultados para o console? Voc poderia faz-lo desta maneira:
Cdigo:
1. var = nmero 0 ;
2. nmero + = 1 ;
4. nmero + = 1 ;
6. nmero + = 1 ;
E assim por diante ... ! mas isso redundante, e no h nada programadores preguiosos odeio mais do que reescrever o mesmo cdigo mais e mais Ento vamos usar um loop:
Cdigo:
1. var = nmero 0 ;
2. para
( i = 1 ; i <= 10 ; i + + ) {
3.
nmero + = 1 ;
4.
5. }
Ok, isso para a declarao na segunda linha pode parecer um pouco confuso. Mas muito simples na verdade. i = 1-criado uma varivel temporria i e configur-lo para 1. Note que voc no precisa usar var para declarar, ele est implcito. i <= 10-quanto tempo para executar o loop. Neste caso, continua a ser executado enquanto i menor que ou igual a 10. i + + como incrementar-loop. Neste caso, estamos incrementando por um, por isso usamos o i + + taquigrafia, para i + = 1 Se ns estamos apenas a impresso de 1-10, o nosso cdigo acima poderia ser encurtado. Ns realmente no precisa do nmero varivel:
Cdigo:
1. para ( i = 1 ; i <= 10 ; i + + )
2.
Depurar . Entrar ( i ) ;
Assim como se declaraes, colchetes so opcionais quando h apenas uma instruo para executar. Fale sobre bater num cavalo morto ... Podemos tambm contar para trs:
Cdigo:
1. para ( i = 10 ; i> 0 ; i - )
2.
Depurar . Entrar ( i ) ;
2.
Depurar . Entrar ( i ) ;
Ns tambm podemos usar um loop While, uma alternativa para Para declaraes. Enquanto executa repetidamente at que uma condio seja verdadeira.
Cdigo:
1. var = nmero 0 ;
2. enquanto
( nmero < 10 ) {
3.
nmero + +;
4.
5. }
Enquanto laos so mais teis quando usadas com valores booleanos. Apenas certifique-se a condio de escape finalmente encontrou, ou voc vai ser preso em um loop infinito eo jogo ir travar mais provvel! Cdigo:
1. var playerJumping = verdadeiro ;
2. var contador = 0 ;
3. enquanto
( playerJumping ) {
4.
5.
contador + = 1 ;
6.
se
7. }
Observe a quarta linha de cdigo acima? O que comea com duas barras? Isto significa que o texto a seguir um comentrio, e no ser executado. Os comentrios so teis para observar como o seu cdigo funciona para si ou para os outros, para a elaborao de texto de espao reservado para ser substitudo mais tarde (como acima), ou para comentar as sees do seu
FUNES
foram uma poupana de tempo, Espere at voc descobrir sobre funes! funes permitem que voc execute um monte de instrues em um nico comando. Mas vamos manter as coisas simples no incio. Permite definir (criar) uma funo que simplesmente exibe "Ol, mundo" no console.
Cdigo:
1. funo SayHello ( ) {
2.
3. }
Cdigo:
1. SayHello ( ) ;
Note o parnteses aps a nossa funo. Eles so necessrios, tanto quando ns definimos a nossa funo e cham-lo.Observe tambm que o nosso nome da funo capitalizado. Ele no tem que ser, mas capitalizando os nomes de funo a norma na Unidade. que se queramos uma funo para dizer coisas diferentes? Ns podemos passar um valor, ou argumento, para a funo:
Cdigo:
1. funo Say ( texto ) {
2.
3. }
Acima, o texto o argumento, uma varivel temporria que pode ser usado dentro da funo s. programadores do iPhone, voc tambm deve dizer qual o tipo do argumento , neste caso Cordas. funo Say (texto: String) { Agora, quando chamamos a nossa funo, temos de fornecer um argumento:
Cdigo:
1. Dizer ( "Funes so legais!" ) ;
2. Diga ( mytext ) ;
Outra coisa til funes podem fazer retornar um valor. A funo a seguir verifica se um nmero par e se assim ele retorna verdadeiro, seno ele retorna false: Cdigo:
1. funo EvenNumber ( nmero ) { / / iPhone programadores, lembrese de adicionar o tipo de arg (nmero: int);
2.
se
( nmero% 2 == 0 )
3.
4.
voltar
verdade ;
5.
outro
6.
retornar
falso ;
7. }
8.
9. var num = 10 ;
10. se
( EvenNumber ( n )
11.
Quando o comando de retorno executado em uma funo, a funo imediatamente saram (para de funcionar). Retorna no tem que retornar um valor: Cdigo:
1. funo de atualizao ( ) {
2.
se
( gameStarted! )
3. }
A funo Update () acima uma das principais funes na unidade. Voc no tem de cham-lo manualmente, ele chamado automaticamente cada
quadro.
SOBRECARGA
FUNES
complicado, mas realmente muito simples. . Isso significa que voc pode ter vrias verses de uma funo que lida com diferentes tipos de argumentos, ou nmeros diferentes de argumentos para lidar com diferentes tipos de argumentos, basta usar os dois pontos: para indicar o tipo de argumento que est sendo passado. Os tipos comuns incluem String, int, float, boolean, Array e. Note-se que a capitalizao apropriada necessria!
Cdigo:
1. funo PrintType ( item: Cordas ) {
2.
3. }
4.
6.
7. }
8.
10.
11. }
12.
14.
15. }
16.
18.
19. }
20.
/ / pega tudo
22.
23. }
24.
26.
27. }
28.
29. PrintType ( ) ;
CLASSES
portanto as variveis tm tipos diferentes, como String e int. Mas e se voc precisa de um novo tipo que faz algo diferente? Classes so simplesmente novos tipos que voc cria. Cdigo:
1. classe Pessoa {
2.
var
nome ;
3.
var carreira;
4. }
5.
A classe acima tem duas variveis de classe, ou propriedades nome e carreira. Voc acesslos, digitando o nome da instncia (neste caso, John), seguido de um perodo eo nome da propriedade. Voc tambm pode passar argumentos ao criar instncias de uma classe. Voc faz isso atravs da criao de um construtor, que uma funo especial que chamado automaticamente sempre que uma nova instncia da sua classe criada. Esta funo tem o mesmo nome de sua classe, e usado para inicializar a classe:
Cdigo:
1. classe animal {
2.
var
nome ;
3.
/ / este o construtor
4.
nome = n;
5.
6.
7. }
8.
Classes podem ter funes regulares tambm. Funes de classe so chamados mtodos. Novamente, voc acessar essas digitando o nome da instncia seguido por um ponto e do nome da funo (no esquea o parntese). Isto til para ter instncias interagir um com o outro: Cdigo:
1. classe Pessoa {
2.
var
nome : string ;
3.
4.
nome = n;
5.
6.
7.
8.
9. }
10.
Herana
Classes podem herdar ou estender (adicionar funcionalidade a) outra classe. A classe que ser herdada geralmente chamada de classe base ou classe pai. A classe estendida tambm chamada de classe filha ou classe derivada. Esta ser a nossa classe base: Cdigo:
1. classe Pessoa {
2.
var
nome : string ;
3.
/ / construtor
4.
nome = n;
5.
6.
funo Caminhada ( ) {
/ classe / funo
7.
8.
9. }
Para estender esta classe, criar uma nova classe com 'estende' a palavra-chave: Cdigo:
1. classe Mulher estende Pessoa {
2.
3.
/ / construtor
4. define nome
Super ( n ) ;
5.
6.
7.
funo Caminhada ( ) {
8.
9.
Depurar . Log ( "E ela to sexy!" ) ; / / adiciona funcionalidade adicional para a classe estendida
10.
11. }
Note que podemos acessar a base / propriedades pai da classe e funes usando a palavrachave "super". Se criar uma instncia de Mulher e Caminhada chamada de funo (), o pai da criana e funo so chamados de:
Cdigo:
1. amanda = Mulher ( "Amanda" ) ;
2. . amanda Ande ( ) ;
Cdigo:
1. var = nmero 10 ;
2. var
Para obter o comprimento de um Array (ou uma String), use o comprimento propriedade embutido:
Cdigo:
1. var animais = array ( "gato" , "cachorro" , "porco" , "golfinho" , "chimpanz" ) ;
Voc pode usar isso em um loop for. Adicione as duas linhas a seguir o cdigo acima: Cdigo:
1. para ( i = 0 ; i <animais. comprimento , i + + ) {
2.
3. }
. Isso exibe o contedo de nossa matriz, um item de cada vez Para adicionar um item a uma matriz, use a funo Add ():
Cdigo:
1. animais. Add ( "lemur" ) ;
Para dividir uma String em uma matriz, use a funo Split (): Cdigo:
1. var frase = "A ligeira raposa marrom saltou sobre o co preguioso" ;
Para se ter uma parte de uma String, use o Substring () funo. Substring recebe dois argumentos, o ndice inicial eo ndice final: Cdigo:
1. var frase = "A ligeira raposa marrom saltou sobre o co preguioso" ;
Para capitalizar uma seqncia de texto, use o ToUpper function (); Cdigo:
1. var misso = "ir fazer jogos divertidos!" ;
) ;
Como voc poderia esperar, h tambm uma funo ToLower (). Cdigo:
1. Depurar . Log ( ( "THE END" ) . ToLower ( ) ) ;
INFORMAES ADICIONAIS
Introduo ao Scripting com a Unidade http://download.unity3d.com/support/...20Tutorial.pdf Introduo Unidade de Programao em Unify Wiki http://www.unifycommunity.com/wiki/i..._Chapter_1_Old Unidade Script Referncia Pagehttp://unity3d.com/support/documenta...riptReference/ MSDN - Isto para programadores avanados. Pesquisar JSCRIPT, como bastante semelhante Unidade javascript. http://msdn.microsoft.com/en-us/library/aa187916.aspx