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:
alguem tem um modelo 3d de arvore realista
[Tutorial] Como programar um carro/moto voador(a) dirigivel pelo player estilo Jogos Digitais Da Lego.
Motivacional
Aumentar Peso
[Duvida] Alguem sabe oq eu tenho que acrescentar nesse script?
[Resolvido] - Rotacionar a camera com touch screen
Como por limite na rotação da camera
-[ALGUEM SABE ALGUM ASSETS OU TENHA ALGUMA PASTA QUE TENHA AUDIOS CAR?]-
[TUTORIAL] Criar um Array ( lista de objetos )
Criar jogo estilo clash of clans
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[Ajuda "Rec" na unity]
Mirar e atirar na posiçao do mouse?
[TUTORIAL] Unity 5 - Wheel Collider, veículos, suspensão realista.
alguem sabe porque as arvores nao estao colidindo
Galera?, Vamos Trocar umas Musicas Favoritas?
character collide
Menu principal
To string return
alguem sabe como eu posso colocar um joystick para mover a camera
[TUTORIAL] Sistema COMPLETO de câmeras
Script de seleção de player deu erro no UI
DirectX ou Vulkan?
apagar posicoes ao morrer
[____TÓPICO LIVRE____] FALE O QUE QUISER
[TUTORIAL] Sistema de escolha de personagens
Enabling or adding a Renderer during rendering; this is not allowed
Check-in no facebook dentro da Unity
CÂMERA ORBITAL PARA ANDROID
problema para acessar arquivos da pasta StreamingAssets
RESTAURAR A POSIÇÃO DO CARRO
-[COMO FAÇO O TOUCH PAD DO UNITY MOVER MINHA CAMERA?]-
Receber o transform.position de um objeto dentro de Array.
[Duvida]Como Travar totalmente as rodas no wheel Collider
(Pedido) Presciso de Um Script q quando eu Chegar em Um Local a camera alterar !
[2d] Pistola Usp-s (CSGO) vetorizada em 2d
NavMeshAgent não aparece no script
[____ADMINISTRADOR OFFLINE____]
[DÚVIDA] ANIMAÇÕES DA ARMA
[Parceria] Parceria com meu fórum
Vídeo - RPG - DEMO de uma parte do mapa + Vegetação
FPS MULTIPLAYER (PHOTON) : Salas não aparecem para os outros jogadores.
Como usar o GetButton(¨Vertical¨) e o GetButton(¨Horizontal¨)
Virtual joystick controle para movimentar personagem
Atualização 0.0.1.0 Do meu rpg cartoon . Deem suas opnioes
[_____CRONOGRAMA (ASSET DE VEÍCULOS)_____]
TROCAR RODAS DO CARRO NA OFICINA
[Em teste] Jogo Fps sem nome :/
Como Posso Fazer isto ? Marco Uma Toggle no Canvas e um Mesh Seja ativado ?
[Duvida] Criei um script para rotacionar e andar e deu ruin.
Duvida personagem ao passar certo ponto quero q um objeto suma e outro apareça.
[Duvida] Rotate e RigidBody e Carro Andando de Lado.
Deixar cenário 2d Totalmente escuro
[TUTORIAL] Multiplicador de inimigos
MOVIMENTAÇÃO DE TANK DE GUERRA UNITY 3D
Quais são as ferramentas que as grandes empresas usam para fazer o mult-player na unity?
[RESOLVIDO] Ponteiro do mouse
[TUTORIAL] Script de Spawn Aleatório
[TUTORIAL] Salvar vida do player por tempo
programa que cria automaticamente Mapas com vegetacao
O que está errado neste script ?
[Modelo]Deem uma julgada ae garotada!
Reviver o Car Town EX
[Votação] Mira jogo fps ;-; [Terminada]
alguem sabe por que ta acontecendo isso com a minha unity
[RESOLVIDO] Como usar LookAt em apenas um eixo?
[AWP CS-GO] A PEDIDO DE UM Fã MEU
Mecanismo dos jogos da LEGO (troca de personagens)
[TUTORIAL] Pegar item no chao
[Duvida]Como fazer um objeto Filho de outro
[Duvidas Com Arrays]
Como mudar o prefab do network por meio de uma UI
Problema em criar tiros múltiplos
[TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Mira de Third Person Shooter
[TUTORIAL] AI simples inimiga
Como fazer o personagem virar a cabeça junto com a camera, em jogo de terceira pessoa?
[Ajuda] Third Person subir degrau
Script para sistema de genética
Adicionar arma em uma animação do Mixamo
Meu rpg Lendarios
[Duvida]Centralizar Cursor
[TUTORIAL] Sistema de trem
[Modelo 3d] Machadinha
[TUTORIAL] Importando animação do mixamo para Unity3d.
Dúvidas na estrutura de puzzle.
[TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Alguem que Conhece boas musicas para um game de suspense
É possivel aumentar a renderização de distancia da câmera?
Trocar Position Por Rotation
[RESOLVIDO] Script mira mouse?
[Socorro] Deu Um Erro Aqui e Eu Acho q Fiz Tudo Certo.
[Asset] Efeitos Realistas Pack V3 + Download
[Duvida]Como pegar todos os arquivos de uma pasta.
[TUTORIAL] Passar Valores entre cenas
Modelo HK SL8 (arma)
Compilar para Android
Problema com script para joystick virtual
Mudar de cana ao clicar numa tecla
Hoje à(s) 3:50 am
Hoje à(s) 2:06 am
Ontem à(s) 10:25 pm
Ontem à(s) 9:59 pm
Ontem à(s) 9:44 pm
Ontem à(s) 8:06 pm
Ontem à(s) 7:48 pm
Ontem à(s) 5:21 pm
Ontem à(s) 4:31 pm
Ontem à(s) 3:32 pm
Ontem à(s) 3:29 pm
Ontem à(s) 3:22 pm
Ontem à(s) 3:09 pm
Ontem à(s) 3:08 pm
Ontem à(s) 2:20 pm
Ontem à(s) 1:58 pm
Ontem à(s) 1:49 pm
Ontem à(s) 1:45 pm
Ontem à(s) 1:42 pm
Ontem à(s) 1:39 pm
Ontem à(s) 1:35 pm
Ontem à(s) 1:31 pm
Ontem à(s) 1:27 pm
Ontem à(s) 1:23 pm
Ontem à(s) 1:20 pm
Ontem à(s) 1:18 pm
Ontem à(s) 1:10 pm
Ontem à(s) 1:03 pm
Ontem à(s) 12:54 pm
Ontem à(s) 12:51 pm
Ontem à(s) 12:49 pm
Ontem à(s) 12:47 pm
Ontem à(s) 12:24 pm
Ontem à(s) 12:09 pm
Ontem à(s) 10:41 am
Ontem à(s) 10:40 am
Ontem à(s) 7:42 am
Ontem à(s) 7:13 am
Ontem à(s) 6:05 am
Ontem à(s) 4:39 am
Ontem à(s) 3:57 am
Ontem à(s) 3:53 am
Ontem à(s) 3:49 am
Ontem à(s) 3:22 am
Ontem à(s) 3:15 am
Ontem à(s) 3:09 am
Qui Abr 27, 2017 10:19 pm
Qui Abr 27, 2017 10:03 pm
Qui Abr 27, 2017 9:58 pm
Qui Abr 27, 2017 9:21 pm
Qui Abr 27, 2017 8:45 pm
Qui Abr 27, 2017 7:42 pm
Qui Abr 27, 2017 1:20 pm
Qui Abr 27, 2017 12:06 pm
Qui Abr 27, 2017 12:02 pm
Qui Abr 27, 2017 10:14 am
Qui Abr 27, 2017 7:23 am
Qui Abr 27, 2017 7:21 am
Qui Abr 27, 2017 5:51 am
Qui Abr 27, 2017 12:24 am
Qua Abr 26, 2017 10:35 pm
Qua Abr 26, 2017 9:14 pm
Qua Abr 26, 2017 6:53 pm
Qua Abr 26, 2017 5:55 pm
Qua Abr 26, 2017 5:53 pm
Qua Abr 26, 2017 2:27 pm
Qua Abr 26, 2017 1:55 pm
Qua Abr 26, 2017 1:20 pm
Qua Abr 26, 2017 6:42 am
Ter Abr 25, 2017 9:57 pm
Ter Abr 25, 2017 9:55 pm
Ter Abr 25, 2017 9:33 pm
Ter Abr 25, 2017 8:29 pm
Ter Abr 25, 2017 1:55 pm
Ter Abr 25, 2017 12:26 pm
Ter Abr 25, 2017 9:53 am
Ter Abr 25, 2017 12:40 am
Seg Abr 24, 2017 9:55 pm
Seg Abr 24, 2017 8:29 pm
Seg Abr 24, 2017 8:04 pm
Seg Abr 24, 2017 4:44 pm
Seg Abr 24, 2017 4:22 pm
Seg Abr 24, 2017 12:51 pm
Seg Abr 24, 2017 9:52 am
Seg Abr 24, 2017 1:06 am
Dom Abr 23, 2017 10:09 pm
Dom Abr 23, 2017 10:09 pm
Dom Abr 23, 2017 9:21 pm
Dom Abr 23, 2017 8:56 pm
Dom Abr 23, 2017 8:49 pm
Dom Abr 23, 2017 8:39 pm
Dom Abr 23, 2017 6:19 pm
Dom Abr 23, 2017 6:10 pm
Dom Abr 23, 2017 5:12 pm
Dom Abr 23, 2017 3:52 pm
Dom Abr 23, 2017 2:25 pm
Dom Abr 23, 2017 2:23 pm
Dom Abr 23, 2017 12:06 pm
Dom Abr 23, 2017 10:54 am
Madness
PauloFR
MarcosSchultz
AndyShow
Matrirxp
marcos4503
John Rambo
MrTFGamer1
Édipo
Gabriel César O
Gabriel César O
wender
MarcosSchultz
MarcosSchultz
glauco
916anderson
MarcosSchultz
ffabim
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
zZAndersonZz
weslleyFx
IanLuan
IanLuan
Abilio M.S
dstaroski
Gabriel César O
LucasPettine
Gabriel César O
Gabriel César O
Gabriel César O
Gabriel César O
Gabriel César O
Gabriel César O
wender
PauloFR
PauloFR
DuViDoSo34
PauloFR
rafaelllsd
IanLuan
Callyde Jr
IanLuan
sabbath
GloryGames
GloryGames
Callyde Jr
artplayer
Lando
DuViDoSo34
thiagograssi
PauloFR
rafaelllsd
916anderson
DuViDoSo34
IanLuan
DuViDoSo34
John Rambo
John Rambo
thzin
JailtonUnity
GameS DoG
Callyde Jr
dstaroski
916anderson
Zecandy
DuViDoSo34
lelouchsdky
zZAndersonZz
DuViDoSo34
rafaelllsd
PauloFR
Hardencio
hbesm
cody0033
DuViDoSo34
Eric Vinicius
HeF Soft
Callyde Jr
DuViDoSo34
weslleyFx
Matrirxp
Callyde Jr
DuViDoSo34
Ále Kauvy
dstaroski
dstaroski

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 : 643
REPUTAÇÃO : 124
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 : 8486
REPUTAÇÃO : 1269
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 : 643
REPUTAÇÃO : 124
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