[TUTORIAL] Entrar no carro estilo GTA
+12
TitanX Gamer
Gabriel César CORINTHIANS
Fagner3Designer
douuglinhas
JhonnyBravo
dstaroski
tom ramber
rafaelllsd
AndyShow
Chilinger
MarcosSchultz
JohnRambo
16 participantes
Página 1 de 2
Página 1 de 2 • 1, 2
[TUTORIAL] Entrar no carro estilo GTA
Olá, Fiz um script simples de o player ir em direção ao carro parar na porta, abri-la entrar e fecha. Não fiz com animação devido ao Animator porque cada um Vai estar de um jeito. Tem 2 Script Um que fiz para o Player "EntrarNoCarro" e o do Carro "Carro", fiz duas versões com Vector3.Lerp e com NasMesh.
Distancia Do Carro: É a distancia que você poderá entra no carro.
Distancia De Parar: É a distancia da porta que ele vai para para abrir.
Velocidade: Velocidade que vai percorrer até o carro.
Velocidade Das Portas: Velocidade que as portas vão girar.
Tempo De Abrir A Porta: Tempo em que vai demorar para o player abrir a porta.
Tempo De Entrar No Carro: Tempo Que vai demorar para o player entrar no carro.
Player tem que ter Tag "Player"
Se for usar Script com NavMesh, seu player em que ter NavMeshAgent.
Entrar No Carro Com NavMesh:
Entrar No Carro Com Vector2.Lerp
Carro Com Vector3.Lerp:
-BUG CORRIGIDO: ENTRAR EM DOIS CARROS EM DISTANCIAS PEQUENAS.
-Qualquer Bug relate o erro nesse post obrigado.
Distancia Do Carro: É a distancia que você poderá entra no carro.
Distancia De Parar: É a distancia da porta que ele vai para para abrir.
Velocidade: Velocidade que vai percorrer até o carro.
Velocidade Das Portas: Velocidade que as portas vão girar.
Tempo De Abrir A Porta: Tempo em que vai demorar para o player abrir a porta.
Tempo De Entrar No Carro: Tempo Que vai demorar para o player entrar no carro.
Player tem que ter Tag "Player"
Se for usar Script com NavMesh, seu player em que ter NavMeshAgent.
Entrar No Carro Com NavMesh:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class EntrarNoCarro : MonoBehaviour {
private GameObject Carro;
public bool IrAPosicao;
public string TagCarro;
public float DistanciaDoCarro, DistanciaDeParar = 3f;
public float Velocidade;
public float VelocidadeDasPortas;
public float TempoDeAbrirAPorta;
public float TempoDeEntraNoCarro;
private NavMeshAgent NavMesh;
public bool PortaDireita, PortaEsquerda;
public bool Entrar;
public bool Fechar;
private GameObject[] veiculos;
private int indiceVeiculoMaisProximo = 0;
void Start () {
veiculos = GameObject.FindGameObjectsWithTag(TagCarro);
NavMesh = transform.GetComponent<NavMeshAgent> ();
}
// Update is called once per frame
void Update () {
NavMesh.speed = Velocidade;
if (Input.GetKeyDown (KeyCode.F)) {
ChecarVeiculoMaisProximo ();
NavMesh.enabled = true;
}
if (IrAPosicao == true && transform.position.x >= Carro.transform.position.x) {
NavMesh.destination = Carro.GetComponent<Carro> ().PortaEsquerda.transform.position;
PortaEsquerda = true;
IrAPosicao = false;
}
if (IrAPosicao == true && transform.position.x <= Carro.transform.position.x) {
NavMesh.destination = Carro.GetComponent<Carro> ().PortaDireita.transform.position;
PortaDireita = true;
IrAPosicao = false;
}
if (Carro != null) {
if (Vector3.Distance (transform.position, Carro.transform.position) < DistanciaDeParar) {
IrAPosicao = false;
NavMesh.enabled = false;
Debug.Log ("Chegou");
}
}
if (PortaDireita == true && Vector3.Distance (transform.position, Carro.transform.position) < DistanciaDeParar && Entrar == false) {
StartCoroutine ("TempoPortaDireita");
}
if (PortaEsquerda == true && Vector3.Distance (transform.position, Carro.transform.position) < DistanciaDeParar && Entrar == false) {
StartCoroutine ("TempoPortaEsquerda");
}
if (Entrar == true) {
transform.position = Carro.transform.position;
Carro.GetComponent<Carro> ().CameraCar.depth = 2;
transform.gameObject.SetActive (false);
PortaEsquerda = false;
PortaDireita = false;
Fechar = true;
Carro.GetComponent<Carro> ().EstaDentro = true;
}
if (Input.GetAxis ("Vertical") > 0 || Input.GetAxis ("Vertical") < 0) {
StopCoroutine ("TempoDeEntraNoCarro0");
Entrar = false;
IrAPosicao = false;
NavMesh.enabled = false;
}
if (Input.GetAxis ("Horizontal") > 0 || Input.GetAxis ("Horizontal") < 0) {
Entrar = false;
IrAPosicao = false;
NavMesh.enabled = false;
StopCoroutine ("TempoDeEntraNoCarro0");
}
}
void ChecarVeiculoMaisProximo(){
float distanciaMax = 10;
for (int x = 0; x < veiculos.Length; x++) {
float distanciaVeiculoAtual = Vector3.Distance (transform.position, veiculos [x].transform.position);
if (distanciaVeiculoAtual < distanciaMax) {
distanciaMax = distanciaVeiculoAtual;
indiceVeiculoMaisProximo = x;
Debug.Log ("O Carro Mais Proximo É: " + veiculos [x].name);
Carro = veiculos [x];
IrAPosicao = true;
}
}
}
IEnumerator TempoPortaDireita () {
yield return new WaitForSeconds (TempoDeAbrirAPorta);
Carro.GetComponent<Carro> ().PortaDireita.transform.localRotation = Quaternion.Lerp (Carro.GetComponent<Carro> ().PortaDireita.transform.localRotation, Quaternion.Euler (Vector3.up * -60f), VelocidadeDasPortas * Time.deltaTime);
StartCoroutine ("TempoDeEntraNoCarro0");
}
IEnumerator TempoPortaEsquerda () {
yield return new WaitForSeconds(TempoDeAbrirAPorta);
Carro.GetComponent<Carro> ().PortaEsquerda.transform.localRotation = Quaternion.Lerp(Carro.GetComponent<Carro> ().PortaEsquerda.transform.localRotation, Quaternion.Euler(Vector3.up * 60f), VelocidadeDasPortas * Time.deltaTime);
StartCoroutine ("TempoDeEntraNoCarro0");
}
IEnumerator TempoDeEntraNoCarro0 () {
yield return new WaitForSeconds (TempoDeEntraNoCarro);
Entrar = true;
}
}
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Carro : MonoBehaviour {
private GameObject Player;
public GameObject PortaDireita;
public GameObject PortaEsquerda;
public Camera CameraCar;
public Transform LocalDeSair;
private bool Abrir;
private bool FecharTudo;
public bool EstaDentro = false;
void Start () {
Player = GameObject.FindWithTag ("Player");
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown (KeyCode.F) && Player.GetComponent<EntrarNoCarro> ().Entrar == true && EstaDentro == true) { //SairDoCarro//AbriaPorta
FecharTudo = false;
StartCoroutine ("SairTempo");
PortaEsquerda.transform.localRotation = Quaternion.Lerp (PortaEsquerda.transform.localRotation, Quaternion.Euler (Vector3.up * 60f), Player.GetComponent<EntrarNoCarro> ().VelocidadeDasPortas * Time.deltaTime);
Abrir = true;
Player.GetComponent<EntrarNoCarro> ().Fechar = false;
EstaDentro = false;
}
if (Player.GetComponent<EntrarNoCarro> ().Fechar == true && Player.GetComponent<EntrarNoCarro> ().Entrar == true) { //FechaPorta
PortaEsquerda.transform.localRotation = Quaternion.Lerp (PortaEsquerda.transform.localRotation, Quaternion.Euler (Vector3.up * 0f), Player.GetComponent<EntrarNoCarro> ().VelocidadeDasPortas * Time.deltaTime);
PortaDireita.transform.localRotation = Quaternion.Lerp (PortaDireita.transform.localRotation, Quaternion.Euler (Vector3.up * 0f), Player.GetComponent<EntrarNoCarro> ().VelocidadeDasPortas * Time.deltaTime);
Abrir = false;
FecharTudo = false;
}
if (Abrir == true) {
PortaEsquerda.transform.localRotation = Quaternion.Lerp (PortaEsquerda.transform.localRotation, Quaternion.Euler (Vector3.up * 60f), Player.GetComponent<EntrarNoCarro> ().VelocidadeDasPortas * Time.deltaTime);
FecharTudo = false;
}
if (FecharTudo == true && Player.GetComponent<EntrarNoCarro> ().Entrar == false) { //FechaPorta
PortaEsquerda.transform.localRotation = Quaternion.Lerp (PortaEsquerda.transform.localRotation, Quaternion.Euler (Vector3.up * 0f), Player.GetComponent<EntrarNoCarro> ().VelocidadeDasPortas * Time.deltaTime);
}
}
IEnumerator SairTempo () {
yield return new WaitForSeconds (Player.GetComponent<EntrarNoCarro>().TempoDeEntraNoCarro);
Player.transform.position = LocalDeSair.transform.position;
StartCoroutine ("FecharT");
Player.gameObject.SetActive (true);
Player.GetComponent<EntrarNoCarro> ().Entrar = false;
CameraCar.depth = 0;
FecharTudo = true;
Abrir = false;
}
IEnumerator FecharT () {
yield return new WaitForSeconds (1f);
FecharTudo = false;
}
}
Entrar No Carro Com Vector2.Lerp
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EntrarNoCarro2 : MonoBehaviour {
private GameObject Carro;
public bool IrAPosicao;
public string TagCarro;
public float DistanciaDoCarro, DistanciaDeParar = 3f;
public float Velocidade;
public float VelocidadeDasPortas;
public float TempoDeAbrirAPorta;
public float TempoDeEntraNoCarro;
public bool PortaDireita, PortaEsquerda;
public bool Entrar;
public bool Fechar;
private GameObject[] veiculos;
private int indiceVeiculoMaisProximo = 0;
void Start () {
veiculos = GameObject.FindGameObjectsWithTag(TagCarro);
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown (KeyCode.F)) {
ChecarVeiculoMaisProximo ();
}
if (IrAPosicao == true && transform.position.x >= Carro.transform.position.x) {
transform.position = Vector3.Lerp (transform.position, Carro.GetComponent<Carro2> ().PortaDireita.transform.position, Velocidade * Time.deltaTime);
PortaEsquerda = true;
}
if (IrAPosicao == true && transform.position.x <= Carro.transform.position.x) {
transform.position = Vector3.Lerp (transform.position, Carro.GetComponent<Carro2> ().PortaEsquerda.transform.position, Velocidade * Time.deltaTime);
PortaDireita = true;
}
if(Carro != null) {
if (Vector3.Distance (transform.position, Carro.transform.position) < DistanciaDeParar) {
IrAPosicao = false;
Debug.Log ("Chegou");
}
}
if (PortaDireita == true && Vector3.Distance (transform.position, Carro.transform.position) < DistanciaDeParar && Entrar == false) {
StartCoroutine ("TempoPortaDireita");
}
if (PortaEsquerda == true && Vector3.Distance (transform.position, Carro.transform.position) < DistanciaDeParar && Entrar == false) {
StartCoroutine ("TempoPortaEsquerda");
}
if (Entrar == true) {
transform.position = Carro.transform.position;
Carro.GetComponent<Carro2> ().CameraCar.depth = 2;
transform.gameObject.SetActive (false);
PortaEsquerda = false;
PortaDireita = false;
Fechar = true;
Carro.GetComponent<Carro2> ().EstaDentro = true;
}
if (Input.GetAxis ("Vertical") > 0 || Input.GetAxis ("Vertical") < 0) {
StopCoroutine ("TempoDeEntraNoCarro0");
IrAPosicao = false;
}
if (Input.GetAxis ("Horizontal") > 0 || Input.GetAxis ("Horizontal") < 0) {
Entrar = false;
IrAPosicao = false;
StopCoroutine ("TempoDeEntraNoCarro0");
}
}
void ChecarVeiculoMaisProximo(){
float distanciaMax = 10;
for (int x = 0; x < veiculos.Length; x++) {
float distanciaVeiculoAtual = Vector3.Distance (transform.position, veiculos [x].transform.position);
if (distanciaVeiculoAtual < distanciaMax) {
distanciaMax = distanciaVeiculoAtual;
indiceVeiculoMaisProximo = x;
Debug.Log ("O Carro Mais Proximo É: " + veiculos [x].name);
Carro = veiculos [x];
IrAPosicao = true;
}
}
}
IEnumerator TempoPortaDireita () {
yield return new WaitForSeconds (TempoDeAbrirAPorta);
Carro.GetComponent<Carro2> ().PortaDireita.transform.localRotation = Quaternion.Lerp (Carro.GetComponent<Carro2> ().PortaDireita.transform.localRotation, Quaternion.Euler (Vector3.up * -60f), VelocidadeDasPortas * Time.deltaTime);
StartCoroutine ("TempoDeEntraNoCarro0");
}
IEnumerator TempoPortaEsquerda () {
yield return new WaitForSeconds(TempoDeAbrirAPorta);
Carro.GetComponent<Carro2> ().PortaEsquerda.transform.localRotation = Quaternion.Lerp(Carro.GetComponent<Carro2> ().PortaEsquerda.transform.localRotation, Quaternion.Euler(Vector3.up * 60f), VelocidadeDasPortas * Time.deltaTime);
StartCoroutine ("TempoDeEntraNoCarro0");
}
IEnumerator TempoDeEntraNoCarro0 () {
yield return new WaitForSeconds (TempoDeEntraNoCarro);
Entrar = true;
}
}
Carro Com Vector3.Lerp:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Carro2 : MonoBehaviour {
private GameObject Player;
public GameObject PortaDireita;
public GameObject PortaEsquerda;
public Camera CameraCar;
public Transform LocalDeSair;
private bool Abrir;
private bool FecharTudo;
public bool EstaDentro;
void Start () {
Player = GameObject.FindWithTag ("Player");
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown (KeyCode.F) && Player.GetComponent<EntrarNoCarro2> ().Entrar == true && EstaDentro == true) { //SairDoCarro//AbriaPorta
FecharTudo = false;
StartCoroutine ("SairTempo");
PortaEsquerda.transform.localRotation = Quaternion.Lerp (PortaEsquerda.transform.localRotation, Quaternion.Euler (Vector3.up * 60f), Player.GetComponent<EntrarNoCarro2> ().VelocidadeDasPortas * Time.deltaTime);
Abrir = true;
Player.GetComponent<EntrarNoCarro2> ().Fechar = false;
EstaDentro = false;
}
if (Player.GetComponent<EntrarNoCarro2> ().Fechar == true && Player.GetComponent<EntrarNoCarro2> ().Entrar == true) { //FechaPorta
PortaEsquerda.transform.localRotation = Quaternion.Lerp (PortaEsquerda.transform.localRotation, Quaternion.Euler (Vector3.up * 0f), Player.GetComponent<EntrarNoCarro2> ().VelocidadeDasPortas * Time.deltaTime);
PortaDireita.transform.localRotation = Quaternion.Lerp (PortaDireita.transform.localRotation, Quaternion.Euler (Vector3.up * 0f), Player.GetComponent<EntrarNoCarro2> ().VelocidadeDasPortas * Time.deltaTime);
Abrir = false;
FecharTudo = false;
}
if (Abrir == true) {
PortaEsquerda.transform.localRotation = Quaternion.Lerp (PortaEsquerda.transform.localRotation, Quaternion.Euler (Vector3.up * 60f), Player.GetComponent<EntrarNoCarro2> ().VelocidadeDasPortas * Time.deltaTime);
FecharTudo = false;
}
if (FecharTudo == true && Player.GetComponent<EntrarNoCarro2> ().Entrar == false) { //FechaPorta
PortaEsquerda.transform.localRotation = Quaternion.Lerp (PortaEsquerda.transform.localRotation, Quaternion.Euler (Vector3.up * 0f), Player.GetComponent<EntrarNoCarro2> ().VelocidadeDasPortas * Time.deltaTime);
}
}
IEnumerator SairTempo () {
yield return new WaitForSeconds (Player.GetComponent<EntrarNoCarro2>().TempoDeEntraNoCarro);
Player.transform.position = LocalDeSair.transform.position;
StartCoroutine ("FecharT");
Player.gameObject.SetActive (true);
Player.GetComponent<EntrarNoCarro2> ().Entrar = false;
CameraCar.depth = 0;
FecharTudo = true;
Abrir = false;
}
IEnumerator FecharT () {
yield return new WaitForSeconds (1f);
FecharTudo = false;
}
}
-BUG CORRIGIDO: ENTRAR EM DOIS CARROS EM DISTANCIAS PEQUENAS.
-Qualquer Bug relate o erro nesse post obrigado.
Última edição por rafaelllsd em Qua Jan 11, 2017 2:38 pm, editado 3 vez(es)
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Essa é a ideia, Já vi muitas pessoas pedindo, e como eu nunca tinha tentando está ai. Valeu mano :DAndyShow escreveu:Show...Muito Bom! Vai Ajudar Bastante Gente
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Muito bom ! Obrigado
JohnRambo- Moderador
-
PONTOS : 5100
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Cara, atualmente estou tendo problemas no meu asset com este parâmetro. Suponhamos que eu não quero fazer um Player, apenas um veículo
Quando 2 veículos ficam lado a lado, e eu apertar F, vou conseguir entrar nos 2 veículos... E este problema só pode ser evitado a princípio, fazendo um Raycast no jogador.
Quando 2 veículos ficam lado a lado, e eu apertar F, vou conseguir entrar nos 2 veículos... E este problema só pode ser evitado a princípio, fazendo um Raycast no jogador.
Re: [TUTORIAL] Entrar no carro estilo GTA
Não tinha pensando nisto, Vou ver se acho outro modo sem ser com Raycast, mais se não tiver irei implementar o raycast.
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Cara, eu realmente estou a mais de 1 semana pensando em alguma solução para isto. Mas as únicas coisas que eu pensei foram, ou o Raycast no Player, ou um controlador externo que mede a distância do jogador em relação a todas as portas... a porta mais próxima de todas deverá ser a escolhida... mas não são soluções que me agradem tendo em vista que estou fazendo um asset com 1 script soh
Re: [TUTORIAL] Entrar no carro estilo GTA
Marcos pensei em algo, todos os carros da cena é adicionado em uma Array, e se você aperta "F" um For verifica qual carro da lista está mais perto. Ai no caso do meu script, a variavel Carro recebe o, Carro mais perto. Mais não sei fazer o For procurar o objeto mais próximo e se tem como fazer isso, facil não deve ser.
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Entao Rafael sua ideia e mas facil mas o for tem que procurar com o ray mesmo.
Chilinger- MembroAvançado
-
PONTOS : 4017
REPUTAÇÃO : 42
Idade : 30
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
rafaelllsd escreveu:Marcos pensei em algo, todos os carros da cena é adicionado em uma Array, e se você aperta "F" um For verifica qual carro da lista está mais perto. Ai no caso do meu script, a variavel Carro recebe o, Carro mais perto. Mais não sei fazer o For procurar o objeto mais próximo e se tem como fazer isso, facil não deve ser.
Sim, mas para você fazer isto, você vai precisar de um script controlador, para adicionar todos a uma única array e comparar
Re: [TUTORIAL] Entrar no carro estilo GTA
Você sabe algum tutorial de como fazer essa procura do carro mais proximo pela array? gostaria de tentar para para atualizar o script e tirar esse bug. Se precisa eu crio outro Tópico.
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Vou em uma janta hoje, mas se puder criar um tópico com esta dúvida, eu respondo :D
eh básicamente um for, varrendo uma array, coisa bem simples.
eh básicamente um for, varrendo uma array, coisa bem simples.
Re: [TUTORIAL] Entrar no carro estilo GTA
Obrigado, está ai para quando puder :D.
https://www.schultzgames.com/t3241-duvida-como-verificar-qual-objeto-de-uma-array-esta-mais-perto#22747
https://www.schultzgames.com/t3241-duvida-como-verificar-qual-objeto-de-uma-array-esta-mais-perto#22747
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Eu Sempre uso um Trigger na Porta do Carro pra Entrar, assim não tem esse problema de Entrar em outro Carro que estiver Próximo!
Re: [TUTORIAL] Entrar no carro estilo GTA
alguém tem um link pra mim baixar um carro com portas e a física incluída...?
tom ramber- Avançado
-
PONTOS : 3065
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
É um jeito bem facil de fazer mesmo, mais eu acho que no caso desse script ele não iria funcionar muito bem.AndyShow escreveu:Eu Sempre uso um Trigger na Porta do Carro pra Entrar, assim não tem esse problema de Entrar em outro Carro que estiver Próximo!
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
tom ramber escreveu:alguém tem um link pra mim baixar um carro com portas e a física incluída...?
Como Assim Física Incluída? vc diz o Carro Andando,Abrindo Portas,Etc???
Re: [TUTORIAL] Entrar no carro estilo GTA
Deve estar falando de assets, TOM RAMBER sugiro que crie um novo tópico.
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
isso.. Andando e abrindo as portas etc...o modelo que vem com a unity por exemplo não tem portas...
tom ramber- Avançado
-
PONTOS : 3065
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
alguém resolveu o problema do bug?
tom ramber- Avançado
-
PONTOS : 3065
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
To sem tempo para resolver, porque não estou na minha casa, mais irei resolver quando eu conseguir um tempo aqui. Talvez hoje a noite.
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
beleza...se poder manda um Packard com algum modelo que tenha portas e script de controller...
tom ramber- Avançado
-
PONTOS : 3065
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Cara já é a 2° Vez que acho você pedindo isso, porque você não aprende a modelar assim você faz oque você quiser, em vez de pedir pronto para outras pessoas. Existe muitos tutoriais ensinando, eu não usei nenhum modelo para testar esse script, usei apenas Cubos.tom ramber escreveu:beleza...se poder manda um Packard com algum modelo que tenha portas e script de controller...
Veja esse tutorial de como modelar Carros e faça as coisas por si mesmo em vez de esperar cair do céu.
https://www.youtube.com/watch?v=CyoeUXjDTO4
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
tom ramber- Avançado
-
PONTOS : 3065
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
mais eu sei modelar muito bem...ta ligado...so não sei configurar o carro pra receber o car controller
tom ramber- Avançado
-
PONTOS : 3065
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Foi mal Rafaell por querer tudo pronto...o seu script funcionou de boa...neste modelo q modelei...minha dúvida agora é como desativar o player e ativar o carro assim q entro no carro...
tom ramber- Avançado
-
PONTOS : 3065
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Bom dia! Mano, atenção as regras do fórum, regra número 3: "Não é permitido postar novamente em um tópico mais de duas vezes seguidas. Caso queira adicionar algo, edite o último post ou aguarde 24h."tom ramber escreveu:Foi mal Rafaell por querer tudo pronto...o seu script funcionou de boa...neste modelo q modelei...minha dúvida agora é como desativar o player e ativar o carro assim q entro no carro...
Abraço!
Re: [TUTORIAL] Entrar no carro estilo GTA
Mais essa parte do script já faz isso. Deixa o player desativado na posição do carro, e quando clica para sair ele desativa e vai para posição "LocalDeSair" do script do carro.tom ramber escreveu:Foi mal Rafaell por querer tudo pronto...o seu script funcionou de boa...neste modelo q modelei...minha dúvida agora é como desativar o player e ativar o carro assim q entro no carro...
- Código:
if (Entrar == true) {
transform.position = Carro.transform.position; //Deixa o player na posicao do carro.
Carro.GetComponent<Carro2> ().CameraCar.depth = 2; //Camera do carro fica como principal.
transform.gameObject.SetActive (false); //Player Desativado.
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
O Bug dos Script foi corrigido, agradeço Marcos e o Manawydan pela ajuda. Caso ache mais algum bug só postar o erro.
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
A livraria UnityEngine.AI; compiler erros...the type or namespace UnityEngine". Are you missing an assembly reference...q pose ser?
tom ramber- Avançado
-
PONTOS : 3065
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Olá rafaelllsd, coloquei tudo certinho o script carro2 dentro do carro e o script entrarnocarro2 no player e nao funcionou voce pode me ajudar?
JhonnyBravo- Iniciante
-
PONTOS : 2915
REPUTAÇÃO : 4
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Seu player tem a tag "Player"? na variavel veiculos você anexo seus automoveis?
-Obs: no script que postei a variavel tava privada deixa ela publica e linke seus carros nelas.
-Obs: no script que postei a variavel tava privada deixa ela publica e linke seus carros nelas.
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
atualizei o script para quando iniciar o jogo, todos os Automoveis com a Tag da variavel "TagCarro" já são anexadas na variavel Veiculos.
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Sim Eu conseguir agora, Mas tenho umas dúvidas meu personagem ele esta sumindo quando aperto "F" perto do carro, queria que ele ficasse dentro do carro voce pode me ajudar? e tmb para fazer com que troque a tecla "F" por um botao na tela Obrigado desde ja! ![Smile](/users/1914/40/81/62/smiles/541976152.png)
![Smile](/users/1914/40/81/62/smiles/541976152.png)
JhonnyBravo- Iniciante
-
PONTOS : 2915
REPUTAÇÃO : 4
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Isso porque ele é desativado quando entra no carro. Se não quer que ele Suma só tira essa linha:
- Código:
transform.gameObject.SetActive (false);
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Ola pessoal, eu uso no meu carro o car controller q vem na unity...mais quando dou play tanto o carro como o player se movimenta pelo senário ao mesmo tempo, como deixar o carro desativado ate eu entrar nele? Outra coisa,a câmera do carro deve esta filiada ao carro? ...ocorreu tudo ok fora isto...
tom ramber- Avançado
-
PONTOS : 3065
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
No Script tem uma Booleana "Entrar" é só fazer uma verificação, se entrar for true o carro movimenta caso contrario ele fica parado.tom ramber escreveu:Ola pessoal, eu uso no meu carro o car controller q vem na unity...mais quando dou play tanto o carro como o player se movimenta pelo senário ao mesmo tempo, como deixar o carro desativado ate eu entrar nele? Outra coisa,a câmera do carro deve esta filiada ao carro? ...ocorreu tudo ok fora isto...
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Não consegui...sou bom em modelagem...mais ainda to engatiando no C#....porque quando entro ou quando saio do carro ele da um grande empaqueto...? Tipo o player colide com o carro ....
tom ramber- Avançado
-
PONTOS : 3065
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Seu player esta desativando quando entra no carro? o local de saida do carro esta muito perto do Veiculo? tem varios fatores para isto estar ocorrendo.
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Realmente o o local de sair estava muito próximo no carro...problema resolvido...estou com problemas apenas com a câmera...coloquei uma com pivô tipo orbital...mais nao da certo...alguma idéia ai?
tom ramber- Avançado
-
PONTOS : 3065
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Não entendi muito bem, ela não da certo como?tom ramber escreveu:Realmente o o local de sair estava muito próximo no carro...problema resolvido...estou com problemas apenas com a câmera...coloquei uma com pivô tipo orbital...mais nao da certo...alguma idéia ai?
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Quando aperto F o player entrar e sai imediatamente e entra novamente...então a câmera funciona de boa..mais quando saio do carro e entro novamente,a câmera trava em algum ponto do pivô e fica travada...qual melhor tipo de câmera ideal pra este sistema? Ela tem q esta filiada ao carro?
tom ramber- Avançado
-
PONTOS : 3065
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Como assim Quando aperta F ele Entra e sai, tipo na mesma hora? eu acabei de testar e ta funcionando perfeitamente. A camera não precisa estar filiada ao carro, o tipo de camera é que a convier melhor para você. E como a camera fica travada? se a unica função do script sobre ela é só muda o Depth, deve ser script da sua camera que ta bugando com o carro.
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Isso,entra e sai na mesma hora...pode ser o script do carro, o que vem naquele carrinho da Unity que ta bugando....mas em relação a câmera, mesmo uma câmera normal se eu não filiar ao carro, o carro sai e ela fica para trás...mesmo lincada na variável...
tom ramber- Avançado
-
PONTOS : 3065
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Mano a variavel camera do script não faz ela seguir o carro, só server para deixar ela como principal quando entra no carro. Não tem por que isso está acontecendo de entrar e sair do carro na mesma hora porque para mim funciona normalmente o.O
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
resolvido o problema aqui...muito bom este sistema...so não consegui deixar o carro tipo parado e ativá-lo somente quando eu entra nele...
tom ramber- Avançado
-
PONTOS : 3065
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Pra deixar o caro parado você pode usar o IsKinematic do Rigibody. Tem uma variavel chamada "Entrar" Se ela estiver True o player esta dentro se tiver False o player esta fora, então só faze uma basica verificação se entrar = false ativa o Iskinematic ou algo do tipo.
rafaelllsd- ProgramadorMaster
-
PONTOS : 5167
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
estava tentando adiciona uma tecla de ligar e desligar o carro no script car controller, tipo aperta E e o carro ligar, e não ao entrar nele...mais e bem complexo...apesar de ser bem simples pros fera como vc... Vou tentar aqui...vlw
tom ramber- Avançado
-
PONTOS : 3065
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Ele e para android tou precisando muito pra essa plataforma!
douuglinhas- Iniciante
- PONTOS : 2571
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Entrar no carro estilo GTA
Rafael, eu faria uma esfera sem o MeshRenderer com um collider, quando apertasse F, essa esfera aumentaria de tamanho, e no primeiro objeto com a Tag "Carro" que ela tocasse, seria escolhido como meu alvo.rafaelllsd escreveu:Você sabe algum tutorial de como fazer essa procura do carro mais proximo pela array? gostaria de tentar para para atualizar o script e tirar esse bug. Se precisa eu crio outro Tópico.
A esfera ficaria no Player.
Fagner3Designer- Modelador
-
PONTOS : 3145
REPUTAÇÃO : 24
Idade : 32
Respeito as regras :
Página 1 de 2 • 1, 2
![-](https://2img.net/i/empty.gif)
» Personagem Entrar No Carro (Com Primeira Pessoa Sem Animaçao De Entrar Em C#)
» Entrar e sair do carro
» Entrar no carro (Com Anim)
» Entrar no carro com ThirdPerson [C#]
» Como Entrar no Carro (RCC)
» Entrar e sair do carro
» Entrar no carro (Com Anim)
» Entrar no carro com ThirdPerson [C#]
» Como Entrar no Carro (RCC)
Página 1 de 2
Permissões neste sub-fórum
Não podes responder a tópicos