[TUTORIAL] Avião Script
+7
dstaroski
Mic4el
DuViDoSo
Weslley
zZAndersonZz
Gabriel César O
Matrirxp
11 participantes
Página 1 de 1
[TUTORIAL] Avião Script
Eae Galera.
Fiz essa script de um avião e decidi compartilhar com vocês.
Configuração:
Links:
https://docs.unity3d.com/ScriptReference/Vector3.Cross.html
https://docs.unity3d.com/ScriptReference/Vector3.html
https://docs.unity3d.com/ScriptReference/Rigidbody.html
https://docs.unity3d.com/ScriptReference/Rigidbody-drag.html
https://pt.wikipedia.org/wiki/Sustenta%C3%A7%C3%A3o_(aerodin%C3%A2mica)
https://pt.wikipedia.org/wiki/Arrasto
https://pt.wikipedia.org/wiki/Aerodin%C3%A2mica
Fiz essa script de um avião e decidi compartilhar com vocês.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AirCraft : MonoBehaviour {
//Velocidade
public float Speed;//Velocidade
public float MaxSpeed;//Velocidade Máxima
public float Acceleration;//Aceleração
//Sustentação
public float Lift;//Sustentação
Vector3 LiftDirection;//Direção da força de sustentação
public float PowerLift;//Sustentação Aplicada
//Arrasto
float ArrastoExtra;//Arrasto Adicional
float ArrastoOriginal;//Arrasto Inicial
public float Arrasto;//Arrasto Aplicado
public float AumentoArrasto = 0.001f;//Aumento de Arrasto
Rigidbody rb;
//Velocidade de Rotação
public float SpeedRotate;
//Teclas
bool Space;
bool Shift;
//Freio
public bool Break;
public float BreakEffect;//Efeito do Freio
// Use this for initialization
void Start () {
rb = gameObject.GetComponent<Rigidbody> ();//Pegar Rigidbody
ArrastoOriginal = rb.drag;//Pegar Arrasto Inicial
}
// Update is called once per frame
void Update () {
CalcularArrasto ();
LiftPower ();
if (Input.GetKeyDown (KeyCode.Space)) {
Space = true;
}
if (Input.GetKeyUp (KeyCode.Space)) {
Space = false;
}
if (Space == true) {
if (Speed < MaxSpeed) {
Speed += Acceleration;//Aumentar Velocidade
}
} else {
if (Speed > 1) {
Speed -= Acceleration;//Diminuir Velocidade
}
}
if (Input.GetKeyDown(KeyCode.W)) {
transform.Rotate (-SpeedRotate, 0, 0);//Girar para Cima
}
if (Input.GetKeyDown(KeyCode.S)) {
transform.Rotate (SpeedRotate, 0, 0);//Girar para Baixo
}
if (Input.GetKeyDown(KeyCode.A)) {
transform.Rotate (0, 0, SpeedRotate);//Girar para Esquerda
}
if (Input.GetKeyDown(KeyCode.D)) {
transform.Rotate (0, 0, -SpeedRotate);//Girar para Direita
}
if(Input.GetKeyDown(KeyCode.LeftShift)){
Shift = true;
}
if(Input.GetKeyUp(KeyCode.LeftShift)){
Shift = false;
}
if (Shift == true) {
Break = true;
} else {
Break = false;
}
rb.AddRelativeForce (Vector3.forward * Speed);//Adicionar Velocidade
}
private void CalcularArrasto(){ //Calcular Arrasto (Essa não é a equação original)
ArrastoExtra = rb.velocity.magnitude * AumentoArrasto; //Calcular o arrastoExtra
if(Break == true){ //Se "Break" for igual a true
Arrasto = (ArrastoOriginal + ArrastoExtra) * BreakEffect; //Calcular o arrasto com o efeito do freio("BreakEffect")
}else{ //Se "Break" for igual a false
Arrasto = ArrastoOriginal + ArrastoExtra; //Arrasto é igual a "ArrastoOriginal" + "ArrastoExtra"
}
rb.drag = Arrasto;//Adicionar Arrasto
}
private void LiftPower (){ //Calcular Sustentação
LiftDirection = Vector3.Cross (rb.velocity,transform.right).normalized;//Achar vetor de Sustentação
PowerLift = (Lift * (Speed * Speed)) / 2.4f;//Calcular Força de sustentação (Essa não é a equação original)
rb.AddForce (LiftDirection * PowerLift);//Adicionar Força de sustentação
}
}
Configuração:
Links:
https://docs.unity3d.com/ScriptReference/Vector3.Cross.html
https://docs.unity3d.com/ScriptReference/Vector3.html
https://docs.unity3d.com/ScriptReference/Rigidbody.html
https://docs.unity3d.com/ScriptReference/Rigidbody-drag.html
https://pt.wikipedia.org/wiki/Sustenta%C3%A7%C3%A3o_(aerodin%C3%A2mica)
https://pt.wikipedia.org/wiki/Arrasto
https://pt.wikipedia.org/wiki/Aerodin%C3%A2mica
Última edição por Matrirxp em Qua Fev 14, 2018 2:13 pm, editado 1 vez(es)
Re: [TUTORIAL] Avião Script
NOSSA MEN PARABÉNS! MUITO BOM!Matrirxp escreveu:Eae Galera.
Fiz essa script de um avião e decidi compartilhar com vocês.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AirCraft : MonoBehaviour {
//Velocidade
public float Speed;//Velocidade
public float MaxSpeed;//Velocidade Máxima
public float Acceleration;//Aceleração
//Sustentação
public float Lift;//Sustentação
Vector3 LiftDirection;//Direção da força de sustentação
public float PowerLift;//Sustentação Aplicada
//Arrasto
float ArrastoExtra;//Arrasto Adicional
float ArrastoOriginal;//Arrasto Inicial
public float Arrasto;//Arrasto Aplicado
public float AumentoArrasto = 0.001f;//Aumento de Arrasto
Rigidbody rb;
//Velocidade de Rotação
public float SpeedRotate;
//Teclas
bool Space;
bool Shift;
//Freio
public bool Break;
public float BreakEffect;//Efeito do Freio
// Use this for initialization
void Start () {
rb = gameObject.GetComponent<Rigidbody> ();//Pegar Rigidbody
ArrastoOriginal = rb.drag;//Pegar Arrasto Inicial
}
// Update is called once per frame
void Update () {
CalcularArrasto ();
LiftPower ();
if (Input.GetKeyDown (KeyCode.Space)) {
Space = true;
}
if (Input.GetKeyUp (KeyCode.Space)) {
Space = false;
}
if (Space == true) {
if (Speed < MaxSpeed) {
Speed += Acceleration;//Aumentar Velocidade
}
} else {
if (Speed > 1) {
Speed -= Acceleration;//Diminuir Velocidade
}
}
if (Input.GetKeyDown(KeyCode.W)) {
transform.Rotate (-SpeedRotate, 0, 0);//Girar para Cima
}
if (Input.GetKeyDown(KeyCode.S)) {
transform.Rotate (SpeedRotate, 0, 0);//Girar para Baixo
}
if (Input.GetKeyDown(KeyCode.A)) {
transform.Rotate (0, 0, SpeedRotate);//Girar para Esquerda
}
if (Input.GetKeyDown(KeyCode.D)) {
transform.Rotate (0, 0, -SpeedRotate);//Girar para Direita
}
if(Input.GetKeyDown(KeyCode.LeftShift)){
Shift = true;
}
if(Input.GetKeyUp(KeyCode.LeftShift)){
Shift = false;
}
if (Shift == true) {
Break = true;
} else {
Break = false;
}
rb.AddRelativeForce (Vector3.forward * Speed);//Adicionar Velocidade
}
private void CalcularArrasto(){ //Calcular Arrasto (Essa não é a equação original)
ArrastoExtra = rb.velocity.magnitude * AumentoArrasto; //Calcular o arrastoExtra
if(Break == true){ //Se "Break" for igual a true
Arrasto = (ArrastoOriginal + ArrastoExtra) * BreakEffect; //Calcular o arrasto com o efeito do freio("BreakEffect")
}else{ //Se "Break" for igual a false
Arrasto = ArrastoOriginal + ArrastoExtra; //Arrasto é igual a "ArrastoOriginal" + "ArrastoExtra"
}
rb.drag = Arrasto;//Adicionar Arrasto
}
private void LiftPower (){ //Calcular Sustentação
LiftDirection = Vector3.Cross (rb.velocity,transform.right).normalized;//Achar vetor de Sustentação
PowerLift = (Lift * (Speed * Speed)) / 2.4f;//Calcular Força de sustentação (Essa não é a equação original)
rb.AddForce (LiftDirection * PowerLift);//Adicionar Força de sustentação
}
}
Links:
https://docs.unity3d.com/ScriptReference/Vector3.Cross.html
https://docs.unity3d.com/ScriptReference/Vector3.html
https://docs.unity3d.com/ScriptReference/Rigidbody.html
https://docs.unity3d.com/ScriptReference/Rigidbody-drag.html
https://pt.wikipedia.org/wiki/Sustenta%C3%A7%C3%A3o_(aerodin%C3%A2mica)
https://pt.wikipedia.org/wiki/Arrasto
https://pt.wikipedia.org/wiki/Aerodin%C3%A2mica
Gabriel César O- Profissional
- PONTOS : 3987
REPUTAÇÃO : 217
Idade : 23
Áreas de atuação : (ESTUDANDO SEGUNDO GRAU), (FUÇANDO NO UNITY)){
Respeito as regras :
Re: [TUTORIAL] Avião Script
Belo tutorial Matrirxp , conteúdo com fácil descrição para quem tiver dificuldade e com referencia para unity =D
Weslley- Moderador
- PONTOS : 5728
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Mic4el- Modelador
- PONTOS : 3140
REPUTAÇÃO : 97
Idade : 25
Áreas de atuação : Modelagem,texturização e o básico de animações
Respeito as regras :
Re: [TUTORIAL] Avião Script
Qual configuração mais adequada para as variáveis. ...
tom ramber- Avançado
- PONTOS : 3141
REPUTAÇÃO : 12
Idade : 37
Áreas de atuação : Blender, Unity
Respeito as regras :
Re: [TUTORIAL] Avião Script
tom ramber escreveu:Qual configuração mais adequada para as variáveis. ...
Re: [TUTORIAL] Avião Script
use valores pequenos no liftMatrirxp escreveu:tom ramber escreveu:Qual configuração mais adequada para as variáveis. ...
Re: [TUTORIAL] Avião Script
Nossa, reviveu um tópico, valeu, eu só chegue aqui acho que no final de 2017 ou inicio de 2018, não me lembro. Obg. :D
NKKF- ProgramadorMaster
- PONTOS : 4819
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [TUTORIAL] Avião Script
Muito bom, parabéns!
ÁguaMineral- Avançado
- PONTOS : 2594
REPUTAÇÃO : 3
Áreas de atuação : Intermediário em Modelagem
Iniciante em C#
Iniciante em Texturização
Estudando Design
Respeito as regras :
Re: [TUTORIAL] Avião Script
cara dimais !!!! :bounce: vou fazer um joguinho de caça para eu brincar kkk
Tópicos semelhantes
» [TUTORIAL] Script de arma automatica
» [TUTORIAL] Script de um animal!!!
» [TUTORIAL] Script de Flicker
» [TUTORIAL] Script de Spawn Aleatório
» [TUTORIAL] Script de Contagem Regressiva
» [TUTORIAL] Script de um animal!!!
» [TUTORIAL] Script de Flicker
» [TUTORIAL] Script de Spawn Aleatório
» [TUTORIAL] Script de Contagem Regressiva
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos