[TUTORIAL]Sistema precisão(deixar ela meio vesga) e uma bala simples
3 participantes
Página 1 de 1
[TUTORIAL]Sistema precisão(deixar ela meio vesga) e uma bala simples
Esse script era do Angry Bots da unity 3d(projeto exemplo).
Mas foi reprojetado para servir melhor(ele era um auto fire para joystick)
Mas foi reprojetado para servir melhor(ele era um auto fire para joystick)
- Código:
using UnityEngine;
using System.Collections;
public class Arma : MonoBehaviour {
public GameObject Bullet;//bala
public Transform spb;// spawn da bala
public float coneAngle = 1.5F;//angulo (para simular "precisão ruim")
public float fireRate = 0.5F; // tempo para cada tiro
private float nextFire;//armazena o próximo tiro...
void Update () {
if (Input.GetMouseButtonDown (0) && nextFire < Time.time) { // quando clicar com o botão esquerdo do mouse e o próximo tiro (um tempo para atira se não ira atirar mt rapido...(diminua o fireRate no inspetor para deixar mais rapido(da para fazer uma metralhadora ou uma mais lenta..)))
nextFire = fireRate + Time.time;// armazena o tempo para o próximo tiro
Quaternion coneRandomRotation = Quaternion.Euler (Random.Range (-coneAngle, coneAngle), Random.Range (-coneAngle, coneAngle), 0); // calcula o angulo para simular a precisão ruim
Instantiate (Bullet, spb.position, spb.rotation * coneRandomRotation);// instancia ela com o angulo de clone "<" para sair simular a precisão ruim.
}
}
}
- Bala adicional:
- Código:
using UnityEngine;
using System.Collections;
public class Bullet : MonoBehaviour {
public float speed = 10; // velocidade da bala
public float lifeTime = 0.5F; // tempo de vida da bala
public float dist = 10000; // distância máxima da bala
private float spawnTime = 0.0F; // tempo que ela esta viva
private Transform tr; // posição dela
void Start () {
tr = transform;
spawnTime = Time.time; // adiciona o tempo de "vida" dela
}
void Update () {
tr.position += tr.forward * speed * Time.deltaTime; // adiciona movimento para frente
dist -= speed * Time.deltaTime; // diminue a distância percorrida pela bala
if (Time.time > spawnTime + lifeTime || dist < 0) { // checa se a vida dela acabo ou a distância chegou ao pré definido
Destroy (gameObject);// destrói ela
}
}
}
Última edição por RC0D3 em Qui Abr 21, 2016 6:06 pm, editado 1 vez(es)
RC0D3- Iniciante
-
PONTOS : 3147
REPUTAÇÃO : 5
Idade : 21
Respeito as regras :
Re: [TUTORIAL]Sistema precisão(deixar ela meio vesga) e uma bala simples
Tem um erro no primeiro script
ismarspn- Programador
-
PONTOS : 3575
REPUTAÇÃO : 147
Idade : 29
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: [TUTORIAL]Sistema precisão(deixar ela meio vesga) e uma bala simples
Não testei nada, más só de bater o olho percebi isso:
Se estivesse jogando esse comando em uma variável, o "as GameObject" seria útil, más na situação atual, não tem muito sentido... Acho que esse pode ser o problema :D
- Código:
Instantiate (Bullet, spb.position, spb.rotation * coneRandomRotation)as GameObject;
Se estivesse jogando esse comando em uma variável, o "as GameObject" seria útil, más na situação atual, não tem muito sentido... Acho que esse pode ser o problema :D

» [TUTORIAL] Sistema simples de Cutscenes
» [TUTORIAL] Simples Sistema De Noite e Dia
» [TUTORIAL] Sistema Simples de Falas
» [TUTORIAL] Sistema simples de Inventario e Crafting de Itens...customizavel
» [TUTORIAL] Sistema de Lanterna Simples sem bateria
» [TUTORIAL] Simples Sistema De Noite e Dia
» [TUTORIAL] Sistema Simples de Falas
» [TUTORIAL] Sistema simples de Inventario e Crafting de Itens...customizavel
» [TUTORIAL] Sistema de Lanterna Simples sem bateria
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos