[DÚVIDA] Movimentação
5 participantes
Página 1 de 1
[DÚVIDA] Movimentação
Galera, boa tarde.
Como eu faço esse tipo de movimentação no meu personagem?
Não consigo de jeito nenhum e não acho nada que ensine.
Já tentei de várias formas, mas não consigo.
https://www.youtube.com/watch?v=bTJywcs68dg
Como eu faço esse tipo de movimentação no meu personagem?
Não consigo de jeito nenhum e não acho nada que ensine.
Já tentei de várias formas, mas não consigo.
https://www.youtube.com/watch?v=bTJywcs68dg
johnkaryu- Iniciante
- PONTOS : 3478
REPUTAÇÃO : 0
Respeito as regras :
Re: [DÚVIDA] Movimentação
acho que é um script de movimentação em 3 pessoa "normal" + um script de camera mais elaborado.
Re: [DÚVIDA] Movimentação
Então, eu já tenho isso.
Mas eu queria mesmo como o GOW ou Dante's Inferno, eu fiz uma vez, anos atrás, mas não lembro como kkk.
É tipo, quando eu apertar pra direita, o personagem nadar e olhar pra direita, pra direita, frente, trás a mesma coisa, e não ter que virar o personagem e depois apertar a tecla pra frente pra ele andar na direção em que virou, sacou?
Mas eu queria mesmo como o GOW ou Dante's Inferno, eu fiz uma vez, anos atrás, mas não lembro como kkk.
É tipo, quando eu apertar pra direita, o personagem nadar e olhar pra direita, pra direita, frente, trás a mesma coisa, e não ter que virar o personagem e depois apertar a tecla pra frente pra ele andar na direção em que virou, sacou?
johnkaryu- Iniciante
- PONTOS : 3478
REPUTAÇÃO : 0
Respeito as regras :
Re: [DÚVIDA] Movimentação
Nunca fiz isso, mas acho que é só colocar um lookAt e quando o personagem estiver a uma certa distancia da camera, ela começar a seguir o personagem
ismarspn- Programador
- PONTOS : 3999
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: [DÚVIDA] Movimentação
vc poder usar o Mathf.Lerp para fazer ele rotacionar com determinada tecla for apertada
e basta acrescentar o valor resultante a rotação do objeto
e basta acrescentar o valor resultante a rotação do objeto
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [DÚVIDA] Movimentação
Achei bastante complicado na verdade, e como é pra um projeto da faculdade, acho que seria injusto comigo mesmo usar algo pronto assim. hausdhds
johnkaryu- Iniciante
- PONTOS : 3478
REPUTAÇÃO : 0
Respeito as regras :
Re: [DÚVIDA] Movimentação
Bom como nunca joguei God of war no pc não sei como funciona digo quais teclas que deve se aperta para Andar soa apenas W,A,D ?
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [DÚVIDA] Movimentação
Sim, tipo, W,A,S,D, mas quando aperta vai,pra ir pra direita, ele já olha pra direita automaticamente e vai naquela direção, e não rotaciona e depois aperta pra frente pra andar naquela direção.
johnkaryu- Iniciante
- PONTOS : 3478
REPUTAÇÃO : 0
Respeito as regras :
Re: [DÚVIDA] Movimentação
Algo neste estilo?
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(Rigidbody))]
public class Mover : MonoBehaviour {
Rigidbody corpoRigido;
bool estaGirando = false;
Vector3 rotacaoFinal;
public float velocidadeAndar = 5;
void Start () {
corpoRigido = GetComponent<Rigidbody> ();
corpoRigido.constraints = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationZ;
}
void Update () {
if (Input.GetKeyDown (KeyCode.A) && estaGirando == false) {
rotacaoFinal = transform.localEulerAngles + new Vector3(0,-90,0);
estaGirando = true;
StartCoroutine ("TempoDeGiro");
}else if (Input.GetKeyDown (KeyCode.D) && estaGirando == false) {
rotacaoFinal = transform.localEulerAngles + new Vector3(0,90,0);
estaGirando = true;
StartCoroutine ("TempoDeGiro");
}
if (Input.GetKey (KeyCode.W)) {
corpoRigido.velocity = transform.forward * velocidadeAndar;
}else if (Input.GetKey (KeyCode.S)) {
corpoRigido.velocity = -transform.forward * velocidadeAndar;
}
//
if (estaGirando == true) {
transform.rotation = Quaternion.RotateTowards (transform.rotation, Quaternion.Euler (rotacaoFinal), 6.0f);
}
}
IEnumerator TempoDeGiro(){
yield return new WaitForSeconds (0.5f);
estaGirando = false;
}
}
Re: [DÚVIDA] Movimentação
Quase isso.
Mas tipo, quando aperta pra direita, ele já vira e anda pra direita.
Mas cara, muito obrigado, ficou milhões de vezes mais dinâmico que o meu sdahuadsh, muito melhor mesmo.
Eu não entendi como funciona, mas vou usar, e por seu nome nos créditos. dsahudsuh
Mas tipo, quando aperta pra direita, ele já vira e anda pra direita.
Mas cara, muito obrigado, ficou milhões de vezes mais dinâmico que o meu sdahuadsh, muito melhor mesmo.
Eu não entendi como funciona, mas vou usar, e por seu nome nos créditos. dsahudsuh
johnkaryu- Iniciante
- PONTOS : 3478
REPUTAÇÃO : 0
Respeito as regras :
Re: [DÚVIDA] Movimentação
Mais ou menos igual o que o unity traz de exemplo mesmo, mas aquele é muito complexo pra mim. haha
Mas valeu Marcos, já vai deixar bem mais legal. haha
Mas valeu Marcos, já vai deixar bem mais legal. haha
johnkaryu- Iniciante
- PONTOS : 3478
REPUTAÇÃO : 0
Respeito as regras :
Re: [DÚVIDA] Movimentação
Cara, fiz esse script, dá uma olhada quem sabe te ajude(ou não):
- Código:
using UnityEngine;
using System.Collections;
public class ScriptCamera : MonoBehaviour {
public Transform target;
private Vector3 distanceLimit;
public float distanceToMove;
public float smoothToMove;
// Use this for initialization
void Start () {
distanceLimit = new Vector3 (target.position.x + distanceToMove, transform.position.y, target.position.z + distanceToMove);
this.transform.position = distanceLimit;
}
// Update is called once per frame
void Update () {
distanceLimit = new Vector3 (target.position.x + distanceToMove, transform.position.y, target.position.z + distanceToMove);
transform.LookAt (target);
this.transform.position = Vector3.MoveTowards (this.transform.position, distanceLimit, Time.deltaTime * smoothToMove);
}
}
ismarspn- Programador
- PONTOS : 3999
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: [DÚVIDA] Movimentação
bom talvez seja isso o que vc procura pelo que entendi
vc também vai precisar desse
vc tbm pode implementar isso no código vai fica show
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(Rigidbody))]
public class CharacterControlller : MonoBehaviour
{
public float speedWalk = 5;
public float speedWalkRotation = 3;
public CameraFollow cameraFollow;
private Rigidbody m_RigidBody;
private float calcRotation;
private float calcDirection;
void Start()
{
m_RigidBody = GetComponent<Rigidbody>();
m_RigidBody.constraints = RigidbodyConstraints.FreezeRotationX;
m_RigidBody.constraints = RigidbodyConstraints.FreezeRotationZ;
}
void Update()
{
CalcDirection();
}
void FixedUpdate()
{
PerformanceMoveForward(calcDirection);
PerformanceRotationHorizontal(calcRotation);
cameraFollow.FollowCharacter(transform);
}
private void PerformanceMoveForward(float calcDirection )
{
Vector3 newDirection = Vector3.Normalize(transform.forward) * calcDirection;
m_RigidBody.MovePosition(m_RigidBody.position + newDirection * Time.deltaTime);
}
private void PerformanceRotationHorizontal(float rotation)
{
if (rotation == 0)
return;
Quaternion increaseRotarion = Quaternion.AngleAxis(rotation, Vector3.up);
m_RigidBody.MoveRotation(m_RigidBody.rotation * increaseRotarion);
}
private void CalcDirection()
{
calcRotation = Input.GetAxisRaw("Horizontal") * speedWalkRotation;
calcDirection = Input.GetAxisRaw("Vertical") * speedWalk;
}
}
vc também vai precisar desse
- Código:
using UnityEngine;
using System;
[System.Serializable]
public class CameraFollow
{
public float speedMove = 10;
public Camera m_Camera;
public Vector3 offset = new Vector3(10,3,1);
public void FollowCharacter(Transform character)
{
m_Camera.transform.position = Vector3.Lerp(m_Camera.transform.position, character.position + offset, speedMove * Time.deltaTime);
m_Camera.transform.LookAt(character);
}
}
vc tbm pode implementar isso no código vai fica show
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [DÚVIDA] Movimentação
sim vc tbm terá que setar a câmera na classe
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [DÚVIDA] Movimentação
O de câmera eu já fiz, só falta o da movimentação mesmo.
johnkaryu- Iniciante
- PONTOS : 3478
REPUTAÇÃO : 0
Respeito as regras :
Re: [DÚVIDA] Movimentação
então basta apagar as linha 9 e 33 da classe CharacterControlller
e estará pronto para uso
e estará pronto para uso
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [DÚVIDA] Movimentação
Coloquei mas o personagem não anda.
johnkaryu- Iniciante
- PONTOS : 3478
REPUTAÇÃO : 0
Respeito as regras :
Re: [DÚVIDA] Movimentação
vc verifico os valores das variáveis ?
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [DÚVIDA] Movimentação
Eu nem mexi no código, só apaguei as linhas referente a câmera mesmo.
johnkaryu- Iniciante
- PONTOS : 3478
REPUTAÇÃO : 0
Respeito as regras :
Re: [DÚVIDA] Movimentação
Então caras, é isso aqui que eu procuro
Mas o que tá no asset store tem um código tão grande pra várias coisas, sem comentários, fiquei bem perdido. x.x
https://dl.dropboxusercontent.com/u/35774262/webpage/unity_demos/3rdCamOrbitFly/WebGL/index.html
Mas o que tá no asset store tem um código tão grande pra várias coisas, sem comentários, fiquei bem perdido. x.x
https://dl.dropboxusercontent.com/u/35774262/webpage/unity_demos/3rdCamOrbitFly/WebGL/index.html
johnkaryu- Iniciante
- PONTOS : 3478
REPUTAÇÃO : 0
Respeito as regras :
Re: [DÚVIDA] Movimentação
Ué, mas novamente vou dizer... o Tird Person Controller que vem com a Unity é exatamente isto
Re: [DÚVIDA] Movimentação
Sim sim, eu sei. haha
Mas tem muitas coisas a mais lá, eu não entendi muito bem.
Mas bom, eu vou ver o que da pra fazer uashda, valeu!
Mas tem muitas coisas a mais lá, eu não entendi muito bem.
Mas bom, eu vou ver o que da pra fazer uashda, valeu!
johnkaryu- Iniciante
- PONTOS : 3478
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» (DÚVIDA) AJUDA NA MOVIMENTAÇÂO
» Dúvida: Movimentação de Personagem 2D
» Duvida na movimentação com o touch
» [Duvida] movimentação de nave
» [DÚVIDA] Script de movimentação
» Dúvida: Movimentação de Personagem 2D
» Duvida na movimentação com o touch
» [Duvida] movimentação de nave
» [DÚVIDA] Script de movimentação
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos