[RESOLVIDO] correr character controller
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] correr character controller
Olá a todos, estou acompanhando este tutorial: https://www.youtube.com/watch?v=2D68eaLpjnM e preciso que vocês me ajudem em como fazer a mudança apertar o personagem
desculpe pela ortografia, falo em espanhol e estou usando o google tradutor
desculpe pela ortografia, falo em espanhol e estou usando o google tradutor
JuR- Iniciante
- PONTOS : 3173
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] correr character controller
Você quer fazer o FPSController correr, isto? Se for isso, utilize esta modificação que eu fiz:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(CharacterController))]
public class Controller : MonoBehaviour {
public float velocidadeAndar = 6.0f;
public float correrFactor = 2;
[Space(10)]
public float forcaDoPulo = 8;
GameObject cameraFPS;
Vector3 moveDirection = Vector3.zero;
CharacterController controller;
float rotacaoX = 0.0f, rotacaoY = 0.0f;
float velCorrer = 1; //adicionei isto
void Start () {
transform.tag = "Player";
cameraFPS = GetComponentInChildren (typeof(Camera)).transform.gameObject;
cameraFPS.transform.localPosition = new Vector3 (0, 1, 0);
cameraFPS.transform.localRotation = Quaternion.identity;
controller = GetComponent<CharacterController> ();
}
void Update () {
Vector3 direcaoFrente = new Vector3 (cameraFPS.transform.forward.x, 0, cameraFPS.transform.forward.z);
Vector3 direcaoLado = new Vector3 (cameraFPS.transform.right.x, 0, cameraFPS.transform.right.z);
direcaoFrente.Normalize ();
direcaoLado.Normalize ();
direcaoFrente = direcaoFrente * Input.GetAxis ("Vertical");
direcaoLado = direcaoLado * Input.GetAxis ("Horizontal");
Vector3 direcFinal = direcaoFrente + direcaoLado;
if (direcFinal.sqrMagnitude > 1) {
direcFinal.Normalize ();
}
if (Input.GetKey (KeyCode.LeftShift)) {//adicionei isto
velCorrer = correrFactor;
} else {
velCorrer = 1;
}
if (controller.isGrounded) {
moveDirection = new Vector3 (direcFinal.x, 0, direcFinal.z);
moveDirection *= (velocidadeAndar*velCorrer);//modifiquei aqui
if (Input.GetButton ("Jump")) {
moveDirection.y = forcaDoPulo;
}
}
moveDirection.y -= 20.0f * Time.deltaTime;
controller.Move (moveDirection * Time.deltaTime);
CameraPrimeiraPessoa ();
}
void CameraPrimeiraPessoa(){
rotacaoX += Input.GetAxis ("Mouse X") * 10.0f;
rotacaoY += Input.GetAxis ("Mouse Y") * 10.0f;
rotacaoX = ClampAngleFPS (rotacaoX, -360, 360);
rotacaoY = ClampAngleFPS (rotacaoY, -80, 80);
Quaternion xQuaternion = Quaternion.AngleAxis (rotacaoX, Vector3.up);
Quaternion yQuaternion = Quaternion.AngleAxis (rotacaoY, -Vector3.right);
Quaternion rotacFinal = Quaternion.identity * xQuaternion * yQuaternion;
cameraFPS.transform.localRotation = Quaternion.Lerp (cameraFPS.transform.localRotation, rotacFinal, Time.deltaTime * 10.0f);
}
float ClampAngleFPS(float angulo, float min, float max){
if (angulo < -360) {
angulo += 360;
}
if (angulo > 360) {
angulo -= 360;
}
return Mathf.Clamp (angulo, min, max);
}
}
Re: [RESOLVIDO] correr character controller
pronto, sujeito resolvido. muito obrigado Marcos
JuR- Iniciante
- PONTOS : 3173
REPUTAÇÃO : 1
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Script para pular com character controller
» [RESOLVIDO] Tentando implementar sons no Character Controller
» [RESOLVIDO] [Character Controller] o Capsula Collider Dele é Só pra Bonito??
» Character Controller Slide
» Character Controller e Rigidbody
» [RESOLVIDO] Tentando implementar sons no Character Controller
» [RESOLVIDO] [Character Controller] o Capsula Collider Dele é Só pra Bonito??
» Character Controller Slide
» Character Controller e Rigidbody
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos