[TUTORIAL] Unity 5- Sistema de PLATAFORMAS COM ROTAS
+4
iahGod
Blue Ark
AndyShow
MarcosSchultz
8 participantes
Página 1 de 1
[TUTORIAL] Unity 5- Sistema de PLATAFORMAS COM ROTAS
Olá galera, a pedidos, elaborei este tutorial explicando como fazer um sistema de plataformas que seguem rotas, com várias opções para configurar o sistema :D
Vídeo:
Script utilizado:
Vídeo:
Script utilizado:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Plataforma : MonoBehaviour {
public GameObject[] locais;
public int destinoInicial = 0;
public float velocidade = 10;
public bool comecarInvertido;
public bool reiniciarSequencia;
int localAtual = 0;
bool inverter = false;
void Start () {
if (destinoInicial < locais.Length) {
localAtual = destinoInicial;
} else {
localAtual = 0;
}
//
if (comecarInvertido == true) {
inverter = true;
}
}
void Update () {
if (inverter == false) {
if (Vector3.Distance (transform.position, locais [localAtual].transform.position) < 0.1f) {
if (localAtual < locais.Length - 1) {
localAtual++;
} else {
if (reiniciarSequencia == true) {
localAtual = 0;
} else {
inverter = true;
}
}
}
transform.position = Vector3.MoveTowards (transform.position, locais [localAtual].transform.position, velocidade*Time.deltaTime);
} else {
if (Vector3.Distance (transform.position, locais [localAtual].transform.position) < 0.1f) {
if (localAtual > 0) {
localAtual--;
} else {
if (reiniciarSequencia == true) {
localAtual = locais.Length -1;
} else {
inverter = false;
}
}
}
transform.position = Vector3.MoveTowards (transform.position, locais [localAtual].transform.position, velocidade*Time.deltaTime);
}
}
}
Re: [TUTORIAL] Unity 5- Sistema de PLATAFORMAS COM ROTAS
Muito bom! estou fazendo meu sistema de pedestres na cidade la pra meu jogo de caminhão.
Blue Ark- Iniciante
- PONTOS : 2855
REPUTAÇÃO : 2
Idade : 25
Áreas de atuação : Designer,Programador
Respeito as regras :
Re: [TUTORIAL] Unity 5- Sistema de PLATAFORMAS COM ROTAS
MarcosSchultz escreveu:Olá galera, a pedidos, elaborei este tutorial explicando como fazer um sistema de plataformas que seguem rotas, com várias opções para configurar o sistema :D
Vídeo:
Script utilizado:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Plataforma : MonoBehaviour {
public GameObject[] locais;
public int destinoInicial = 0;
public float velocidade = 10;
public bool comecarInvertido;
public bool reiniciarSequencia;
int localAtual = 0;
bool inverter = false;
void Start () {
if (destinoInicial < locais.Length) {
localAtual = destinoInicial;
} else {
localAtual = 0;
}
//
if (comecarInvertido == true) {
inverter = true;
}
}
void Update () {
if (inverter == false) {
if (Vector3.Distance (transform.position, locais [localAtual].transform.position) < 0.1f) {
if (localAtual < locais.Length - 1) {
localAtual++;
} else {
if (reiniciarSequencia == true) {
localAtual = 0;
} else {
inverter = true;
}
}
}
transform.position = Vector3.MoveTowards (transform.position, locais [localAtual].transform.position, velocidade*Time.deltaTime);
} else {
if (Vector3.Distance (transform.position, locais [localAtual].transform.position) < 0.1f) {
if (localAtual > 0) {
localAtual--;
} else {
if (reiniciarSequencia == true) {
localAtual = locais.Length -1;
} else {
inverter = false;
}
}
}
transform.position = Vector3.MoveTowards (transform.position, locais [localAtual].transform.position, velocidade*Time.deltaTime);
}
}
}
Nice, mas como eu faço para que o player ande junto com a plataforma?
Re: [TUTORIAL] Unity 5- Sistema de PLATAFORMAS COM ROTAS
Você pode fazer o player virar filho da plataforma
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [TUTORIAL] Unity 5- Sistema de PLATAFORMAS COM ROTAS
Pode fazer isto que o weslley disse ou utilizar alguma Joint da Unity, tipo CharacterJoint, ou HingeJoint
Re: [TUTORIAL] Unity 5- Sistema de PLATAFORMAS COM ROTAS
Hum entendi, mas no caso eu tenho que fazer ele virar filho via script quando ele estiver em cima certo?
Re: [TUTORIAL] Unity 5- Sistema de PLATAFORMAS COM ROTAS
iagokennedyy escreveu:Hum entendi, mas no caso eu tenho que fazer ele virar filho via script quando ele estiver em cima certo?
Se usar Joints não
Re: [TUTORIAL] Unity 5- Sistema de PLATAFORMAS COM ROTAS
marcos da pra fazer tipo um gps ? quando o carro anda uma marca de gps anda conforme o carro ?
Joao07- Iniciante
- PONTOS : 2630
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Unity 5- Sistema de PLATAFORMAS COM ROTAS
MarcosSchultz escreveu:Olá galera, a pedidos, elaborei este tutorial explicando como fazer um sistema de plataformas que seguem rotas, com várias opções para configurar o sistema :D
Vídeo:
Script utilizado:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Plataforma : MonoBehaviour {
public GameObject[] locais;
public int destinoInicial = 0;
public float velocidade = 10;
public bool comecarInvertido;
public bool reiniciarSequencia;
int localAtual = 0;
bool inverter = false;
void Start () {
if (destinoInicial < locais.Length) {
localAtual = destinoInicial;
} else {
localAtual = 0;
}
//
if (comecarInvertido == true) {
inverter = true;
}
}
void Update () {
if (inverter == false) {
if (Vector3.Distance (transform.position, locais [localAtual].transform.position) < 0.1f) {
if (localAtual < locais.Length - 1) {
localAtual++;
} else {
if (reiniciarSequencia == true) {
localAtual = 0;
} else {
inverter = true;
}
}
}
transform.position = Vector3.MoveTowards (transform.position, locais [localAtual].transform.position, velocidade*Time.deltaTime);
} else {
if (Vector3.Distance (transform.position, locais [localAtual].transform.position) < 0.1f) {
if (localAtual > 0) {
localAtual--;
} else {
if (reiniciarSequencia == true) {
localAtual = locais.Length -1;
} else {
inverter = false;
}
}
}
transform.position = Vector3.MoveTowards (transform.position, locais [localAtual].transform.position, velocidade*Time.deltaTime);
}
}
}
Fazer o Player ficar em cima da plataforma sem cair:
1 - Crie uma TAG chamada "Plataforma" e adicione na plataforma
2 - Adicione um Box collider (is Trigger) e deixe um pouco a cima do top da plataforma.
3 - Crie um novo script chamado PlayerSubirPlataforma.cs e adicione ao seu Player:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//############################################
// Player - se mover juntos com plataformas móveis
//############################################
public class PlayerSubirPlataforma : MonoBehaviour {
// enquanto estiver em colisão com outro (plataforma)
void OnTriggerStay(Collider other){
if(other.tag == "Plataforma"){
transform.parent = other.transform;
}
}
// quando sair da colisão com a plataforma
void OnTriggerExit(Collider other){
if(other.tag == "Plataforma"){
transform.parent = null;
}
}
}// fim da classe
Código C# convertido da Fonte:
dkrazor- Avançado
- PONTOS : 2574
REPUTAÇÃO : 24
Idade : 35
Áreas de atuação : Design / Programador de jogos.
Respeito as regras :
Re: [TUTORIAL] Unity 5- Sistema de PLATAFORMAS COM ROTAS
Show esse tutorial e é exatamente o que estou fazendo aqui no meu projeto. Porém, como eu poderia controlar a ida a cada ponto com o touch? Tipo, ele fica parado no ponto A, para ir ao ponto B teria que tocar em cima do Objeto (Cubo), para ir ao C toca no Objeto (cubo) e assim ficar no loop em quantos pontos eu tiver na cena, sempre tocando no objeto para ele se mover para o próximo ponto.
edvanmelo- Iniciante
- PONTOS : 2081
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Unity 5- Sistema de PLATAFORMAS COM ROTAS
edvanmelo escreveu:Show esse tutorial e é exatamente o que estou fazendo aqui no meu projeto. Porém, como eu poderia controlar a ida a cada ponto com o touch? Tipo, ele fica parado no ponto A, para ir ao ponto B teria que tocar em cima do Objeto (Cubo), para ir ao C toca no Objeto (cubo) e assim ficar no loop em quantos pontos eu tiver na cena, sempre tocando no objeto para ele se mover para o próximo ponto.
Olá, seria possível criar um tópico específico para a sua dúvida?
Esse sistema requer um certo código personalizado, mas bem simples. Se criar um tópico para essa sua dúvida, posso fazer um código para resolver o problema.
Tópicos semelhantes
» [TUTORIAL] Unity 5 - Sistema básico de jogo estilo ANGRY BIRDS
» [TUTORIAL] Sistema de diálogo/mensagens na Unity
» [TUTORIAL] Unity 5 - Sistema Completo de PORTAS E CHAVES
» [TUTORIAL] Sistema simples para VOLTAR NO TEMPO, Unity 3D
» [TUTORIAL] Usando Delegates em Unity - Sistema de caixa de diálogo!
» [TUTORIAL] Sistema de diálogo/mensagens na Unity
» [TUTORIAL] Unity 5 - Sistema Completo de PORTAS E CHAVES
» [TUTORIAL] Sistema simples para VOLTAR NO TEMPO, Unity 3D
» [TUTORIAL] Usando Delegates em Unity - Sistema de caixa de diálogo!
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos