Как увеличить скорость прыжка в Unity 3D?
Есть скрипт прыжка. Он рабочий. Работает только тогда, когда персонаж находится на земле, но меня не устраивает скорость с которой он падает, нужно ее увеличить, как это сделать? Уточнение: нужно оставить туже высоту прыжка, но увеличить скорость с которой он будет преодолевать это расстояние.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Jump : MonoBehaviour
{
public Rigidbody Player;
public float ForceJump = 10f;
private bool IsGround = false;
void Start()
{
Player = GetComponent<Rigidbody>();
}
void OnTriggerStay(Collider col)
{
if (col.tag == "Ground")
{
IsGround = true;
}
}
void OnTriggerExit(Collider col)
{
if (col.tag == "Ground")
{
IsGround = false;
}
}
void OnMouseDown()
{
Debug.Log("Нажатие");
if (IsGround == true)
{
Debug.Log("IsGround == true");
Vector3 ImpulsePlayer = new Vector3(0, ForceJump, 0);//Направление импульса
Player.AddForce(ImpulsePlayer, ForceMode.Impulse);//Импульс
}
}
}
Ответы (3 шт):
Автор решения: MRXIT
→ Ссылка
internal class Example : MonoBehaviour
{
[SerializeField]
private AnimationCurve animation;
private float ExpiredTime;
private float Duration = 1;
private float Height = 5;
private void Update()
{
ExpiredTime += Time.deltaTime;
if (ExpiredTime > Duration)
ExpiredTime = 0;
float progress = ExpiredTime / Duration;
transform.position = new Vector3(0, animation.Evaluate(progress), 0);
}
}
Автор решения: Andrew_STOP_RU_AGRESSION_IN_UA
→ Ссылка
А почему бы при достижении некоего порогового уровня скорости по Y оси не делать дополнительный AddForce.
Костыль, но зато не повлияет на все остальные обьекты на сцене, в отличии от изменения настроек гравитации.
Автор решения: Данил
→ Ссылка
В настройках проекта можно поменять силу гравитации Edit -> Project Settings -> Physics -> Gravity поиграйся со значениями