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 Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Sistema de frio??
[TUTORIAL] Como fazer um TELEPORTE
Linkar Meshes das Rodas!
[TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
Flying Bird - PlayStore
(pedido) script para ativar física
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Compilar para android?
[TUTORIAL] Trocar a textura de um objeto pelas texturas de uma lista ( array ) seguindo a ordem da mesma.
MouseOver alterar de cores solidas para texturas alterar script
Como tiro a tela de seleção de resolução que aparece quando abro o jogo?
VENHAM CONTEMPLAR CUBOID! E entrem para a equipe!
chamare indice de uma List<> em outro script
Unity Assets Duvida
pessoal prefab para colider ou um raycast
[RESOLVIDO] Help. texto através dos objetos unity
[TUTORIAL] C# .NET | Instalar IDE para compilar c# para outras plataformas
Mudar Cor do Veiculo!
[RESOLVIDO]tirar vida do inimigo com click do mause
Baixos Brasil - Jogo de Carro Brasileiro!
[TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Por que os modelos que importo para o unity desaparecem?
Falha de Segurança na Unity
[TUTORIAL] Gerar números aleatórios SEM REPETIR (método com lista)
Cuboid 0.8, divulguem por favor
Tutorial: jogo estilo minecraft
Meu Jogo em desenvolvimento
Verificar texto De um Input Field
Como Separar Variaveis ?
Duvida sobre script
Search the Rats update 1.2
Como colocar o um CORPO funcional no FPS
Erro unity
Chamando animação por script
Quais melhores estratégias para divulgação de um jogo indie?
Como fazer objeto voltar a posição inicial? só que ele estará "em movimento"
Button Facebook Mobile!
Lancei um jogo na Play Store - Tic Tac ToeSP.
[TUTORIAL] Unity 5 - Sistema Completo de PORTAS E CHAVES
10 ASSETS GRATUITOS PARA UNITY 5
Script Shader
[DEVLOG] Projeto - Girl Blade (download Pré-Alpha)
Detectar se uma variável mudou e a quanto tempo ela mudou
Como posso criar um inputfield alfabtical alguem sabe?
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
ativar animação ao apertar botão (android)
Ai Enemy Inimigo Parando do nada
Duvida Extranhicima
gameobject transparente
[TUTORIAL] Tutorial Unity 3D Movimentação de Personagem com Botões UI
Menu de Construções estilo jogo "Banished"
Instanciar
-[COMO IMPLEMENTO UMA ARRAY NESTE SCRIPT?]-
[RESOLVIDO] Inteligência Artificial (básica) - interação Rigidbody2D Collision
Sistema de Futebol(Chutar bola e carrega-la até o gol)
Jogo De Corrida Infinita (2D)[Mobile]
[TUTORIAL] Inimigo seguir e atacar Player ao encostar
Jogo crashando depois da build
[TUTORIAL] Adicionar força a um Rigidbody na direção onde o mouse está
Duvida com Script VIDA
Iniciar em Unity
Escolhendo cores com scroll "mouse"
[RESOLVIDO] Erro com Audio Source ???
Partindo Para Faculdade!
[DÚVIDA] COMO FAZER UM "TEXT" APARECER SÓ UMA VEZ QUANDO O GAME INICIAR?
Simple Touch Camera Script
Duvida sobre iluminação
Duplo personagem
Erro
Dúvida sobre Estado inicial
Jogo de Pesca (Física da Linha)
Water
[RESOLVIDO] ERRO SUN SHAFTS (script nao aparece)
Animações do Player. Como faço????
MAGIA SEGUIR ALVO COM TAG APOS SER INSTANCIADA
Props Animations Asset
Formação de equipe para talvez um jogo Unturned+Battlegrounds - Unity c#
[DÚVIDA] FAZER JOGO ESTILO O ARROW.IO
[RESOLVIDO] Opções no menu?
[RESOLVIDO] Alguém poderia me ajudar a diminuir esse script?
Como fazer para o personagem ao sairdas delimitações da tela apareca no lado oposto?
Ajuda com script pra box collider
Sistema de combate estilo Runescape
[Gerenciador de fase aleatório]
Criar Rastro no personagem 2D estilo castlevania symphony of the night.
Qual unity usar?
[____AJUDE A TORNAR ESTE ASSET DE ANDROID GRATUITO!____]
Mensagem aparecer somente uma Vez!
Unity Remote na Unity 2017!
Como fazer duas cameras aparecerem?
como fazer uma fisica desse jeito?
[TUTORIAL] Mostrar Data e Hora atual do Computador em um texto
[TUTORIAL] RECOIL OU ANIMAÇÃO DE TIRO
Boas ideias, histórias... nem tanto: quem quer um roteirista?
IEnumerator Unity 2017
Instanciar Objeto Dentro De Outro
Help me, Notas no jogo
Dúvida no blender
Dicas para criação de cenario de um jogo hack and slash estilo god of war
Hoje à(s) 1:37 am
Hoje à(s) 12:37 am
Hoje à(s) 12:32 am
Hoje à(s) 12:25 am
Ontem à(s) 10:48 pm
Ontem à(s) 10:32 pm
Ontem à(s) 10:29 pm
Ontem à(s) 8:47 pm
Ontem à(s) 8:20 pm
Ontem à(s) 8:09 pm
Ontem à(s) 7:56 pm
Ontem à(s) 7:29 pm
Ontem à(s) 7:22 pm
Ontem à(s) 6:00 pm
Ontem à(s) 4:31 pm
Ontem à(s) 2:54 pm
Ontem à(s) 2:51 pm
Ontem à(s) 1:52 pm
Ontem à(s) 12:40 pm
Ontem à(s) 11:40 am
Ontem à(s) 11:11 am
Ontem à(s) 12:31 am
Ontem à(s) 12:22 am
Ontem à(s) 12:17 am
Ontem à(s) 12:17 am
Sab Ago 19, 2017 11:44 pm
Sab Ago 19, 2017 8:55 pm
Sab Ago 19, 2017 8:46 pm
Sab Ago 19, 2017 8:35 pm
Sab Ago 19, 2017 7:40 pm
Sab Ago 19, 2017 5:14 pm
Sab Ago 19, 2017 4:39 pm
Sab Ago 19, 2017 4:17 pm
Sab Ago 19, 2017 3:47 pm
Sab Ago 19, 2017 1:28 pm
Sab Ago 19, 2017 10:33 am
Sab Ago 19, 2017 10:25 am
Sab Ago 19, 2017 5:53 am
Sex Ago 18, 2017 10:20 pm
Sex Ago 18, 2017 10:00 pm
Sex Ago 18, 2017 9:28 pm
Sex Ago 18, 2017 8:39 pm
Sex Ago 18, 2017 6:39 pm
Sex Ago 18, 2017 3:01 pm
Sex Ago 18, 2017 9:51 am
Sex Ago 18, 2017 6:01 am
Sex Ago 18, 2017 12:04 am
Qui Ago 17, 2017 10:22 pm
Qui Ago 17, 2017 9:55 pm
Qui Ago 17, 2017 9:48 pm
Qui Ago 17, 2017 9:42 pm
Qui Ago 17, 2017 4:22 pm
Qui Ago 17, 2017 3:38 pm
Qui Ago 17, 2017 2:54 pm
Qui Ago 17, 2017 2:35 pm
Qui Ago 17, 2017 1:14 pm
Qui Ago 17, 2017 12:51 pm
Qui Ago 17, 2017 12:48 pm
Qui Ago 17, 2017 11:47 am
Qui Ago 17, 2017 11:09 am
Qui Ago 17, 2017 7:46 am
Qua Ago 16, 2017 10:19 pm
Qua Ago 16, 2017 9:55 pm
Qua Ago 16, 2017 9:10 pm
Qua Ago 16, 2017 9:03 pm
Qua Ago 16, 2017 8:01 pm
Qua Ago 16, 2017 1:17 pm
Qua Ago 16, 2017 11:49 am
Qua Ago 16, 2017 8:01 am
Ter Ago 15, 2017 7:29 pm
Ter Ago 15, 2017 5:06 pm
Ter Ago 15, 2017 5:06 pm
Ter Ago 15, 2017 1:47 pm
Ter Ago 15, 2017 11:52 am
Ter Ago 15, 2017 6:21 am
Ter Ago 15, 2017 6:10 am
Seg Ago 14, 2017 11:28 pm
Seg Ago 14, 2017 11:04 pm
Seg Ago 14, 2017 10:06 pm
Seg Ago 14, 2017 7:19 pm
Seg Ago 14, 2017 6:18 pm
Seg Ago 14, 2017 5:55 pm
Seg Ago 14, 2017 5:52 pm
Seg Ago 14, 2017 5:37 pm
Seg Ago 14, 2017 5:31 pm
Seg Ago 14, 2017 5:27 pm
Seg Ago 14, 2017 5:26 pm
Seg Ago 14, 2017 5:23 pm
Seg Ago 14, 2017 5:21 pm
Seg Ago 14, 2017 5:17 pm
Seg Ago 14, 2017 5:12 pm
Seg Ago 14, 2017 3:36 pm
Seg Ago 14, 2017 1:38 pm
Seg Ago 14, 2017 11:06 am
Seg Ago 14, 2017 9:46 am
Seg Ago 14, 2017 3:22 am
Seg Ago 14, 2017 1:06 am
Dom Ago 13, 2017 9:14 pm
Dom Ago 13, 2017 6:15 pm
MRX
MarcosSchultz
Duarte
marconi
Gabriel César O
zZAndersonZz
zZAndersonZz
Callyde Jr
SERGIOCS
Madness
Zecandy
cody0033
Valakinhas
ManoTrevor
Madness
BRGC
PauloFR
PauloFR
PauloFR
Duarte
tom ramber
cody0033
NyanHeavyBR
rafaelllsd
cody0033
cody0033
BRGC
Manawydan
ManoTrevor
arnaldojunior
mbppedro
Heimdall
Eduardoro39
BRGC
Strikegames
dstaroski
dstaroski
Strikegames
zOverLexYT
Bruno
michelly
dstaroski
Dom3000
MiguelLuiz
dstaroski
zZAndersonZz
Jhin
Dom3000
juliano001
deikson
MasterWizzard
Duarte
MrTFGamer1
MatheusNani
deikson
HeF Soft
getrudes12@gmail.com
BloodyBS
deikson
Bruno
dstaroski
SERGIOCS
Vinicius F.
Duarte
Gabriel César O
Henrique0102
Zecandy
Callyde Jr
dstaroski
ffabim
AndyShow
Phph09
glauco
Bruno
Callyde Jr
Callyde Jr
Bruno11playerG
Gabriel César O
cody0033
Unidade3d5
Pancinha20
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MrTFGamer1
Gabriel César O
Phph09
Weverton Borges da Silva
MarckosPG
Vinicius F.
Psyvamp
joabr

Ajuda com interpretação de Script

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido Ajuda com interpretação de Script

Mensagem por George Lucas Vieira em Sab Set 24, 2016 1:22 am

Olá pessoal, tranquilo?
Gente, eu tô estudando novas formas de fazer uma boa movimentação no Unity baseado em física.
Fuçando na internet, encontrei este belo script (eu modifiquei ele um pouquinho)

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

[RequireComponent (typeof (Rigidbody))]
[RequireComponent (typeof (CapsuleCollider))]

public class NewBehaviourScript : MonoBehaviour {

 public float speed = 10.0f;
 public float gravity = 10.0f;
 public float maxVelocityChange = 10.0f;
 public bool canJump = true;
 public float jumpHeight = 2.0f;
 private bool grounded = false;

 private Rigidbody playerRb;

 void Awake () {
 playerRb = GetComponent<Rigidbody>();
 playerRb.freezeRotation = true;
 playerRb.useGravity = false;
 }

 void FixedUpdate () {
 if (grounded) {
 // Calculate how fast we should be moving
 Vector3 targetVelocity = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")) * speed;

 // Apply a force that attempts to reach our target velocity
 Vector3 velocity = playerRb.velocity;
 Vector3 velocityChange = (targetVelocity - velocity);
 velocityChange.x = Mathf.Clamp(velocityChange.x, -maxVelocityChange, maxVelocityChange);
 velocityChange.y = 0;
 playerRb.AddForce(velocityChange, ForceMode.VelocityChange);

 // Jump
 if (canJump && Input.GetButton("Jump")) {
 playerRb.velocity = new Vector3(velocity.x, CalculateJumpVerticalSpeed(), velocity.z);
 }
 }

 // We apply gravity manually for more tuning control
 playerRb.AddForce(new Vector3 (0, -gravity * playerRb.mass, 0));

 grounded = false;
 }

 void OnCollisionStay () {
 grounded = true;    
 }

 float CalculateJumpVerticalSpeed () {
 // From the jump height and gravity we deduce the upwards speed
 // for the character to reach at the apex.
 return Mathf.Sqrt(2 * jumpHeight * gravity);
 }
}




Eu entendi praticamente tudo do script, menos uma parte, que talvez seja a mais importante. O script está funcionando belezinha, mas eu não entendi essa linha aqui:


Código:
Vector3 velocityChange = (targetVelocity - velocity);



Pessoal, porque ele está subtraindo a velocidade do personagem? Eu tentei isolar essa linha de várias formas, mas parece que ela que controla todo o esquema de velocidade do personagem, então não tem como remover.
Enfim, porque ele está pegando o valor que eu apertei(Input.GetAxis) e subtraindo a velocidade? Gostaria da ajuda de vocês para me ajudar. Até mais, abraços.



Última edição por George Lucas Vieira em Sab Set 24, 2016 10:25 am, editado 1 vez(es)
avatar
George Lucas Vieira
Moderador

Masculino PONTOS : 758
REPUTAÇÃO : 125
Idade : 14
Áreas de atuação : Programação, Modelagem e Animação.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: Ajuda com interpretação de Script

Mensagem por MarcosSchultz em Sab Set 24, 2016 1:58 am

Fiz uma análise corrida do script com os seguintes pontos:

primeiramente, coloquei isto no awake:

Código:
Time.timeScale = 0.05f;

Isto permite analisar o que acontece bem detalhadamente... Depois, criei um Debug e coloquei como última coisa da void FixedUpdate, que é este debug aqui:

Código:
Debug.Log("targVel: " + targetVelocity + "        velocity: " + velocity + "        subtrair: " + (targetVelocity - velocity));



Com este debug, podemos perceber a targetVelocity, logo após a velocity e por último, o vetor de subtração dos 2.

Analizando a targetVelocity, já podemos perceber que o vetor não vai somente de 0 a 1, conforme os inputs horizontais e verticais, pois você está multiplicando o input pela variável "speed", conforme esta linha mostra:

Código:
Vector3 targetVelocity = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")) * speed;


Com esta linha, pode-se concluir que esta seria a "velocidade desejada" a se alcançar, pois você recebe o input, e multiplica pela velocidade que quer tentar alcançar.

O próximo debug que você recebe é o "velocity", que informa qual a velocidade atual do seu jogador...

O terceiro debug, informa qual a diferença entre a velocidade que você almeja alcançar e a velocidade real em que você está andando...


Supondo que você está pressionando A, então o seu input vai ser (-1,0,0). Agora, veja que a sua "speed" é 10, então esse vetor será multiplicado por 10, transformando o input real em (-10, 0, 0). 

Este vetor é a velocidade que você está tentando alcançar, e você o chama de "targetVelocity"

Na próxima linha, apenas pegamos a velocidade atual do rigidbody:

Código:
Vector3 velocity = playerRb.velocity;


Neste momento, a "targetVelocity" estará debugando "(-10, 0, 0)", pois é o input multiplicado pela speed.
Enquanto isso, a "velocity" estará debugando algo parecido a "(-9.9, 0,0 )"

Isto acontece por que a física gera atrito, e tende a alentar o colisor, fazendo o player "freiar"

Tendo tudo isto dito, a próxima coisa que você faz, é subtrair a velocidade que você está tentando alcançar, da velocidade real do seu player, e isto você chama de "velocityChange".

Então, se o vetor alvo é (-10, 0, 0) e o vetor real é (-9.9, 0, 0), o resultado da subtração será (-0.1, 0, 0)

Depois que isto é feito, você aplica um "clamp" no vetor, para limitar o máximo valor que este vetor poderá ter... mas estranhamente, você só faz isto no eixo X... o eixo Y você deixa como 0, pois não deve ser influenciado, e o eixo Z, não entendi por que não recebe o clamp, mas enfim, o clamp pouco interfere na análise final...

Depois que você "limita" este vetor, você faz um AddForce na direção desse vetor de subtração, nesta linha:

Código:
playerRb.AddForce(velocityChange, ForceMode.VelocityChange);

Pelo que eu entendi, isto é feito apenas para compensar o atrito que o rigidbody sofre, para compensar a frenagem natural que o objeto tem, minimizando a diferença entre a velocidade que você quer alcançar e a velocidade real do corpo...
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9508
REPUTAÇÃO : 1608
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

Resolvido Re: Ajuda com interpretação de Script

Mensagem por George Lucas Vieira em Sab Set 24, 2016 10:24 am

Você é o cara Marcos  Cool
Bem, eu não apliquei o Clamp no eixo Z pq é um jogo 2.5D...
Vlw ae!
avatar
George Lucas Vieira
Moderador

Masculino PONTOS : 758
REPUTAÇÃO : 125
Idade : 14
Áreas de atuação : Programação, Modelagem e Animação.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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