FPS Controller e Menu
Página 1 de 1
FPS Controller e Menu
Eu estou tendo problemas com a gravidade do FPS Controller.
Pois ele sempre fica aumentando a velocidade da gravidade.
Então tive que fazer algo para checar sempre que o jogador esta no chão.
Mas eu só sei usar o método usando LayerMask.
E não estou podendo usar os LayerMask devido a um outra coisa que fis antes.
Então queria saber se agem sabe um método diferente para arrumar isso.
E o menu não estou conseguindo usar os botões acho que é por causa da câmera então se agem puder ajudar com isso também eu agradeço.
Pois ele sempre fica aumentando a velocidade da gravidade.
Então tive que fazer algo para checar sempre que o jogador esta no chão.
Mas eu só sei usar o método usando LayerMask.
E não estou podendo usar os LayerMask devido a um outra coisa que fis antes.
Então queria saber se agem sabe um método diferente para arrumar isso.
- Código:
using UnityEngine;
[RequireComponent(typeof(CharacterController))]
public class MotionFPSController : MonoBehaviour
{
[Header("FPS Controller Settings")]
[SerializeField]
private CharacterController Controller;
[SerializeField]
private float Speed = 6f;
[SerializeField]
[Space(10)]
[Header("Gravity Settings")]
private bool Gravity = false;
[SerializeField]
private float SpeedGravity = -10f;
[SerializeField]
private Transform GroundCheck;
[SerializeField]
private float GroundDistance = 0.4f;
[SerializeField]
private LayerMask GroundMask;
[SerializeField]
private float JumpHeight = 3f;
[SerializeField]
private KeyCode JumpButton = KeyCode.Space;
[Space(10)]
[Header("Running Settings")]
[SerializeField]
private float RunSpeed = 12f;
[SerializeField]
private KeyCode RunButton = KeyCode.LeftShift;
Vector3 Velocity;
bool IsGrounded;
float InitialSpeed;
void Start()
{
InitialSpeed = Speed;
}
void Update()
{
float moveX = Input.GetAxis("Horizontal");
float moveZ = Input.GetAxis("Vertical");
Vector3 move = transform.right * moveX + transform.forward * moveZ;
Controller.Move(move * Speed * Time.deltaTime);
if(Gravity == true)
{
IsGrounded = Physics.CheckSphere(GroundCheck.position, GroundDistance, GroundMask);
if(IsGrounded && Velocity.y < 0)
{
Velocity.y = -2f;
}
if(Input.GetKeyDown(JumpButton) && IsGrounded)
{
Velocity.y = Mathf.Sqrt(JumpHeight * -2f * SpeedGravity);
}
Velocity.y += SpeedGravity * Time.deltaTime;
Controller.Move(Velocity * Time.deltaTime);
}
if (Input.GetKeyDown(RunButton))
{
Speed = RunSpeed;
}
if (Input.GetKeyUp(RunButton))
{
Speed = InitialSpeed;
}
}
}
E o menu não estou conseguindo usar os botões acho que é por causa da câmera então se agem puder ajudar com isso também eu agradeço.
- Código:
using UnityEngine;
[RequireComponent(typeof(Camera))]
public class CameraFPSController : MonoBehaviour
{
[Header("Camera Settings")]
[SerializeField]
private float MouseSesitivity = 1000f;
[SerializeField]
private float MaximumRotationUp = -90;
[SerializeField]
private float MaximumRotationDown = 90;
[SerializeField]
private Transform PlayerBody;
float xRotation;
void Start()
{
Cursor.lockState = CursorLockMode.Locked;
}
void Update()
{
float mouseX = Input.GetAxis("Mouse X") * MouseSesitivity * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * MouseSesitivity * Time.deltaTime;
xRotation -= mouseY;
xRotation = Mathf.Clamp(xRotation, MaximumRotationUp, MaximumRotationDown);
transform.localRotation = Quaternion.Euler(xRotation, 0, 0);
PlayerBody.Rotate(Vector3.up * mouseX);
}
}
- Código:
using UnityEngine;
public class MenuInGame : MonoBehaviour {
[SerializeField]
[Header("Required Item")]
[Header("One of Activation and Deactivation")]
private Transform Object;
[SerializeField]
private KeyCode Button = KeyCode.Escape;
void Update()
{
if (Input.GetKeyDown(Button))
{
if (Object.gameObject.activeSelf)
{
Object.gameObject.SetActive(false);
Time.timeScale = 1;
}
else
{
Object.gameObject.SetActive(true);
Time.timeScale = 0;
}
}
}
public void ResumeGame()
{
Object.gameObject.SetActive(false);
Time.timeScale = 1;
}
}
Tópicos semelhantes
» Pause Menu: botões de "Restart" e "Menu"
» Menu Principal com Load Game e Menu de Pause com Save Game?
» Som Passos FPS Controller
» Animator controller
» Unity não vem com Character Controller
» Menu Principal com Load Game e Menu de Pause com Save Game?
» Som Passos FPS Controller
» Animator controller
» Unity não vem com Character Controller
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos