Continuando…

Agora é só selecionar o inimigo, duplicar ele ( Ctrl+D ) e espalha-lo pelo cenário.
Guias
- Vamos agora criar os inimigos, na verdade vamos criar um e duplicá-lo.
- Crie um cubo para ser o inimigo, scale-o até o tamanho que vc achar ideal para o inimigo, adicione o componente rigidBory nele,marque Frezze rotation e coloque a massa como 90, nos post anteriores mostrei como fazer isto.
- Crie um novo javaScript, renomei-o para inimigo e cole o código abaixo nele.
//personagem
var personagem : Transform;
//Velocidade do tiro
var velTiro = 150.0;
//Obj bala
var balaObj : GameObject;
//Var para resetar
private var posIni:Vector3;
function Start(){
//Pega posição para resetar
posIni = transform.position;
mudaLado();
Auto();
}
function reseta(){
transform.position = posIni;
}
//Se levou um tiro morre
function OnCollisionEnter (collision : Collision)
{
//Se levou um tiro morre
if(collision.gameObject.tag == "bala"){
Destroy(gameObject);
}
}
function FixedUpdate ()
{
//Se estiver longe do personagem anda
var pos = transform.position - personagem.position;
//print(pos.magnitude);
if(pos.magnitude > 200)
transform.Translate(Vector3.forward * Time.deltaTime * 15);
//Longe do cenario reseta
if(transform.position.x > 1800 || transform.position.x < 200 || transform.position.z > 1800 || transform.position.z < 200){
reseta();
}
}
function mudaLado(){
while(active){
//Sorteia um novo lado para andar
var ladoSorteado = Random.Range(-180,180);
transform.eulerAngles = Vector3(0, ladoSorteado, 0);
yield WaitForSeconds(8);
}
}
function Auto(){
//Verifica se esta proximo ao jogador, caso sim ele vira para ele e atira
while(active){
var pos = transform.position - personagem.position;
//print(pos.magnitude);
if(pos.magnitude < 200){
transform.LookAt(personagem);
Atira();
}
yield WaitForSeconds(Random.Range(0,3));
}
}
function Atira () {
//Função que atira no personagem
var bala = Instantiate(balaObj,transform.position,transform.rotation); //GameObject.CreatePrimitive(PrimitiveType.Sphere);
bala.tag = "balaIni";
bala.AddComponent(Rigidbody);
bala.rigidbody.velocity = (transform.forward * velTiro);
bala.rigidbody.mass = 1;
}
|
- Coloque este script no inimigo que vc criou( cubo ), e nas propriedades (Janela Inspector ) carregue os parâmtros com os seguintes dados:
- Personagem: Arraste o personagem até este campo.
- BalaObj: Arraste o Prefab da Bala até este campo.

Agora é só selecionar o inimigo, duplicar ele ( Ctrl+D ) e espalha-lo pelo cenário.
- Vamos agora criar mais um javaScript, desta vez para controlar a vida do personagem, crie, renomeio para vida e cole o código abaixo:
//Life
private var vida:int = 100;
//Arma para ser retirada quandomorre
var arma : GameObject;
function OnCollisionEnter (collision : Collision)
{
//Se foi atingido retira vida
if(collision.gameObject.tag == "balaIni"){
Destroy(collision.gameObject);
vida-=10;
verifica();
}
}
function verifica(){
//Verifica se morreu, caso sim reinicia o jogo
if(vida <= 0){
gameObject.GetComponent("mov_personagem").enabled = false;
Destroy(arma);
yield WaitForSeconds(5);
Application.LoadLevel(0);
}
}
function OnGUI ()
{
//Mostra a vida na tela
if(vida > 0){
GUILayout.Label("Vida: "+vida);
}else{
GUILayout.Label("Game Over");
}
}
|
- Coloque este script no personagem.
- No parâmetro arma arraste a arma que esta conectada a Main Camera para que quando o personagem morrer a arma possa ser retirada.
Pronto!
Se você chegou até aqui ja deve ter o jogo rodando, agora vc pode adicionar mais elementos como som por exemplo ( é só arrastar o som para dentro da janela Project e depois arrastar para o objeto) e outros objetos para cena.



Sem Comentários
Postar um comentário