[TUTORIAL] Sistema de Escada Estilo FPS
+4
MarcosSchultz
edumoran
Weslley
rafaelllsd
8 participantes
Página 1 de 1
[TUTORIAL] Sistema de Escada Estilo FPS
Olá pessoal, fiz um sistema de escada estilo FPS, quando olha para cima e anda ele sobe, e quando olha para baixo e anda desce. Para funcionar o objeto que será sua escada terá que ter a tag "Escada" e com a opção Trigger marcada. O Player tem que ter um Rigidbody. Seu script deve ter Nome "Escada".
- Código:
using UnityEngine;
using System.Collections;
public class Escada : MonoBehaviour {
public Camera Camera;
public float Velocidade;
public float Forca;
private bool EstaNaEscada;
private bool EmCima;
void Start () {
}
void Update () {
if (Camera.transform.rotation.eulerAngles.x > 270 && Camera.transform.rotation.eulerAngles.x < 360 && Input.GetKey (KeyCode.W) && EstaNaEscada == true) {
transform.Translate (0, Velocidade * Time.deltaTime, 0);
//Vai para Cima
}
if (Camera.transform.rotation.eulerAngles.x > 0 && Camera.transform.rotation.eulerAngles.x < 90 && Input.GetKey (KeyCode.W) && EstaNaEscada == true) {
transform.Translate (0, -Velocidade * Time.deltaTime, 0);
//Vai para Baixo
}
}
void OnTriggerEnter (Collider Other) {
if (Other.gameObject.tag == "Escada") {
GetComponent<Rigidbody> ().useGravity = false;
EstaNaEscada = true;
}
if (Other.transform.position.y < transform.position.y && EmCima == false) {
EstaNaEscada = false;
GetComponent<Rigidbody> ().useGravity = true;
GetComponent<Rigidbody> ().AddForce (Forca * transform.forward* Time.deltaTime, ForceMode.Impulse);
GetComponent<Rigidbody> ().AddForce (Forca * transform.up* Time.deltaTime, ForceMode.Impulse);
Debug.Log ("Adiciono forca");
EmCima = true;
}
if (Other.transform.position.y > transform.position.y && Other.gameObject.tag == "Escada" && EmCima == true) {
EmCima = false;
EstaNaEscada = true;
}
}
void OnTriggerExit (Collider Other) {
if (Other.gameObject.tag == "Escada") {
GetComponent<Rigidbody> ().useGravity = true;
EstaNaEscada = false;
}
}
}
rafaelllsd- ProgramadorMaster
- PONTOS : 5242
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Sistema de Escada Estilo FPS
interessante :D
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
rafaelllsd- ProgramadorMaster
- PONTOS : 5242
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Sistema de Escada Estilo FPS
tentei usar esse seu mano mais quando dou play começa a dar erro e mesmo assim não sobe a escada
UnassignedReferenceException: The variable Camera of Escada has not been assigned.
You probably need to assign the Camera variable of the Escada script in the inspector.
Escada.Update () (at Assets/scripts/Escada.cs:15)
UnassignedReferenceException: The variable Camera of Escada has not been assigned.
You probably need to assign the Camera variable of the Escada script in the inspector.
Escada.Update () (at Assets/scripts/Escada.cs:15)
edumoran- Membro
- PONTOS : 2944
REPUTAÇÃO : 0
Idade : 29
Respeito as regras :
Re: [TUTORIAL] Sistema de Escada Estilo FPS
Você não está linkando as coisas nas variáveis que o script tem.
Re: [TUTORIAL] Sistema de Escada Estilo FPS
Mano da pra fazer diversas coisas com esse script por exemplo um trampolin pra piscina ou uma catapulta humana haha
Unidade3d5- Avançado
- PONTOS : 3030
REPUTAÇÃO : 28
Respeito as regras :
Re: [TUTORIAL] Sistema de Escada Estilo FPS
Faz muito tempo que fiz, talvez até faço outro sistema mais completo mais pra frente.
rafaelllsd- ProgramadorMaster
- PONTOS : 5242
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Sistema de Escada Estilo FPS
PARABÉNS MANIN! MUITO TOP! VAI AJUDAR MUITAS PESSOAS!rafaelllsd escreveu:Olá pessoal, fiz um sistema de escada estilo FPS, quando olha para cima e anda ele sobe, e quando olha para baixo e anda desce. Para funcionar o objeto que será sua escada terá que ter a tag "Escada" e com a opção Trigger marcada. O Player tem que ter um Rigidbody. Seu script deve ter Nome "Escada".(Com ajuda do marcos)
- Código:
using UnityEngine;
using System.Collections;
public class Escada : MonoBehaviour {
public Camera Camera;
public float Velocidade;
public float Forca;
private bool EstaNaEscada;
private bool EmCima;
void Start () {
}
void Update () {
if (Camera.transform.rotation.eulerAngles.x > 270 && Camera.transform.rotation.eulerAngles.x < 360 && Input.GetKey (KeyCode.W) && EstaNaEscada == true) {
transform.Translate (0, Velocidade * Time.deltaTime, 0);
//Vai para Cima
}
if (Camera.transform.rotation.eulerAngles.x > 0 && Camera.transform.rotation.eulerAngles.x < 90 && Input.GetKey (KeyCode.W) && EstaNaEscada == true) {
transform.Translate (0, -Velocidade * Time.deltaTime, 0);
//Vai para Baixo
}
}
void OnTriggerEnter (Collider Other) {
if (Other.gameObject.tag == "Escada") {
GetComponent<Rigidbody> ().useGravity = false;
EstaNaEscada = true;
}
if (Other.transform.position.y < transform.position.y && EmCima == false) {
EstaNaEscada = false;
GetComponent<Rigidbody> ().useGravity = true;
GetComponent<Rigidbody> ().AddForce (Forca * transform.forward* Time.deltaTime, ForceMode.Impulse);
GetComponent<Rigidbody> ().AddForce (Forca * transform.up* Time.deltaTime, ForceMode.Impulse);
Debug.Log ("Adiciono forca");
EmCima = true;
}
if (Other.transform.position.y > transform.position.y && Other.gameObject.tag == "Escada" && EmCima == true) {
EmCima = false;
EstaNaEscada = true;
}
}
void OnTriggerExit (Collider Other) {
if (Other.gameObject.tag == "Escada") {
GetComponent<Rigidbody> ().useGravity = true;
EstaNaEscada = false;
}
}
}
Gabriel César O- Profissional
- PONTOS : 3986
REPUTAÇÃO : 217
Idade : 23
Áreas de atuação : (ESTUDANDO SEGUNDO GRAU), (FUÇANDO NO UNITY)){
Respeito as regras :
Re: [TUTORIAL] Sistema de Escada Estilo FPS
Nessa parte:
Não seria melhor usar?
* Input.GetAxis("Vertical") > 0.0f - Verifica se o jogador está andando para frente.
* Input.GetAxisRaw("Mouse Y") - retorna o valor do Eixo Y do Mouse, em formato -1, 0 ou 1.
* Acredito que faça a mesma função de forma simplificada, não cheguei a testar..
- Código:
if (Camera.transform.rotation.eulerAngles.x > 270 && Camera.transform.rotation.eulerAngles.x < 360 && Input.GetKey (KeyCode.W) && EstaNaEscada == true) {
transform.Translate (0, Velocidade * Time.deltaTime, 0);
}
if (Camera.transform.rotation.eulerAngles.x > 0 && Camera.transform.rotation.eulerAngles.x < 90 && Input.GetKey (KeyCode.W) && EstaNaEscada == true) {
transform.Translate (0, -Velocidade * Time.deltaTime, 0);
}
Não seria melhor usar?
- Código:
if(Input.GetAxis("Vertical") > 0.0f && EstaNaEscada){
transform.Translate (0.0f, (Velocidade * Input.GetAxisRaw("Mouse Y") * Time.deltaTime), 0.0f);
}
* Input.GetAxis("Vertical") > 0.0f - Verifica se o jogador está andando para frente.
* Input.GetAxisRaw("Mouse Y") - retorna o valor do Eixo Y do Mouse, em formato -1, 0 ou 1.
* Acredito que faça a mesma função de forma simplificada, não cheguei a testar..
LeonSK- Iniciante
- PONTOS : 2801
REPUTAÇÃO : 9
Idade : 26
Respeito as regras :
Re: [TUTORIAL] Sistema de Escada Estilo FPS
Como você quiser mano, a final faz muito tempo que fiz este script hoje em dia faria algumas coisas diferentes.LeonSK escreveu:Nessa parte:
- Código:
if (Camera.transform.rotation.eulerAngles.x > 270 && Camera.transform.rotation.eulerAngles.x < 360 && Input.GetKey (KeyCode.W) && EstaNaEscada == true) {
transform.Translate (0, Velocidade * Time.deltaTime, 0);
}
if (Camera.transform.rotation.eulerAngles.x > 0 && Camera.transform.rotation.eulerAngles.x < 90 && Input.GetKey (KeyCode.W) && EstaNaEscada == true) {
transform.Translate (0, -Velocidade * Time.deltaTime, 0);
}
Não seria melhor usar?
- Código:
if(Input.GetAxis("Vertical") > 0.0f && EstaNaEscada){
transform.Translate (0.0f, (Velocidade * Input.GetAxisRaw("Mouse Y") * Time.deltaTime), 0.0f);
}
* Input.GetAxis("Vertical") > 0.0f - Verifica se o jogador está andando para frente.
* Input.GetAxisRaw("Mouse Y") - retorna o valor do Eixo Y do Mouse, em formato -1, 0 ou 1.
* Acredito que faça a mesma função de forma simplificada, não cheguei a testar..
rafaelllsd- ProgramadorMaster
- PONTOS : 5242
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Sistema de Escada Estilo FPS
O script tem que ficar na câmera do FPS ou na escada? Por que eu coloquei na escada mas não aconteceu nada!!
Edivandro2706- Avançado
- PONTOS : 2089
REPUTAÇÃO : 4
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] Unity 5 - Sistema básico de jogo estilo ANGRY BIRDS
» [TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
» Sistema de RPG estilo Runescape.
» SISTEMA DE FACA ESTILO CS GO!
» Sistema de construção estilo habbo
» [TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
» Sistema de RPG estilo Runescape.
» SISTEMA DE FACA ESTILO CS GO!
» Sistema de construção estilo habbo
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos