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:
Ajuda Jogo de Luta 2D precisando de AI CPU inteligente
TEM COMO COLOCAR UM VIDEO NO CANVAS?
Como rodar uma animação feita em shape keys do blender na unity?
Erro no Script
Tela (Screen) Android e Joystick adaptável à tela !
COMO EXPORTAR MEU PROJETO E DAR CONTINUAÇÃO POR OUTRO COMPUTADOR ?
MEU JOGO ANDROID
Asset Sistema de rajada
Parentear Objetos por script C#
Preciso de Programador e Modelador para jogo de tiro futurista
BAIXE GRÁTIS MODELOS 3D (FUZIL FOTO REALÍSTICO - 22-06-2017)
(AVALIEM) Sistema de IA para pedestre e trafego e ROTAS COM RAIN
[Unity] - Criar botão em C#
[AVALIAÇÃO] AVALIEM MEU JOGO MOBILE
PHP e MYSQLI
Bugs da Unity
Meu Canva nao para de tremer o que fazer?
Duvidas multiplayer online em terceira pessoa
Defeito com colisao
Script de Mover - Estilo Subway Surfs
Sistema de Nevoa
Erro estranho Invalid AABB a
não esta salvando o score
Ajuda com scripts de inimigo e player'' interação de zumbi e player''
Mudar Gráfico
[TUTORIAL] Mover, Girar e lançar objetos com o mouse ( estilo Amnesia )
[TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera
ALGUEM SABE COMO POSSO DESATIVAR O LOOP DA ANIMAÇAO
[Resolvido] Relacionada a Objetos em Arrays.
Modelagem de personagens
Como sair desse loop?
Como instanciar muitos objetos?
[TUTORIAL] 43 ÓTIMAS DICAS DE OTIMIZAÇÃO PARA JOGOS MOBILE (Android)
[Game] World Adventure (Nova Beta)
[_____CRONOGRAMA DO CANAL_____]
[UPDATE DO MEU PROJETO] - Veja e avalie o sistema de combate do meu jogo!
Problema com Sprite
Sistema de Susto Cronometrado
[TUTORIAL] Camera de visão noturna (Night vision) na Unity 5
Script de Mover
[Duvida] ScrollBar
- -[ASSETS PARA GAMES]- -
[Votação] História futurista ou mais antiga ._.
[TUTORIAL] AI Enemy ( Jogos de terror )
-[ASSETS PARA GAMES/ALGUNS]-
esse e o meu jogo "a floresta" que estou fazendo VEJAM O VIDEO
Problema esquisito com botoes depois de fazer a build
[Duvida] Decrescer uma Array.
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Como mudar o sprite?
[TUTORIAL] Unity 5 - Wheel Collider, veículos, suspensão realista.
Glitch visual
Probleminha em um script que fiz
[TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Escolha de Controle para Android
Como instanciar na posição desejada (Canvas)?
[TUTORIAL] UNITY 5 - Efeito submerso (underwater effect), distorção da água e gotas na tela
Sistema de Missao e Recompensa!
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[Duvida] Como Deixar O Texto Mais Bonito.
Animação de inimigo não funciona
[Dica] Como converter JAVA SCRIPT para C#
Projeto, Recrutamento! Jogo de terror 3D " Sem Medo"
[Desabilitar gravidade de um Character Controller]
Primeira GamePlay do meu jogo de fps multiplayer (em desenvolvimento)
Cenários Espaciais vs Escala
Jogo para Android para testar
Atualizado (The Pyramid 1.1.1)
Fighters for honor(Jogo da segunda guerra mundial)
Ajuda Erro ao compilar Android
Script não compila com monodevelop
Imagem personalizada no menu de configuração [PRINT]
Demo Terror
[RESOLVIDO] Problema depois de passar para nivel 3
efeitos sonoros
[Modelo 3D - Avaliação] Sniper M700 LowPoly
PHP numeros inteiro?
CONTRATANDO ANIMADOR
Asset para game de terror
[Modelo 3D] AK-47
[DEVLOG - 17-06-17] Projeto - Girl Blade
jogo quiz 2D unity 5...
Ajuda com Script
Duvida com o Pack UFPS
[PEDIDO] Gostaria que avaliaçe meu Cenario LOW POLY
(Resolvido)Monodevelop
Como se faz uma copia de uma cena?
[Equipe] Equipe para jogo tower defense low poly
Como faço um sistema de sanidade (estilo amnesia)
[Ajuda] Variavel não esta recebendo o valor do outro script
Material Editor
Como sera que fizeram o sistema de hackear do watch dogs?
Como desativa um script dentro de outro?
Mudar material via script
[Update do meu projeto] - Avalie o novo ícone do meu jogo!
-[COMO RESOLVO ESTE ERRO DO SCRIPT??]-
[OUTRO] Atualização do jogo New day on the zombies world 0.9.0
ATUALIZAÇÃO - Joguem meu jogo [Aircraft - Space Guardian] Please !!
Como posso fazer um IF do termino de uma animação?
Hoje à(s) 5:20 pm
Hoje à(s) 5:16 pm
Hoje à(s) 2:31 pm
Hoje à(s) 2:28 pm
Hoje à(s) 1:56 pm
Hoje à(s) 12:34 pm
Hoje à(s) 12:33 pm
Hoje à(s) 12:30 pm
Hoje à(s) 12:20 pm
Hoje à(s) 12:10 pm
Hoje à(s) 11:08 am
Hoje à(s) 11:06 am
Hoje à(s) 9:37 am
Hoje à(s) 8:01 am
Ontem à(s) 10:49 pm
Ontem à(s) 10:19 pm
Ontem à(s) 10:08 pm
Ontem à(s) 9:31 pm
Ontem à(s) 8:39 pm
Ontem à(s) 8:39 pm
Ontem à(s) 8:34 pm
Ontem à(s) 8:34 pm
Ontem à(s) 8:08 pm
Ontem à(s) 7:35 pm
Ontem à(s) 6:12 pm
Ontem à(s) 4:31 pm
Ontem à(s) 2:12 pm
Ontem à(s) 2:06 pm
Ontem à(s) 1:48 pm
Ontem à(s) 11:52 am
Ontem à(s) 12:25 am
Ter Jun 20, 2017 11:40 pm
Ter Jun 20, 2017 11:19 pm
Ter Jun 20, 2017 11:14 pm
Ter Jun 20, 2017 10:59 pm
Ter Jun 20, 2017 10:56 pm
Ter Jun 20, 2017 9:35 pm
Ter Jun 20, 2017 9:17 pm
Ter Jun 20, 2017 9:11 pm
Ter Jun 20, 2017 7:25 pm
Ter Jun 20, 2017 7:24 pm
Ter Jun 20, 2017 6:57 pm
Ter Jun 20, 2017 6:34 pm
Ter Jun 20, 2017 6:32 pm
Ter Jun 20, 2017 6:05 pm
Ter Jun 20, 2017 6:01 pm
Ter Jun 20, 2017 4:57 pm
Ter Jun 20, 2017 1:53 pm
Ter Jun 20, 2017 1:23 pm
Ter Jun 20, 2017 1:18 pm
Ter Jun 20, 2017 1:13 pm
Ter Jun 20, 2017 12:55 pm
Ter Jun 20, 2017 12:52 pm
Ter Jun 20, 2017 12:51 pm
Ter Jun 20, 2017 12:41 pm
Ter Jun 20, 2017 12:36 pm
Ter Jun 20, 2017 12:31 pm
Ter Jun 20, 2017 12:27 pm
Ter Jun 20, 2017 12:24 pm
Ter Jun 20, 2017 12:20 pm
Ter Jun 20, 2017 12:15 pm
Ter Jun 20, 2017 10:33 am
Ter Jun 20, 2017 1:11 am
Seg Jun 19, 2017 11:55 pm
Seg Jun 19, 2017 10:32 pm
Seg Jun 19, 2017 10:25 pm
Seg Jun 19, 2017 10:23 pm
Seg Jun 19, 2017 7:56 pm
Seg Jun 19, 2017 7:51 pm
Seg Jun 19, 2017 7:39 pm
Seg Jun 19, 2017 7:27 pm
Seg Jun 19, 2017 5:37 pm
Seg Jun 19, 2017 4:47 pm
Seg Jun 19, 2017 4:16 pm
Seg Jun 19, 2017 12:55 pm
Seg Jun 19, 2017 12:52 pm
Seg Jun 19, 2017 11:59 am
Seg Jun 19, 2017 11:35 am
Seg Jun 19, 2017 10:56 am
Seg Jun 19, 2017 9:00 am
Seg Jun 19, 2017 6:57 am
Dom Jun 18, 2017 9:29 pm
Dom Jun 18, 2017 6:54 pm
Dom Jun 18, 2017 6:38 pm
Dom Jun 18, 2017 6:08 pm
Dom Jun 18, 2017 6:06 pm
Dom Jun 18, 2017 4:06 pm
Dom Jun 18, 2017 2:49 pm
Dom Jun 18, 2017 1:09 pm
Dom Jun 18, 2017 1:10 am
Dom Jun 18, 2017 12:14 am
Sab Jun 17, 2017 11:45 pm
Sab Jun 17, 2017 10:32 pm
Sab Jun 17, 2017 8:01 pm
Sab Jun 17, 2017 7:23 pm
Sab Jun 17, 2017 6:57 pm
Sab Jun 17, 2017 4:42 pm
Sab Jun 17, 2017 4:26 pm
Sab Jun 17, 2017 4:22 pm
EPSD00M
glauco
Willian Wii
michelly
SmithSchuldiner
Callyde Jr
marcos4503
Dom3000
marcos4503
edu094
Zecandy
Zecandy
Gilliard
dstaroski
Callyde Jr
marcos4503
Dom3000
weslleyFx
Dom3000
Duarte
Callyde Jr
Dom3000
marcos4503
Robinsandi
RenanKrause
Phoenix Wright
marcos4503
ffabim
dstaroski
sabbath
JoelMJunior
JoelMJunior
thzin
Mateus2583
thzin
marcos4503
Blindado
PauloFR
tom ramber
bruxamissi
ffabim
PauloFR
PauloFR
Joaopm1
Chilinger
Chilinger
DUT
rafaelllsd
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
dstaroski
MateusWTP
Bruno11playerG
NyanHeavyBR
NyanHeavyBR
marcos4503
Callyde Jr
Lteo
marcos4503
zZAndersonZz
DUT
SpartanoLeonidas300
dstaroski
Gabriel César O
Gabriel César O
Callyde Jr
fecirineu
iagokennedyy
Mic4el
dstaroski
Joy29
PauloFR
Diego Felix
Gabriel César O
Zecandy
DUT
bitgames
Ghosthy
Ronmaster
PauloFR
marcos4503
DUT
rafaelllsd
marcos4503
g
Gabriel César O
marcos4503
DUT

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 : 698
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 : 8987
REPUTAÇÃO : 1443
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 : 698
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