Missil perseguidor
3 participantes
Página 1 de 1
Missil perseguidor
boa noite,
achei interessante esse efeito de um asset da unity e até pretendo utilizar em uma arma inimiga.
vou fazer desse jeito mesmo, um projetil que se espalha pelo cenario procurando varios objetos até colidir com eles.
poderia até comprar esse asset mas nao posso no momento entao se alguem puder me explicar via script como fazer isso agradeço! ^ ^
achei interessante esse efeito de um asset da unity e até pretendo utilizar em uma arma inimiga.
vou fazer desse jeito mesmo, um projetil que se espalha pelo cenario procurando varios objetos até colidir com eles.
poderia até comprar esse asset mas nao posso no momento entao se alguem puder me explicar via script como fazer isso agradeço! ^ ^
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Re: Missil perseguidor
desculpe postar de novo esqueci de postar o video:
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Re: Missil perseguidor
assim , acho que você pode adicionar uma força pra frente no script e ir dando lookAt devagar praa ele ir na direção do objeto
fabriciorsz34- Avançado
- PONTOS : 3338
REPUTAÇÃO : 25
Idade : 24
Áreas de atuação : C#,unity,cinema 4D, SketchUp
Respeito as regras :
Re: Missil perseguidor
Massa eu fiz um simple em um projeto que eu tenho aqui mais e 3D e so uma base voce pode edita-lo como quizer
- Código:
using UnityEngine;
using System.Collections;
public class MissilPeseguidor : MonoBehaviour {
public GameObject target;
public float speed = 20;
public float rotatespeed = 5;
public int damage;
// Use this for initialization
void Start () {
target = GameObject.FindWithTag ("Player");
damage = 5;
}
// Update is called once per frame
void Update () {
transform.LookAt (target.transform.position);
if(Vector3.Distance(target.transform.position,transform.position)< 1.5f){
}
}
void OnTriggerEnter(Collider col){
if(col.gameObject.tag == "Player")
{
col.gameObject.GetComponent<PlayerStatus>().DamageReceived(damage);
Destroy(gameObject,5);
}
}
}
Re: Missil perseguidor
Callyde Jr escreveu:Massa eu fiz um simple em um projeto que eu tenho aqui mais e 3D e so uma base voce pode edita-lo como quizerVoce pode usar IEnumerator para destroir ele com um tempinho, usar outras tags tambem e etc...
- Código:
using UnityEngine;
using System.Collections;
public class MissilPeseguidor : MonoBehaviour {
public GameObject target;
public float speed = 20;
public float rotatespeed = 5;
public int damage;
// Use this for initialization
void Start () {
target = GameObject.FindWithTag ("Player");
damage = 5;
}
// Update is called once per frame
void Update () {
transform.LookAt (target.transform.position);
if(Vector3.Distance(target.transform.position,transform.position)< 1.5f){
}
}
void OnTriggerEnter(Collider col){
if(col.gameObject.tag == "Player")
{
col.gameObject.GetComponent<PlayerStatus>().DamageReceived(damage);
Destroy(gameObject,5);
}
}
}
Callyde Jr, e se eu quisesse fazer o contrario, uma arma do jogador que dispara esses misseis em direção a não só um tipo de inimigo mas em direção a qualquer objeto que tenha a tag 'Enemy' e a tag 'Chefe'? como ficaria o script?
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Re: Missil perseguidor
Assim eu uso um sistema assim para jogos multiplayer.
- Código:
using UnityEngine;
using System.Collections;
public class MissilPeseguidor : MonoBehaviour {
public Transform target;
public GameObject[] targets;
public float speed = 20;
public float rotatespeed = 5;
public int damage;
private int indiceTargetMaisProximo;
// Use this for initialization
void Start () {
if(target == null)
{
ChecarTargetMaisProximo();
}
damage = 5;
}
// Update is called once per frame
void Update () {
if(target == null)
{
ChecarTargetMaisProximo();
}
transform.LookAt (target.transform.position);
if(Vector3.Distance(target.transform.position,transform.position)< 1.5f){
}
}
void OnTriggerEnter(Collider col){
if(col.gameObject.tag == "Enemy")
{
col.gameObject.GetComponent<PlayerStatus>().DamageReceived(damage);
Destroy(gameObject,5);
}
}
void ChecarTargetMaisProximo(){
float distanciaMax = 99999999999999999;
targets = GameObject.FindGameObjectsWithTag("Enemy")&&("Chefe");//Nao textei se assim funciona
for (int x = 0; x < targets.Length; x++) {
float distanciaPlayerAtual = Vector3.Distance (transform.position, targets [x].transform.position);
if (distanciaPlayerAtual < distanciaMax) {
distanciaMax = distanciaPlayerAtual;
indiceTargetMaisProximo = x;
target = targets[indiceTargetMaisProximo].transform;//Esse e meu alvo
}
}
}
}
Última edição por Callyde Jr em Qui maio 24, 2018 5:47 am, editado 1 vez(es)
Re: Missil perseguidor
esse script vai no missil não é?
estou tendo problemas com as seguintes linhas:
estou tendo problemas com as seguintes linhas:
- Código:
players = GameObject.FindGameObjectsWithTag("Enemy") && ("Chefe"); //Nao textei se assim funciona
Player = players[indiceTargetMaisProximo].transform;//Esse e meu alvo
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Re: Missil perseguidor
Foi um erro meu era
target e targets que estava como player e players.
Corrigido.
target e targets que estava como player e players.
Corrigido.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos