Как заставить игровой объект прыгнуть вперед?
Привет, я действительно новичок в этом и хотел бы помочь, я хотел бы знать, как я могу заставить свой игровой объект прыгать вперед (чем дольше вы держите, тем больше он будет прыгать), у меня есть твердое тело на моем игровом объекте уже в случае, если это помогает.
public class PlayerScript : MonoBehaviour {
public float speed;
private Vector3 dir;
// Use this for initialization
void Start ()
{
dir = Vector3.zero;
}
// Update is called once per frame
void Update ()
{
if (Input.GetMouseButtonDown(0))
{
if (dir == Vector3.forward)
{
dir = Vector3.right;
}
else
{
dir = Vector3.forward;
}
}
float AmToMove = speed * Time.deltaTime;
transform.Translate (dir * AmToMove);
}
до сих пор мне удавалось только заставить его двигаться вперед и вправо, но вместо этого я хотел бы, чтобы он прыгал вперед и прыгал вправо.
1 ответ
Решение
public float thrust;
public Rigidbody rb;
void Start() {
rb = GetComponent<Rigidbody>();
}
void FixedUpdate() {
rb.AddForce(transform.up * thrust);
}
//This will add a force to the rigidbody upwards.
Если вы хотите использовать твердое тело для движения, вы должны приложить к нему силу. Прямо сейчас вы просто перемещаете мировую трансформацию объекта.