[RESOLVIDO] movimentação FPS COM ERRO
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] movimentação FPS COM ERRO
FALA GLR BLZ ALGUEM ME AJDA A ARRUMAR ESSE SCRIPT DE MOVIMENTAÇAO DO PLAYER
ESSE SCRIPT N TA DANDO ERRO, MAS TBM O PERSONAGEM N ANDA.. SO MOVE A CAMERA,..
AH acredito q n seja o rigidbody pq ja olhei e n ta marcado as caixas de bloquear rotaçao..
ESSE SCRIPT N TA DANDO ERRO, MAS TBM O PERSONAGEM N ANDA.. SO MOVE A CAMERA,..
AH acredito q n seja o rigidbody pq ja olhei e n ta marcado as caixas de bloquear rotaçao..
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent (typeof (Rigidbody))]
public class PlayerController : MonoBehaviour {
public bool enableMouse;
[Header ("PlayerConfig")]
public string PlayerName;
public int Life;
public float speed;
public float RunSpeed;
public float sensibility;
[Header ("Imports")]
public Camera cam;
// privates
private Rigidbody rb;
private float realSpeed;
private Vector3 velocity;
private Vector3 rotation;
private Vector3 camRotation;
private float rotCam;
void Start () {
rb = GetComponent<Rigidbody> ();
}
void Update () {
#region Moviment
float _xMov = Input.GetAxisRaw ("Horizontal");
float _yMov = Input.GetAxisRaw ("Vertical");
if(Input.GetButton("Run") == true && _xMov == 0 && _yMov == 1)
{
realSpeed = RunSpeed;
}
else
{
realSpeed = speed;
}
Vector3 _MoveHorizontal = transform.right * _xMov;
Vector3 _MoveVertical = transform.forward * _yMov;
Vector3 _velocity = (_MoveHorizontal+ _MoveVertical).normalized * realSpeed;
#endregion
#region Rotation
float _yMouse = Input.GetAxisRaw ("Mouse X");
rotation = new Vector3 (0, _yMouse, 0) * sensibility;
float xMouse = Input.GetAxisRaw ("Mouse Y");
camRotation = new Vector3 (xMouse, 0, 0) * sensibility;
#endregion
#region enableMouse
if (enableMouse)
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
}
else
{
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
}
#endregion
}
private void FixedUpdate ()
{
if (enableMouse == true)
{
Moviment ();
Rotation ();
}
}
void Moviment ()
{
if (velocity != Vector3.zero)
rb.MovePosition (rb.position + velocity * Time.deltaTime);
}
void Rotation ()
{
rb.MoveRotation(rb.rotation * Quaternion.Euler (rotation));
if (cam != null)
{
rotCam += camRotation.x;
rotCam = Mathf.Clamp (rotCam, -80, 80);
cam.transform.localEulerAngles = new Vector3 (-rotCam, 0, 0);
}
}
}
Piewdie Mãe- Membro
- PONTOS : 1841
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] movimentação FPS COM ERRO
A opcao "Is Kinematic" do RigidBody está ativada?Piewdie Mãe escreveu:FALA GLR BLZ ALGUEM ME AJDA A ARRUMAR ESSE SCRIPT DE MOVIMENTAÇAO DO PLAYER
ESSE SCRIPT N TA DANDO ERRO, MAS TBM O PERSONAGEM N ANDA.. SO MOVE A CAMERA,..
AH acredito q n seja o rigidbody pq ja olhei e n ta marcado as caixas de bloquear rotaçao..
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent (typeof (Rigidbody))]
public class PlayerController : MonoBehaviour {
public bool enableMouse;
[Header ("PlayerConfig")]
public string PlayerName;
public int Life;
public float speed;
public float RunSpeed;
public float sensibility;
[Header ("Imports")]
public Camera cam;
// privates
private Rigidbody rb;
private float realSpeed;
private Vector3 velocity;
private Vector3 rotation;
private Vector3 camRotation;
private float rotCam;
void Start () {
rb = GetComponent<Rigidbody> ();
}
void Update () {
#region Moviment
float _xMov = Input.GetAxisRaw ("Horizontal");
float _yMov = Input.GetAxisRaw ("Vertical");
if(Input.GetButton("Run") == true && _xMov == 0 && _yMov == 1)
{
realSpeed = RunSpeed;
}
else
{
realSpeed = speed;
}
Vector3 _MoveHorizontal = transform.right * _xMov;
Vector3 _MoveVertical = transform.forward * _yMov;
Vector3 _velocity = (_MoveHorizontal+ _MoveVertical).normalized * realSpeed;
#endregion
#region Rotation
float _yMouse = Input.GetAxisRaw ("Mouse X");
rotation = new Vector3 (0, _yMouse, 0) * sensibility;
float xMouse = Input.GetAxisRaw ("Mouse Y");
camRotation = new Vector3 (xMouse, 0, 0) * sensibility;
#endregion
#region enableMouse
if (enableMouse)
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
}
else
{
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
}
#endregion
}
private void FixedUpdate ()
{
if (enableMouse == true)
{
Moviment ();
Rotation ();
}
}
void Moviment ()
{
if (velocity != Vector3.zero)
rb.MovePosition (rb.position + velocity * Time.deltaTime);
}
void Rotation ()
{
rb.MoveRotation(rb.rotation * Quaternion.Euler (rotation));
if (cam != null)
{
rotCam += camRotation.x;
rotCam = Mathf.Clamp (rotCam, -80, 80);
cam.transform.localEulerAngles = new Vector3 (-rotCam, 0, 0);
}
}
}
Re: [RESOLVIDO] movimentação FPS COM ERRO
Opa mano vou olhar akiBlesseD escreveu:A opcao "Is Kinematic" do RigidBody está ativada?Piewdie Mãe escreveu:FALA GLR BLZ ALGUEM ME AJDA A ARRUMAR ESSE SCRIPT DE MOVIMENTAÇAO DO PLAYER
ESSE SCRIPT N TA DANDO ERRO, MAS TBM O PERSONAGEM N ANDA.. SO MOVE A CAMERA,..
AH acredito q n seja o rigidbody pq ja olhei e n ta marcado as caixas de bloquear rotaçao..
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent (typeof (Rigidbody))]
public class PlayerController : MonoBehaviour {
public bool enableMouse;
[Header ("PlayerConfig")]
public string PlayerName;
public int Life;
public float speed;
public float RunSpeed;
public float sensibility;
[Header ("Imports")]
public Camera cam;
// privates
private Rigidbody rb;
private float realSpeed;
private Vector3 velocity;
private Vector3 rotation;
private Vector3 camRotation;
private float rotCam;
void Start () {
rb = GetComponent<Rigidbody> ();
}
void Update () {
#region Moviment
float _xMov = Input.GetAxisRaw ("Horizontal");
float _yMov = Input.GetAxisRaw ("Vertical");
if(Input.GetButton("Run") == true && _xMov == 0 && _yMov == 1)
{
realSpeed = RunSpeed;
}
else
{
realSpeed = speed;
}
Vector3 _MoveHorizontal = transform.right * _xMov;
Vector3 _MoveVertical = transform.forward * _yMov;
Vector3 _velocity = (_MoveHorizontal+ _MoveVertical).normalized * realSpeed;
#endregion
#region Rotation
float _yMouse = Input.GetAxisRaw ("Mouse X");
rotation = new Vector3 (0, _yMouse, 0) * sensibility;
float xMouse = Input.GetAxisRaw ("Mouse Y");
camRotation = new Vector3 (xMouse, 0, 0) * sensibility;
#endregion
#region enableMouse
if (enableMouse)
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
}
else
{
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
}
#endregion
}
private void FixedUpdate ()
{
if (enableMouse == true)
{
Moviment ();
Rotation ();
}
}
void Moviment ()
{
if (velocity != Vector3.zero)
rb.MovePosition (rb.position + velocity * Time.deltaTime);
}
void Rotation ()
{
rb.MoveRotation(rb.rotation * Quaternion.Euler (rotation));
if (cam != null)
{
rotCam += camRotation.x;
rotCam = Mathf.Clamp (rotCam, -80, 80);
cam.transform.localEulerAngles = new Vector3 (-rotCam, 0, 0);
}
}
}
Piewdie Mãe- Membro
- PONTOS : 1841
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] movimentação FPS COM ERRO
Não mn olhei aqui e n ta n .. marquei e continuou parado no ar (dx ele no ar pra ver se tinha bug de gravidade)BlesseD escreveu:A opcao "Is Kinematic" do RigidBody está ativada?Piewdie Mãe escreveu:FALA GLR BLZ ALGUEM ME AJDA A ARRUMAR ESSE SCRIPT DE MOVIMENTAÇAO DO PLAYER
ESSE SCRIPT N TA DANDO ERRO, MAS TBM O PERSONAGEM N ANDA.. SO MOVE A CAMERA,..
AH acredito q n seja o rigidbody pq ja olhei e n ta marcado as caixas de bloquear rotaçao..
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent (typeof (Rigidbody))]
public class PlayerController : MonoBehaviour {
public bool enableMouse;
[Header ("PlayerConfig")]
public string PlayerName;
public int Life;
public float speed;
public float RunSpeed;
public float sensibility;
[Header ("Imports")]
public Camera cam;
// privates
private Rigidbody rb;
private float realSpeed;
private Vector3 velocity;
private Vector3 rotation;
private Vector3 camRotation;
private float rotCam;
void Start () {
rb = GetComponent<Rigidbody> ();
}
void Update () {
#region Moviment
float _xMov = Input.GetAxisRaw ("Horizontal");
float _yMov = Input.GetAxisRaw ("Vertical");
if(Input.GetButton("Run") == true && _xMov == 0 && _yMov == 1)
{
realSpeed = RunSpeed;
}
else
{
realSpeed = speed;
}
Vector3 _MoveHorizontal = transform.right * _xMov;
Vector3 _MoveVertical = transform.forward * _yMov;
Vector3 _velocity = (_MoveHorizontal+ _MoveVertical).normalized * realSpeed;
#endregion
#region Rotation
float _yMouse = Input.GetAxisRaw ("Mouse X");
rotation = new Vector3 (0, _yMouse, 0) * sensibility;
float xMouse = Input.GetAxisRaw ("Mouse Y");
camRotation = new Vector3 (xMouse, 0, 0) * sensibility;
#endregion
#region enableMouse
if (enableMouse)
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
}
else
{
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
}
#endregion
}
private void FixedUpdate ()
{
if (enableMouse == true)
{
Moviment ();
Rotation ();
}
}
void Moviment ()
{
if (velocity != Vector3.zero)
rb.MovePosition (rb.position + velocity * Time.deltaTime);
}
void Rotation ()
{
rb.MoveRotation(rb.rotation * Quaternion.Euler (rotation));
if (cam != null)
{
rotCam += camRotation.x;
rotCam = Mathf.Clamp (rotCam, -80, 80);
cam.transform.localEulerAngles = new Vector3 (-rotCam, 0, 0);
}
}
}
Piewdie Mãe- Membro
- PONTOS : 1841
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] movimentação FPS COM ERRO
Onde conseguiu esse código? Ele parece bem estruturado...
Quando a falha no movimento, diga, a variável enableMouse está verdadeira?
Quando a falha no movimento, diga, a variável enableMouse está verdadeira?
Re: [RESOLVIDO] movimentação FPS COM ERRO
Consegui resolver era na linha 52 tirei o "Vector3 = _" e deixei so " velocity = (_MoveHorizontal+ _MoveVertical).normalized * realSpeed;"MarcosSchultz escreveu:Onde conseguiu esse código? Ele parece bem estruturado...
Quando a falha no movimento, diga, a variável enableMouse está verdadeira?
ah ta estruturado pq era pra ser usado em multiplayer mas n da mais pq o unity cancelou o modo multiplayer q ele usaria..
arrumei no canal do gump flash ele tbm pé bom olha la
Piewdie Mãe- Membro
- PONTOS : 1841
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] movimentação FPS COM ERRO
kkkkk n sei como faz pra colocar "resolvido" no topico
Piewdie Mãe- Membro
- PONTOS : 1841
REPUTAÇÃO : 1
Respeito as regras :
Tópicos semelhantes
» Erro na movimentação
» Erro Movimentação RPG
» [RESOLVIDO] Movimentação 2D
» (Erro) Movimentação infinita.
» [RESOLVIDO] Duvida com movimentação
» Erro Movimentação RPG
» [RESOLVIDO] Movimentação 2D
» (Erro) Movimentação infinita.
» [RESOLVIDO] Duvida com movimentação
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos