[TUTORIAL] Fazer um elevador
+3
Gray_14
Elinfe
baldemar360
7 participantes
Página 1 de 1
[TUTORIAL] Fazer um elevador
Tutorial explicando como funciona:
Adicione este script no seu Elevador
De preferencia deixe seu elevador em posições exatas nos eixos X,Y,Z, isto irá facilitar um pouco.
Crie um botão para ser o botão do elevador e linke na variavel botão.
ajeite a velocidade do elevador a gosto...
Linke 2 objetos nas variaveis ParadaBaixa e ParadaAlta, eles devem estar nas mesmas posiçães do elevador no eixo X e Z, o que muda é apenas o eixo Y
OBS: SE ESTIVER UTILIZANDO A UNITY 5, USE O SCRIPT ABAIXO:
Adicione este script no seu Elevador
- Código:
using UnityEngine;
using System.Collections;
public class ELEVADOR : MonoBehaviour {
public bool EstaSubindo,EstaDescendo,EstaParado,EstaPerto;
public Transform paradaBaixo,paradaAlta;
public float speed = 3;
public GameObject Botao;
void OnTriggerEnter (){
EstaPerto = true;
}
void OnTriggerExit (){
EstaPerto = false;
}
void FixedUpdate (){
if(EstaSubindo == true){
transform.position = Vector3.MoveTowards(transform.position,paradaAlta.transform.position,speed*Time.deltaTime);
}
if(EstaDescendo == true){
transform.position = Vector3.MoveTowards(transform.position,paradaBaixo.transform.position,speed*Time.deltaTime);
}
if(transform.position == paradaBaixo.transform.position || transform.position == paradaAlta.transform.position){
Botao.renderer.material.color = Color.red;
EstaParado = true;
}else{
Botao.renderer.material.color = Color.green;
EstaParado = false;
}
if(Input.GetKeyDown("e") && EstaPerto == true && EstaParado == true){
if(transform.position == paradaBaixo.transform.position){
EstaSubindo = true;
EstaDescendo = false;
}else if(transform.position == paradaAlta.transform.position){
EstaSubindo = false;
EstaDescendo = true;
}
}
}
}
De preferencia deixe seu elevador em posições exatas nos eixos X,Y,Z, isto irá facilitar um pouco.
Crie um botão para ser o botão do elevador e linke na variavel botão.
ajeite a velocidade do elevador a gosto...
Linke 2 objetos nas variaveis ParadaBaixa e ParadaAlta, eles devem estar nas mesmas posiçães do elevador no eixo X e Z, o que muda é apenas o eixo Y
OBS: SE ESTIVER UTILIZANDO A UNITY 5, USE O SCRIPT ABAIXO:
- Código:
using UnityEngine;
using System.Collections;
public class Elevador : MonoBehaviour {
public bool EstaSubindo,EstaDescendo,EstaParado,EstaPerto;
public Transform paradaBaixo,paradaAlta;
public float speed = 3;
public GameObject Botao;
void OnTriggerEnter (){
EstaPerto = true;
}
void OnTriggerExit (){
EstaPerto = false;
}
void FixedUpdate (){
if(EstaSubindo == true){
transform.position = Vector3.MoveTowards(transform.position,paradaAlta.transform.position,speed*Time.deltaTime);
}
if(EstaDescendo == true){
transform.position = Vector3.MoveTowards(transform.position,paradaBaixo.transform.position,speed*Time.deltaTime);
}
if(transform.position == paradaBaixo.transform.position || transform.position == paradaAlta.transform.position){
Botao.GetComponent<Renderer>().material.color = Color.red;
EstaParado = true;
}else{
Botao.GetComponent<Renderer>().material.color = Color.green;
EstaParado = false;
}
if(Input.GetKeyDown("e") && EstaPerto == true && EstaParado == true){
if(transform.position == paradaBaixo.transform.position){
EstaSubindo = true;
EstaDescendo = false;
}else if(transform.position == paradaAlta.transform.position){
EstaSubindo = false;
EstaDescendo = true;
}
}
}
}
Última edição por MarcosSchultz em Ter Jun 07, 2016 8:45 pm, editado 1 vez(es)
baldemar360- Iniciante
- PONTOS : 3416
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Fazer um elevador
Bom dia!
Muito boa a sua didática, veja estou tendo um probleminha, o elevador quando desce e sobe fica quicando....
Muito boa a sua didática, veja estou tendo um probleminha, o elevador quando desce e sobe fica quicando....
Elinfe- Iniciante
- PONTOS : 3305
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Fazer um elevador
Refiz o script...
Ta mais facil. basta jogar o botão e configurar a altura inicial e a final.
Más se você está utilizando o FPSController da Unity 5, precisará desativa-lo enquanto sobe o elevador, por que ele tem uma física diferente, e fica trepidando
- Código:
using UnityEngine;
using System.Collections;
public class Elevador : MonoBehaviour {
private bool EstaSubindo,EstaDescendo,EstaParado,EstaPerto;
public int paradaBaixo,paradaAlta;
public float velocidade = 3;
public GameObject Botao;
void OnTriggerEnter (){
EstaPerto = true;
}
void OnTriggerExit (){
EstaPerto = false;
}
void FixedUpdate (){
if(EstaSubindo == true){
Vector3 destino = new Vector3(transform.position.x,paradaAlta,transform.position.z);
transform.position = Vector3.Slerp(transform.position,destino,(velocidade/10)*Time.deltaTime);
}
if(EstaDescendo == true){
Vector3 destino2 = new Vector3(transform.position.x,paradaBaixo,transform.position.z);
transform.position = Vector3.Slerp(transform.position,destino2,(velocidade/10)*Time.deltaTime);
}
if(transform.position.y <= paradaBaixo+0.1f || transform.position.y >= paradaAlta-0.1f){
Botao.GetComponent<Renderer>().material.color = Color.red;
EstaParado = true;
}else{
Botao.GetComponent<Renderer>().material.color = Color.green;
EstaParado = false;
}
if(Input.GetKeyDown("e") && EstaPerto == true && EstaParado == true){
if(transform.position.y <= paradaBaixo+0.1f){
EstaSubindo = true;
EstaDescendo = false;
}else if(transform.position.y >= paradaAlta-0.1f){
EstaSubindo = false;
EstaDescendo = true;
}
}
}
}
Ta mais facil. basta jogar o botão e configurar a altura inicial e a final.
Más se você está utilizando o FPSController da Unity 5, precisará desativa-lo enquanto sobe o elevador, por que ele tem uma física diferente, e fica trepidando
Re: [TUTORIAL] Fazer um elevador
Anexei no topo
using UnityStandardAssets.Characters.FirstPerson;
e tentei usar o comando
FPSController.GetComponent<FirstPersonController>().enabled = false;
mas não funcionou
using UnityStandardAssets.Characters.FirstPerson;
e tentei usar o comando
FPSController.GetComponent<FirstPersonController>().enabled = false;
mas não funcionou
Elinfe- Iniciante
- PONTOS : 3305
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Fazer um elevador
você tem que trabalhar com o componente character
Más mesmo assim não iria funcionar pois daria algumas mensagens de alerta pela desativação do Character Controller e teria que adicionar outro colisor, ou desativar o rigidbody
- Código:
using UnityEngine;
using System.Collections;
public class Desativar : MonoBehaviour {
private CharacterController controlador;
void Start () {
controlador = GetComponent<CharacterController> ();
}
}
Más mesmo assim não iria funcionar pois daria algumas mensagens de alerta pela desativação do Character Controller e teria que adicionar outro colisor, ou desativar o rigidbody
Re: [TUTORIAL] Fazer um elevador
Cara, eu fiz isso dai ai mas o botão fica verde mesmo com o elevador parado. sabe qual pode ser o problema?
Gray_14- Avançado
- PONTOS : 3377
REPUTAÇÃO : 22
Idade : 30
Áreas de atuação : Modelagem básica low poly no Maya 3D
Respeito as regras :
Re: [TUTORIAL] Fazer um elevador
Marcos, tem como resolver a questãod e trepidar de uma forma bem fácil.
1. Criei um GameObject em branco e coloque um Box Collider como filho da mesh do chão do elevador ( importante ativar o trigger )
2. Coloque o nome dele de Character Holder
3. Coloque este script no CharacterHolder
1. Criei um GameObject em branco e coloque um Box Collider como filho da mesh do chão do elevador ( importante ativar o trigger )
2. Coloque o nome dele de Character Holder
3. Coloque este script no CharacterHolder
- Código:
using UnityEngine;
using System.Collections;
public class CharacterHolder : MonoBehaviour {
void OnTriggerEnter(Collider col)
{
col.transform.parent = gameObject.transform;
}
void OnTriggerExit(Collider col)
{
col.transform.parent = null;
}
}
Re: [TUTORIAL] Fazer um elevador
A questão da trepidação deve-se ao uso do novo FPSController e da nova física da Unity. O sistema meio que tem que ser totalmente refeito...
Teria que desativar as colisões do Player e deixa-lo totalmente parado durante a subida do elevador, para evitar a trepidação
Teria que desativar as colisões do Player e deixa-lo totalmente parado durante a subida do elevador, para evitar a trepidação
Re: [TUTORIAL] Fazer um elevador
eu uso no meu projeto o Input.GetKey o Input.GetKeyDown esta dando umas falhadas quando aciona o elevador
jonatan oliveira rocha- Avançado
- PONTOS : 3210
REPUTAÇÃO : 6
Idade : 34
Respeito as regras :
Re: [TUTORIAL] Fazer um elevador
jonatan oliveira rocha escreveu:eu uso no meu projeto o Input.GetKey o Input.GetKeyDown esta dando umas falhadas quando aciona o elevador
tem que ser o GetKeyDown, o GetKey é apenas para manter pressonado, mas o GetKeyDown é para pressionar apenas 1 vez
jonatan oliveira rocha- Avançado
- PONTOS : 3210
REPUTAÇÃO : 6
Idade : 34
Respeito as regras :
Re: [TUTORIAL] Fazer um elevador
Cara, show de bola teus tutoriais.
Fiz esse do elevador e tive o mesmo problema relatado acima. O botão fica sempre verde, desde o inicio do jogo e com isso o elevador não funciona.
Não sei se tem a ver, mas ao inves de box collider em tudo, coloquei mesh collider(assim como o tutorial do cenario do jogo de terror), não sei o que pode ser. Já tentei várias vezes e não funcionou. Não sei se é por causa daquele box collider perto do botão, que fica sempre ativo, dai evita de ficar vermelhor o botao.
Já teve esse mesmo problema?
Fiz esse do elevador e tive o mesmo problema relatado acima. O botão fica sempre verde, desde o inicio do jogo e com isso o elevador não funciona.
Não sei se tem a ver, mas ao inves de box collider em tudo, coloquei mesh collider(assim como o tutorial do cenario do jogo de terror), não sei o que pode ser. Já tentei várias vezes e não funcionou. Não sei se é por causa daquele box collider perto do botão, que fica sempre ativo, dai evita de ficar vermelhor o botao.
Já teve esse mesmo problema?
ssamuel.braga- Iniciante
- PONTOS : 3015
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Fazer um elevador
É por causa do boxCollider... tem que ter pelo menos 1 com trigger marcado para saber se está no elevador ou não.
Tópicos semelhantes
» [TUTORIAL]Como fazer kitMedico (C#)
» [TUTORIAL] Como fazer um TELEPORTE
» [TUTORIAL]fazer os vidros quebrarem!
» [TUTORIAL] Fazer um VOLANTE com UI, para Android
» [TUTORIAL] Unity 3D - Como fazer um imã simples.
» [TUTORIAL] Como fazer um TELEPORTE
» [TUTORIAL]fazer os vidros quebrarem!
» [TUTORIAL] Fazer um VOLANTE com UI, para Android
» [TUTORIAL] Unity 3D - Como fazer um imã simples.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos