Escolar Documentos
Profissional Documentos
Cultura Documentos
Autor: Graham McAllister Revisado por: Jeff & Aydelotte Amir Ebrahimi Tempo para completar: 34 Horas
Contedo
1. Parte 1: Introduo
Pr-requisitos ......................................................................................................................3 Iniciando um novo projeto ..................................................................................................3 Configurando o ambiente do jogo .......................................................................................4 Adicionando o personagem principal ..................................................................................4 Adicionando uma arma .......................................................................................................5 Criar o objeto Missile ..........................................................................................................6 exploses de msseis .........................................................................................................10 Os efeitos sonoros .............................................................................................................13 Adicionando uma GUI ......................................................................................................13 Fsica(Physics) ..................................................................................................................15 Agradecimentos ................................................................................................................19
Parte 1: Introduo
Este tutorial ir detalhar como para fazer um simples primeiro lugar Person Shooter (FPS). vai introduzir 3D fundamentais programao de jogos conceitos e dar dicas sobre como pensar como um programador De jogos.
Pr-requisitos Este tutorial assume que voc esteja familiarizado com a interface de Unidade e de script bsica conceitos. Iniciando um novo projeto Baixar FPS_Tutorial.zip,
Importar o padro
Pacote de ativos da Unidade a partir do seu Pacotes padro Unidade pasta onde est instalado.
Depois de importar, voc vai Unidade de ver construdo no "Standard Ativos "no Projeto Painel. Quando ns criamos novos ativos, melhor coloc-los em pastas queagrup-los acordo com sua funo, por exemplo, Foguete, exploso de udio, etc
No painel Projetos, selecione o mainLevelMesh de objetos / mainLevelMesh / mainLevelMesh No painel Inspector, dentro das opes FBXImporter voc encontrar o Generate Aceleradores de opo ". Alternar essa opo por diante. Se no fizermos isso, o jogador simplesmente cair at o nvel (sem coliso). Arraste o mainLevelMesh na cena.
No h necessidade de acrescentar uma luz para a cena, o nvel j est totalmente lightmapped. O nvel importado usa lightmaps para toda a iluminao que nos permite usarprebaked sombras. Lightmaps so muito bons para o desempenho, especialmente se voc deseja criar um instalao de iluminao complexas. Agora voc est pronto para adicionar um personagem no meio ambiente.
Voc dever ver um objeto cilindro que representa o jogador, trs setas grandes para alterar a localizao no espao 3D para o objeto (se voc no v trs setas, em seguida, pressione a tecla 'W'), e uma malha branca, que mostra viewport do objeto (onde ele est olhando). O Controlador de FPS agora o padro da cmera, movendo-se este objeto, voc muda a viso atual na visualizao do jogo. Voc tambm notar que o controlador de FPS tem um cone de cmera em cima dela. Mover o personagem para que est acima do nvel do solo no meio ambiente. Como no temos mais nenhuma necessidade para a cmera principal, voc pode exclu-lo.
aperte Play, agora voc deve ser capaz de se mover em torno do nvel usando o mouse e teclado (teclas do cursor para mover ou W, A, S, D).
Voc j criou um FPS muito simples, vamos dar ao jogador uma arma.
Primeiro, vamos adicionar um objeto de jogo para representar o lanador de granadas. Um objeto de jogo qualquer item no mundo 3D (player, nvel, sons), os componentes so as propriedades que o objeto jogo tem. Portanto voc aplicar componentes para objetos do jogo. Da principal GameObject selecione Menu> Criar vazio, e renomear o objeto para "Launcher" no painel Hierarchy. Note, esse objeto invisvel como ela e objeto vazio, no entanto, apenas um espao reservado para o nosso lanador de msseis.
Agora vamos chegar a perto de nosso controlador FPS para que possamos ver onde posicionar o lanador de arma. Selecione o controlador FPS no painel de hierarquia e garantir que o cursor Ver sobre o Cena, 'F' de imprensa (frame selecionado). Esta concentra-nos no jogador (o atualmente selecionado item). Agora selecione o lanador do Painel de hierarquia e escolha Objeto do jogo> Mover-se para ver a partir do menu principal. Observe como o Lanador objeto agora colocado perto do Controlador FPS. Podemos agora usar as alas para coloque o lanador de aproximadamente onde as mos devem ser. NOTA Voc pode fazer o personagem para o canhoto ou destro alterando a localizao de este objeto, sem necessidade de alterar qualquer cdigo. Verifique se o seu layout de janela Unidade est no modo de 2 por 3 (Janela> layouts> 2 por 3), e pressione o boto Play. Faa Lanador est selecionado na hierarquia Ver e ao mesmo tempo assistindo a cena viso, mover o personagem ao redor. voc perceber que nosso objeto lanador no se move com o nosso personagem (voc pode pressionar Jogar para parar o jogo a correr agora). Para resolver este problema arrastar o objeto para o objeto Lanador Cmera Principal que pertence ao Controlador FPS no painel Hierarchy. bom para quebrar o Conexo pr-fabricados. Agora execute o jogo novamente e ver a vista de cena, a Lanador deve agora avanar com o nosso carter. Ns temos associados a Lanador objeto jogo com um objeto que se move em todos os 3 eixos (a cmera).
Este o comeo do script, que define a propriedades e declara uma funo chamada Update. if( Input.GetButtonDown( "Fire1" ) )
Primeiro queremos verificar quando o usurio pressiona o boto de fogo. "Fire1" mapeado para ambos o boto esquerdo do mouse ea configurao de teclado atual (o que pode ser editado
Declaramos uma varivel para armazenar uma referncia para o objeto instanciado. O tipo deste varivel Rigidbody, isso ocorre porque o mssil deve ter um comportamento fsica.
Para instanciar um objeto na Unidade, usamos a funo Instanciar com trs parmetros, o objeto para criar uma instncia, a posio 3D do que deve ser criado no, e os rotao do objeto deve ter. H tambm um outro construtor, verifique a API guia, mas vamos usar este por enquanto.
O primeiro parmetro, projtil, o objeto que deseja criar. Ento, o que projtil de qualquer maneira? O projtil definido por voc dentro do editor. Para permitir que isso acontea, ns declaramos o projtil varivel fora de qualquer funo, o que torna pblico e expe -lo para o editor da Unidade. O objeto projtil poderia ter sido criado no cdigo, no entanto se voc deseja modificar (tweak) uma varivel, melhor fazer isso de dentro da Unidade editor.
O segundo parmetro, Transformar.Posio, cria o projtil na mesma posio no espao 3D como o lanador. Por que o lanador? Bem, o roteiro que estamos criando ser anexado ao lanador por isso, se queremos chegar a nossa posio atual em 3D, Transformar.Posio que d a ns (a palavra-chave transformar acessa o Transform de O objectivo do jogo, onde o script est em anexo).
O terceiro parmetro, transform.rotation, semelhante ao segundo parmetro, a no ser que cria o mssil com as propriedades de rotao igual ao lanador.
A prxima parte do cdigo faz com que a nossa mudana de msseis. Para fazer isso, ns damos a um mssil velocidade, mas em que direo (x, y ou z)? Ver na cena, clique no controlador de FPS, as setas movem aparecer (aperte 'W', se as setas no aparecem), um vermelho, uma
verde, e um azul. Vermelha indica o xaxis, verde denota o yaxis, e azul denota o zaxis. Como o azul est apontando na direo que o jogador est enfrentando, ns queremos para dar aos nossos msseis uma velocidade na zaxis.
Velocity uma propriedade da instantiatedProjectile. Como sabemos isso? Bem instantiatedProjectile, de Rigidbody tipo, e se olharmos para o API, vemos que a velocidade uma propriedade. D uma olhada em algumas das outras propriedades que Rigidbody tem, tambm. para definir a velocidade preciso especificar a velocidade em cada eixo. No entanto, h uma ligeira emisso. Objetos em 3D so especificados usando dois modelos de coordenadas; local e mundial. em locais espao, coordenadas so relativas ao objeto que voc est trabalhando. No espao do mundo, coordenadas so absolutos: at, por exemplo, sempre a mesma direo para todos os objetos. Rigidbody.velocity deve ser especificado no espao do mundo. Assim, ao atribuir a velocidade voc precisa converter a partir do zaxis no espao local (a frente) para seus respectivos mundo direo do espao. Voc faz isso usando o
transform.TransformDirection funo que leva um Vector3 como um argumento. A velocidade varivel tambm est exposta, para que possamos ajust-lo no editor.
Physics.IgnoreCollision (instantiatedProjectile. colisor, transform.root.collider); } } Aqui est o cdigo completo para MissileLauncher.js:
var projectile : Rigidbody; var speed = 20; function Update() { if( Input.GetButtonDown( "Fire1" ) ) { var instantiatedProjectile : Rigidbody = Instantiate( projectile, transform.position, transform.rotation ); instantiatedProjectile.velocity = transform.TransformDirection( Vector3( 0, 0, speed ) ); Physics.IgnoreCollision( instantiatedProjectile. collider, transform.root.collider ); } }
Anexar o script MissileLauncher ao Iniciador no Controlador de FPS. voc pode confirmar que o script MissileLauncher est agora conectado ao Iniciador, selecionando Lanador-lo no Ver Hierarquia e verificar que o MissileLauncher script mostrado no painel Inspector.
O pr-fabricada de msseis que ns criamos anteriormente no tem sido associada com o projtil varivel em nosso script, ento devemos fazer isso dentro do editor. A varivel projtil de tipo Rigidbody, ento primeiro temos que garantir que os nossos msseis tem um anexo Rigidbody.