Meu script de Movimento não deixa meu script do Pulo duplo funcionar.
Página 1 de 1
Meu script de Movimento não deixa meu script do Pulo duplo funcionar.
Os scripts de alguma forma se conflitam, mas não causam nenhum erro. Gostaria de saber como posso resolve-lo.
SCRIPT FEITO POR UM CANAL DO YOUTUBE E ARRUMADO PELO SCHULTZGAMES.
OBS: ESSE SCRIPT ESTÁ MUITO PERFEITO.
SCRIPT DO SISTEMA DE PULO DUPLO FEITO PELO SCHULTZGAMES.
SCRIPT FEITO POR UM CANAL DO YOUTUBE E ARRUMADO PELO SCHULTZGAMES.
OBS: ESSE SCRIPT ESTÁ MUITO PERFEITO.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Rigidbody))]
public class MOve : MonoBehaviour
{
Vector3 targetRotation;
float rotationSpeed = 8;
public float speed = 20;
public Vector3 direcaoDoPulo = new Vector3(0, 1, 0);
public float distanciaDoChao = 1, forcaDoPulo = 7, tempoPorPulo = 1;
public LayerMask LayersNaoIgnoradas = -1;
private bool estaNoChao, pulou1, pulou2, podePular;
private Rigidbody corpoRigido;
Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
rb.constraints = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationZ;
rb.interpolation = RigidbodyInterpolation.Extrapolate;
corpoRigido = GetComponent<Rigidbody>();
pulou1 = pulou2 = false;
podePular = true;
}
void FixedUpdate()
{
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
float horizontalRaw = Input.GetAxisRaw("Horizontal");
float verticalRaw = Input.GetAxisRaw("Vertical");
Vector3 input = new Vector3(horizontal, 0, vertical);
if (input.magnitude > 1)
{
input.Normalize();
}
Vector3 inputRaw = new Vector3(horizontalRaw, 0, verticalRaw);
if (inputRaw != Vector3.zero)
{
targetRotation = Quaternion.LookRotation(input).eulerAngles;
}
rb.rotation = Quaternion.Slerp(transform.rotation, Quaternion.Euler(targetRotation.x, Mathf.Round(targetRotation.y / 45f) * 45f, targetRotation.z), Time.deltaTime * rotationSpeed);
Vector3 vel = input * speed;
vel.y = -9.8f;
rb.velocity = vel;
}
}
SCRIPT DO SISTEMA DE PULO DUPLO FEITO PELO SCHULTZGAMES.
- Código:
public class Pulo : MonoBehaviour {
public Vector3 direcaoDoPulo = new Vector3(0,1,0);
public float distanciaDoChao = 1, forcaDoPulo = 7, tempoPorPulo = 1;
public LayerMask LayersNaoIgnoradas = -1;
private bool estaNoChao, pulou1, pulou2, podePular;
private Rigidbody corpoRigido;
void Start () {
corpoRigido = GetComponent<Rigidbody> ();
pulou1 = pulou2 = false;
podePular = true;
}
void Update () {
estaNoChao = Physics.Linecast (transform.position, transform.position - Vector3.up*distanciaDoChao, LayersNaoIgnoradas);
if ((pulou1 == true || pulou2 == true) && estaNoChao == true) {
pulou1 = pulou2 = false;
}
if (Input.GetKeyDown (KeyCode.Space) && estaNoChao == false) {
pulou1 = true;
}
if (Input.GetKeyDown (KeyCode.Space) && estaNoChao == true && pulou1 == false && pulou2 == false && podePular == true) {
StartCoroutine ("CronometroPular");
pulou1 = true;
pulou2 = false;
corpoRigido.AddForce (direcaoDoPulo * forcaDoPulo, ForceMode.Impulse);
}
if (Input.GetKeyDown (KeyCode.Space) && estaNoChao == false && pulou1 == true && pulou2 == false && podePular == true) {
StartCoroutine ("CronometroPular");
pulou1 = true;
pulou2 = true;
corpoRigido.AddForce (direcaoDoPulo * forcaDoPulo*2, ForceMode.Impulse);
}
}
IEnumerator CronometroPular(){
podePular = false;
yield return new WaitForSeconds (tempoPorPulo);
podePular = true;
}
}
teos626- Membro
- PONTOS : 1926
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» (Ajuda) Pulo duplo
» Problema Script de Pulo
» Sobrescrever animações com blend tree deixa o personagem sem movimento!
» rigidbody2D,movimento direita, esquerda, pulo,, problema
» [DÚVIDA] ANIMAÇÃO DE PULO NO CONTROLADOR QUE TEM BLEND TREE COM MOVIMENTO
» Problema Script de Pulo
» Sobrescrever animações com blend tree deixa o personagem sem movimento!
» rigidbody2D,movimento direita, esquerda, pulo,, problema
» [DÚVIDA] ANIMAÇÃO DE PULO NO CONTROLADOR QUE TEM BLEND TREE COM MOVIMENTO
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos