SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Jogador pode escolher que tipo de pos processamento usar nas configurações?
Não consigo desativar script de gameObject (C#)
Alguem poderia me ajudar com combo 2d?
Problema mudar de sprite sempre que seja adicionado um novo sprite a lista
Colocar video no unity
Imagem excedendo o limite da tela. Como resolver?
Erro no Android
[TUTORIAL] Inimigo seguir e atacar Player ao encostar
Como abrir uma empresa de games?
Informação Importante sobre o Edge Collider 2D
Como consigo aquele efeito de lanterna imagem abaixo
Como desativar e habilitar o Skinned MeshRenderer?
Como posso usar a função OnClick nesse script
[TUTORIAL] Como carregar uma cena em segundo plano?
[Tutorial] Sistema de Combos (Mobile e PC)
Como se faz um sistema de combo pra mobile
Personagem sofre dando e continua de onde parou com condição.
Como Abrir Porta do Carro (Capo,PortaMalas, Portas) Mirando Nelas
[RESOLVIDO] Várias faixas de música
[RESOLVIDO] int Random.Range(int min, int max) para geração procedural ?
Como fazer o som funcionar de acordo com a velocidade do objeto
Alto falante Vibrar
[RESOLVIDO] Luz no interior
[TUTORIAL] Como Fazer com que as Luzes Iluminem apenas o que você deseja
Traduções e Dublagens de games
[RESOLVIDO] Cono mudar a Tag por script?
[RESOLVIDO] Qualidade do sprite - Compression
[TUTORIAL] Unity 3D - AnimationCurve
Rotação de um gameobject sem que os gameobjects filhos se alterem?
[RESOLVIDO] Partículas com imagem
[RESOLVIDO] DUVIDA SOBRE ATIVAR UM GAMEOBJECT ATRAVÉS DE UMA CONDIÇÃO
NavMesh não consegue reproduzir sprits de um jogador
NavMesh não faz animação do jogador
Bom dia amigos compro assets do meu interesse!
Criar Ranking Online
[TUTORIAL] ScrollView rapida e facil de fazer
colocar imagem no fórum
Unity ou Game Maker Studio
[TUTORIAL] Tocar audios de uma lista em uma sequência que se repete
Error CS0246, não sei o que fazer
Como faço pra um colisor não reconhecer outro colisor sem usar IsTrigger
[RESOLVIDO] Alteração de nomes e rastreamento das mudanças
Som unity
CHAVE DE ASSINATURA
[TUTORIAL]identificar se está no controle ou teclado
[TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
Não estou conseguindo ativar o evento do onClick após instanciar o botão
Exportar Modelo 3D da Unity
Duvida sobre Spawn
Dúvida sobre volatile
[UE4] Por favor me digam como me livrar do motion blur!
[RESOLVIDO] Float to transform
[RESOLVIDO] mudar a cor quando a personagem passa
Como ativar um 'Panel'
Como faço pra desligar e ligar outro text?
Como Faço Para Ativar/Desativar Material Por Script ?
como modificar o script para receber e registar o dano no personagem
[TUTORIAL] Inteligência artificial, inimigo e AIPoints
Meu personagem está tomando repulsão da parede
Problemas com IEnumerator
Meu personagem ta tremendo quando toca em alguma coisa
[TUTORIAL] Como criar tiro no Unity usando Raycast
Scripts travados
Como faço para mudar a posição de um objeto para perto de outro.
Alteração de personagens durante o jogo // parte 2
Como se faz uma grid, apenas e somente uma grid em 3D?
meu primeiro jogo pronto
quero corverter uma int em string
Como mudar a posição de um objeto constantemente sem estar na void Update
Como conseguir fazer para minha moto dar grau
[RESOLVIDO] Alteração de personagens durante o jogo
Como fazer um retrovisor leve para android?
Preciso de um script para andar de moto alguem consegue me ajudar
Como consigo fazer esse efeito de escurecer o ambiente ao atacar?
Como fazer pra selecionar um inimigo pra atacar de varios unity 2d
Setparent Photon
duvida em sistema de Horror de como pegar e solta objeto
[UE4] Como fazer cutscene com o próprio personagem?
Plataforma Flutuante
OS Tycoon (DEVLOG) - Crie seu próprio sistema operacional
[RESOLVIDO] Grande X vermelho
Como desativo o vsync em projeto para celular?
Como fazer uma compra aleatoria em uma cena
Sistema de propagação de fogo
[TUTORIAL] Como utilizar a função " Instantiate "
Inteligencia Artificial
Como faço pra deixar as luzes mais leves em um jogo 2d
[TUTORIAL] Unity 2019.4 ou superior - PRESETS
colocar Produtos na Playstore, procuro freelancer.
Tem como fazer o jogo forçar o hardware do celular para rodar melhor?
Como fazer efeito de digitação em um texto
[TUTORIAL] Texto suave (UI)
Box, Whell e outros Collider Esta vindo 10x maior que o Objeto
Objetos não respeitam script
[RESOLVIDO] Duvidas sobre dar restart na cena com Scene Management
Game Jam - GAME JAAJ 5 (prêmio 1.800 reais)
Ativar e desativar botão UI
[RESOLVIDO] Duvidas sobre o Canvas, preFabs e o collisor na Unity
Como fazer formas em ligths
Hoje à(s) 8:41 pm
Hoje à(s) 7:21 pm
Hoje à(s) 6:10 pm
Hoje à(s) 5:29 pm
Hoje à(s) 4:58 pm
Hoje à(s) 3:56 pm
Hoje à(s) 3:53 pm
Hoje à(s) 3:02 pm
Hoje à(s) 9:26 am
Ontem à(s) 10:30 pm
Ontem à(s) 8:28 pm
Ontem à(s) 7:29 pm
Ontem à(s) 4:48 pm
Ontem à(s) 6:49 am
Seg Jan 18, 2021 11:39 pm
Seg Jan 18, 2021 10:35 pm
Seg Jan 18, 2021 9:31 pm
Seg Jan 18, 2021 10:47 am
Seg Jan 18, 2021 10:34 am
Dom Jan 17, 2021 10:54 pm
Dom Jan 17, 2021 6:28 pm
Dom Jan 17, 2021 2:07 pm
Dom Jan 17, 2021 12:21 pm
Dom Jan 17, 2021 11:19 am
Dom Jan 17, 2021 11:17 am
Dom Jan 17, 2021 11:15 am
Dom Jan 17, 2021 1:44 am
Sab Jan 16, 2021 6:40 pm
Sab Jan 16, 2021 3:39 pm
Sab Jan 16, 2021 11:43 am
Sab Jan 16, 2021 11:12 am
Sex Jan 15, 2021 8:20 pm
Sex Jan 15, 2021 1:39 am
Qui Jan 14, 2021 9:53 pm
Qui Jan 14, 2021 7:44 pm
Qui Jan 14, 2021 5:35 pm
Qui Jan 14, 2021 3:55 pm
Qui Jan 14, 2021 2:07 pm
Qui Jan 14, 2021 1:51 pm
Qui Jan 14, 2021 12:56 pm
Qua Jan 13, 2021 6:57 pm
Qua Jan 13, 2021 2:45 pm
Ter Jan 12, 2021 11:14 pm
Ter Jan 12, 2021 8:14 pm
Ter Jan 12, 2021 3:16 pm
Seg Jan 11, 2021 6:26 pm
Seg Jan 11, 2021 5:55 pm
Seg Jan 11, 2021 10:51 am
Dom Jan 10, 2021 7:18 pm
Dom Jan 10, 2021 6:21 pm
Dom Jan 10, 2021 3:24 pm
Dom Jan 10, 2021 2:31 pm
Dom Jan 10, 2021 2:29 pm
Dom Jan 10, 2021 10:44 am
Sab Jan 09, 2021 9:30 pm
Sex Jan 08, 2021 9:14 am
Sex Jan 08, 2021 7:07 am
Sex Jan 08, 2021 1:02 am
Sex Jan 08, 2021 12:33 am
Qui Jan 07, 2021 7:31 pm
Qui Jan 07, 2021 5:31 pm
Qui Jan 07, 2021 3:51 pm
Qui Jan 07, 2021 3:49 pm
Qui Jan 07, 2021 12:12 am
Qua Jan 06, 2021 7:40 pm
Qua Jan 06, 2021 4:57 pm
Qua Jan 06, 2021 7:36 am
Ter Jan 05, 2021 5:29 pm
Ter Jan 05, 2021 1:58 pm
Ter Jan 05, 2021 10:35 am
Ter Jan 05, 2021 5:22 am
Ter Jan 05, 2021 1:00 am
Ter Jan 05, 2021 12:02 am
Seg Jan 04, 2021 4:33 pm
Seg Jan 04, 2021 3:24 pm
Seg Jan 04, 2021 3:15 pm
Seg Jan 04, 2021 2:23 pm
Seg Jan 04, 2021 2:06 pm
Seg Jan 04, 2021 8:56 am
Dom Jan 03, 2021 8:18 pm
Dom Jan 03, 2021 9:48 am
Dom Jan 03, 2021 4:14 am
Sab Jan 02, 2021 10:11 pm
Sab Jan 02, 2021 8:36 pm
Sab Jan 02, 2021 8:34 pm
Sab Jan 02, 2021 3:36 pm
Sab Jan 02, 2021 11:45 am
Sab Jan 02, 2021 5:50 am
Sab Jan 02, 2021 2:37 am
Sex Jan 01, 2021 7:09 pm
Sex Jan 01, 2021 4:50 pm
Qui Dez 31, 2020 4:47 pm
Qui Dez 31, 2020 3:42 pm
Qui Dez 31, 2020 3:38 pm
Qui Dez 31, 2020 3:38 pm
Qui Dez 31, 2020 3:34 pm
Qui Dez 31, 2020 2:42 pm
Qui Dez 31, 2020 11:25 am
Qui Dez 31, 2020 10:08 am
ProBrStalker
Micco
dutrabr100
Pokedlg
SauloeArthur
NKKF
orph
carolina borges
dutrabr100
acefogo
Fagner
Vans 123
Vans 123
amoraleite
Pokedlg
Pokedlg
acefogo
dutrabr100
Pokedlg
dutrabr100
Pokedlg
savtoi
dragongirl
dutrabr100
Rangel Oblivion
dutrabr100
JoelMJunior
MarcosSchultz
Fagner
dragongirl
dutrabr100
Ren Allen
Ren Allen
LucasGamerFx
SauloeArthur
NKKF
dutrabr100
SauloeArthur
Pokedlg
SauloeArthur
dutrabr100
Alexandre Santos
Pokedlg
starfreddybou69
diegopds
Super
dutrabr100
TIKO
dutrabr100
SauloeArthur
lesgoy
Fagner
Pokedlg
dutrabr100
Pokedlg
SauloeArthur
redPRO
glauco
Op3000
Pokedlg
JulioWinchester
SauloeArthur
SauloeArthur
Leozitu
Ren Allen
speedluk
SauloeArthur
BatataBugada54321
Pokedlg
Pokedlg
Ren Allen
Fagner
123
Pokedlg
macinhadeborracha
MRX
giowde
lesgoy
TIKO
Micco
Leonardo André
lesgoy
Moskeiro
Fagner
mama2401
Fagner
BRGC
fabricadegame
NyanHeavyBR
rafaelPortugal
dutrabr100
acefogo
MarcosSchultz
MarcosSchultz
acefogo
MarcosSchultz
BatataBugada54321
acefogo
brizaloka

[TUTORIAL] Como programar um carro/moto voador(a)

Ir em baixo

TUTORIAL [TUTORIAL] Como programar um carro/moto voador(a)

Mensagem por PauloFR em Sab Abr 29, 2017 2:06 am

Não sei se Voador ou Voadora é o termo correto para uma moto/carro q voa mas acho que é isso.. ;-;

Resolvi fazer um scriptzinho para movimentar motos e carros voadores depois de quase 4 horas programando (quase porque não fiquei 4 horas direto huehuehue) ai está ele  Surprised
lotado de ifs mas serve

Comentar o código todo foi cansativo então to com preguiça de explicar detalhadamente como funciona...
Mas a movimentação é parecida com as motos e carros dos jogos da Lego

Coisitas configuraveis:
Todas as teclas,Velocidade,AlturaPulo e etc

Vídeo demonstrativo e informativo:

Tudo que da para fazer com esse script está nesse vídeo hehe ;-;
as partes que cai na água e não cai da moto é porque a água está sem a tag do mapa...
Desculpe a baixa qualidade novamente...  os motivos são os mesmo: Gravador não grava em hd sem lagar, pc não é muito bom...

E agora vamos para o tutorial em texto huehuehue

Na verdade só comentei o código todo...

Script Moto & Carro:


Deverá ter o nome Moto ou a public class de acordo com o nome do .cs

Código:
// Grande parte das bools podem ser removidas só deixei para saber oque cada comando estava fazendo na hora de programar....
// pq não gosto do debug ;-;


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; // Biblioteca Ui usada para usar a ui
using System; // Biblioteca System usada para o serializable


[Serializable] // Cria uma nova class e adiciona uma setinha no Inspector
public class TeclasMov {
 public KeyCode Frente, Re, Esquerda, Direita, Cima, ResetarPos, Spawnar, Interagir; // KeyCode é usado para salvar teclas
 public GameObject CorpoPersonagem; // GameObject é usado para salvar Objetos
 public Vector3 RotacaoDireita,RotacaoEsquerda; // Vector3 é usado para salvar o x,y,z
}
// Para mudar o nome troque o public class pelo nome do script.
public class Moto : MonoBehaviour { // Nome do script

 // Variaveis //
 public GameObject SpawnMoto; // GameObject é usado para salvar 1 Objeto
 public Canvas Interagir; // Canvas é usado para salvar Canvas
 public static bool Queda; // É uma alternativa que pode ser acessada por outros scripts se conter statice ex: Verdadeiro ou Falso
 public TeclasMov Movimentos; // Aqui chamaremos a class criada acima pelo Serializable que é TeclasMov e daremos o nome de Movimentos
 public float Velocidade,DistanciaMax, AlturaPulo; // É usada para salvar numeros com virgulas ex: 0,1 // As virgulas na variavel podem separar os mesmos tipos de variaveis em slots diferentes
 private Quaternion RotacaoSalva; //Uma variavel privada que não será vista no inspector que guarda 4 eixos x,y,z,w
 private bool Acelerando, Re, VirandoD, VirandoE, Pulo, Pegou; // É uma alternativa privada ex: Verdadeiro ou Falso
    Rigidbody Fisica; // Variavel privada que guarda o 1 Rigibody
 GameObject Jogador; // Variavel privada que guarda 1 Objeto
 // Variaveis //

 void Start () { // Void que será chamada apenas no incio do jogo
 Interagir.enabled = false; // O Canvas "interagir" ficará desativado
 Movimentos.CorpoPersonagem.SetActive (false); // O "CorpoPersonagem" será desativado
 RotacaoSalva = this.transform.rotation; // A variavel "RotacaoSalva" receberá a rotação inicial do objeto com o script "Moto"
 Fisica = GetComponent<Rigidbody> (); // A variavel "Fisica" receberá o Rigidbody do objeto com o script "Moto"
 Jogador = GameObject.FindWithTag ("Player"); // "Jogador" receberá o objeto com a tag "Player"
 }

 void Update () { // Void chamada em todos os frames
 
 // Variaveis na void Update //
 float Distancia; // Já explicado
 Quaternion RotacaoDireitaDelta = Quaternion.Euler (Movimentos.RotacaoDireita * Time.deltaTime); // Aqui a "RotacaoDireitaDelta" receberá o "Movimentos.RotacaoDireita * Time.deltaTime"
                                                                                                // Sempre que usarmos alguma variavel criada na class "Movimentos" terá " Movimentos. "
 Quaternion RotacaoEsquerdaDelta = Quaternion.Euler (Movimentos.RotacaoEsquerda * Time.deltaTime);// Aqui a "RotacaoEsquerdaDelta" receberá o "Movimentos.RotacaoEsquerda * Time.deltaTime"
 // Variaveis na void Update //

 // Codigos sozinhos //
 Distancia = Vector3.Distance (this.transform.position, Jogador.transform.position); // A variavel Distancia será sempre a soma da distancia desse objeto com o "Jogador"
 // Codigos sozinhos //

 // Queda //

 if (Queda == true) { // Se a variavel Queda for true acontecerá ós códigos dentro da chave
 Pegou = false; // "Pegou" será false
               // "Pegou" é como se o jogador estive-se em cima da moto nesse caso
 Movimentos.CorpoPersonagem.SetActive (false); // O "CorpoPersonagem" será desativado
 Jogador.transform.position = this.transform.position; // O "Jogador" ficará na posição desse objeto
 this.transform.position = this.transform.position; // Esse objeto travará na posição atual
 Jogador.SetActive (true); // O "Jogador" será ativado
 Queda = false; // A variavel "Queda" ficará false
 }
 // Queda //

 // Interação //
 if (Distancia < DistanciaMax) { // Se a Distancia for menor que a DistanciaMax acontecerá ós códigos dentro da chave
 Interagir.enabled = true; // O Canvas "Interagir" será ativado
 if (Input.GetKeyDown (Movimentos.Interagir)) { // Se apertar a tecla "Interagir" e a distancia for menor acontecerá ós códigos dentro da chave
 Interagir.enabled = false; // O Canvas "Interagir" será desativado
 Movimentos.CorpoPersonagem.SetActive (true); // O "CorpoPersonagem" será ativado
 this.transform.rotation = RotacaoSalva; // A rotacao desse objeto será a "RotacaoSalva"
 Pegou = true; // "Pegou" Ficará true
 Jogador.SetActive (false); // O "Jogador" será desativado
 }
 } else {
           Interagir.enabled = false; // Já explicado
 }
 // Interação //
 if (Input.GetKeyDown (Movimentos.Spawnar)) { // Já explicado
 StartCoroutine ("DarSpawn"); // A Coroutine "DarSpawn" será chamada se a condição for feita.
 }

 if (Pegou == true) { // Já explicado

 // Teclas //
 if (Input.GetKey (Movimentos.ResetarPos)) { // Já explicado
 this.transform.rotation = RotacaoSalva; // Já explicado
 StartCoroutine ("Parar");// A Coroutine "Parar" será chamada se a condição for feita.
 }
 if (Input.GetKey (Movimentos.Frente)) { // Já explicado
 Acelerando = true; // "Acelerando" Ficará true
 Re = false; // "Re" Ficará true
 } else { // Se a condição não for feita os codigos da chave serão executados
 if (Re == false) { // Já explicado
 StartCoroutine ("Parar"); // Já explicado
 }
 }
 if (Input.GetKey (Movimentos.Re)) {
 Re = true; // Já explicado
 Acelerando = false; // Já explicado
 } else { // Se a condição não for feita os codigos da chave serão executados
 if (Acelerando == false) { // Já explicado
 StartCoroutine ("Parar"); // Já explicado
 }
 }
 if (Input.GetKey (Movimentos.Direita)) { // Já explicado
 VirandoD = true; // "VirandoD" Ficará true
 VirandoE = false;// "VirandoE" Ficará false
 } else { // Se a condição não for feita os codigos da chave serão executados
 if (VirandoE == false) { // Já explicado
 StartCoroutine ("Parar"); // Já explicado
 }
 }
 if (Input.GetKey (Movimentos.Esquerda)) { // Já explicado
 VirandoE = true; // Já explicado
 VirandoD = false; // Já explicado
 } else { // Já explicado
 if (VirandoD == false) { // Já explicado
 StartCoroutine ("Parar"); // Já explicado
 }
 }
 if (Input.GetKey (Movimentos.Cima)) { // Já explicado
 Pulo = true; // Já explicado
 } else { // Já explicado
 Pulo = false; // Já explicado
 }
 // Teclas //

 // Movimento //
 if (Acelerando == true) { // Já explicado
 Fisica.AddForce (transform.forward * Velocidade, ForceMode.Acceleration); // Será adicionada força do tipo Acceleration na parte "forward" vezes a "Velocidade" do objeto com o rigibody Fisica
                                                                                //AddForce          //ForceMode.Acceleration  // transform.forward * Velocidade
 }
 if (Re == true) {
 Fisica.AddForce (transform.forward * -Velocidade, ForceMode.Acceleration); // Será adicionada força do tipo Acceleration na parte negativa do "forward" vezes a "Velocidade" do objeto com o rigibody Fisica
                                                                                              //AddForce    //ForceMode.Acceleration  // transform.forward * -Velocidade
 }
 if (VirandoD == true) {
 Fisica.MoveRotation (Fisica.rotation * RotacaoDireitaDelta); // O Objeto com a variavel "Fisica" será rotacionado de sua posicao atual até a "RotacaoDireitaDelta"
                                                                  //Fisica.MoveRotation                              //(Fisica.rotation * RotacaoDireitaDelta)
 }
 if (VirandoE == true) {
 Fisica.MoveRotation (Fisica.rotation * RotacaoEsquerdaDelta);// O Objeto com a variavel "Fisica" será rotacionado de sua posicao atual até a "RotacaoEsquerdaDelta"
                                                                 http://Fisica.MoveRotation                              //(Fisica.rotation * RotacaoEsquerdaDelta)
 }

 // ^^^^
 // Também funcionaria Usar uma rotacaoDelta negativa em vez de colocar 2 ifs nessa parte acima ^^^^
 // ^^^^

 if (Pulo == true) { // Já explicado
 Fisica.AddForce (transform.up * AlturaPulo, ForceMode.Impulse); // Será adicionada força do tipo Impulse na parte "up" vezes a "AlturaPulo" do objeto com o rigibody Fisica
                                                                     // Fisica.AddForce  // ForceMode.Impulse       http://transform.up * AlturaPulo
 }
 // Movimento //
 }
 }

 IEnumerator Parar () { // A coroutine "Parar" chamada anteriormente será ativada aqui
 yield return new WaitForSeconds (1); // Aguardará 1 segundo e executará os comandos abaixo
 Re = false; // Já explicado
 Acelerando = false; // Já explicado
 VirandoD = false; // Já explicado
 VirandoE = false; // Já explicado
 StopCoroutine ("Parar"); // Irá parar a couroutine "Parar"
 }

 IEnumerator DarSpawn () { // A coroutine "DarSpawn" chamada anteriormente será ativada aqui
 yield return new WaitForSeconds (3);// Aguardará 3 segundos e executará os comandos abaixo
 Re = false; // Já explicado
 Acelerando = false; // Já explicado
 VirandoD = false; // Já explicado
 VirandoE = false; // Já explicado
 this.transform.position = SpawnMoto.transform.position; // A posição do objeto será a mesma do "SpawnMoto"
 this.transform.rotation = SpawnMoto.transform.rotation; // A rotação do objeto será a mesma do "SpawnMoto"
 StopCoroutine ("DarSpawn"); // Irá parar a couroutine "DarSpawn"
 }
} // Finaliza o script

Script Queda da moto:


Deverá ter o nome motoQueda ou a public class de acordo com o nome do .cs

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class motoQueda : MonoBehaviour {

 public string TagMapa; // Será usada para gravar a "TagMapa" // Strings são utilizadas para gravar arquivos em textos ex: "Irineu você não sabe nem eu"

 void OnTriggerEnter (Collider Col) { // Ao entrar no trigger com o Colisor "col" os comandos dentro da chave serão executados
 if (Col.gameObject.tag == TagMapa) { // Se o colisor "col" colidir com o objeto com a "TagMapa"
 Moto.Queda = true; // Chamaremos a  " bool static Queda " do script moto e deixaremos true
 }
 }
} // Finaliza o código

Script Limite:


Deverá ter o nome Limite ou a public class de acordo com o nome do .cs

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Limite : MonoBehaviour {

 // Variaveis //
 public string TagMoto; // Será usada para gravar a "TagMoto"
 bool Atuando;
 // Variaveis //

 void OnTriggerEnter (Collider col) { // Ao entrar no trigger com o Colisor "col" os comandos dentro da chave serão executados
 if (col.gameObject.tag == TagMoto) { // Se o colisor "col" colidir com o objeto com a "TagMoto"
 Atuando = true; // Atuando ficará true
 }
 }

 void OnTriggerExit (Collider col) { // Ao sair do trigger com o Colisor "col" os comandos dentro da chave serão executados
 if (col.gameObject.tag == TagMoto) { // Se o colisor "col" parar de colidir com o objeto com a "TagMoto"
 Atuando = false; // Atuando ficará false
 }
 }


 //                                                                              //
 // Modifique essa parte para que tenha diferentes reações na chegada no limite //
 //                                                                            //
 void Update () {
 if (Atuando == true) { // Se atuando for true
 Moto.Queda = true; // Chamaremos a  " bool static Queda " do script moto e deixaremos true
 }
}
 //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//
 // Modifique essa parte para que tenha diferentes reações na chegada no limite //
 //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//


} // Finaliza o codigo

Fiz um exemplo de como usar  para motos  Smile mas é quase a mesma coisa para carros.

Modo de usar:


1 - Faça um Collider de preferencia um cubo e ajuste de modo que sobre algum espaço sobre o lado da moto.

[TUTORIAL] Como programar um carro/moto voador(a)  Textur10

Observe que o mesh não está no meio mas tente deixar bem centralizado...

2 - Coloque o mesh da moto como filho do collider.

3 - Faça um outro collider só que agora coloque ele como filho do collider com a mesh da moto.

4 - Coloque bem centralizado na cabeça do personagem.
[TUTORIAL] Como programar um carro/moto voador(a)  Textur11

5 - Adicione um rigibody ao primeiro collider.

6 - Configure do modo que você quiser, eu configurei assim:

[TUTORIAL] Como programar um carro/moto voador(a)  Textur12

7 - Adicione o script moto ao primeiro collider.

8 - Configure do modo que seja adequado em relação ao rigidbody, o meu está assim:

[TUTORIAL] Como programar um carro/moto voador(a)  Textur13

A variavel Rotacao Direita define a velocidade e o eixo que a moto rotacionará para a Direita.
A variavel Rotacao Esquerda define a velocidade e o eixo que a moto rotacionará para a Esquerda.
Velocidade é a velocidade.
Distancia Max é a distancia necessaria para subir na moto.
Altura Pulo é a altura precisa para o Pulo.
Resetar Pos é a tecla que resetará a rotação da moto.
Spawnar é a tecla que instanciará a moto.
O resto é meio obvio ;-;

Ignore os GameObjects por hora jaja irei explicar.

9 - Faça duas tags uma para o Mapa  e outra para a Moto ou utilize a própria do player (não explicarei porque é algo fácil de se encontrar por ai).

10 - Coloque o script motoQueda no segundo collider e coloque a tag do mapa criada no passo 9.

[TUTORIAL] Como programar um carro/moto voador(a)  Textur14

11 - Faça um terceiro Collider que será o Limite de altura.

12 - Coloque o script Limite nele e configure da melhor forma, o meu está assim.

[TUTORIAL] Como programar um carro/moto voador(a)  Textur15

Ignore o slot da Gravidade ele seria a força que a moto seria empurrada para baixo, mas fazer algo bom demoraria mais ainda, talvez em uma breve att do script ensino a fazer esse sisteminha...

13 - Faça um Objeto vazio e coloque o personagem dentro dele juntamente com a camera que seguirá o mesmo (não é preciso colocar a camera mas se você quiser coloque...).

14 - Faça um canvas com um Text e configure do modo que você quiser, caso já tenha um canvas apenas mude o "Interagir" do script moto de Canvas para Text.

15 - Faça outro Objeto vazio e deixe como filho do jogador ele será onde a moto será spawnada.

16 - Coloque o primeiro Objeto vazio na variavel CorpoPersonagem.

17 - Coloque o canvas na variavel Interagir.

18 - Coloque o segundo objeto vazio na variavel SpawnMoto.

Pronto seu script está configurado.



Para melhorar a movimentação basta configurar o rigibody e as forças + o -  e se quiser deixar o script menor é só remover as bools e colocar direto no código da key ;-; se mesmo assim não ficar bom sinta-se livre para modificar ;-;


Se esqueci de algo ou não está funcionando corretamente é só comentar que tento ajudar  Smile
PauloFR
PauloFR
ProgramadorMaster

Masculino PONTOS : 2718
REPUTAÇÃO : 364
Idade : 18
Áreas de atuação : Raramente programação/modelagem/sonoplastia
Respeito as regras : [TUTORIAL] Como programar um carro/moto voador(a)  Aad8pUi

https://www.schultzgames.com/u8329

Voltar ao Topo Ir em baixo

Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum