【发布时间】:2021-11-13 00:44:28
【问题描述】:
我是使用 C# 和 Unity 编码的新手,我的第一人称游戏一直存在问题,特别是我的角色的跳跃机制。有时角色会跳跃,有时他不会,有时他会做一个小跳跃,我不知道代码有什么问题。我将跳跃脚本与其他移动机制分开编写,因为坦率地说,其余的移动代码绝对是一团糟。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Jump : MonoBehaviour
{
private CharacterController controller;
private float verticalVelocity;
private float gravity = 14f;
private float jumpForce = 10f;
private void Start()
{
controller = GetComponent<CharacterController>();
}
private void Update()
{
if(controller.isGrounded)
{
verticalVelocity = -gravity * Time.deltaTime;
if(Input.GetKeyDown(KeyCode.Space))
{
verticalVelocity = jumpForce;
}
}
else
{
verticalVelocity -= gravity * Time.deltaTime;
}
Vector3 moveVector = new Vector3(0, verticalVelocity, 0);
controller.Move(moveVector * Time.deltaTime);
}
}
【问题讨论】: