【发布时间】:2019-04-23 11:22:50
【问题描述】:
我想让我的角色跳跃,但我的动作很慢。就像角色正在传送而不是缓慢上升一样。你有什么想法吗?我正在使用 tilemap 和 Unity 2019.1.0f2。
我已经试过了:
rb.AddForce(Vector2.up * jumpForce),
rb.velocity = Vector2.up * jumpForce,
rb.MovePosition(new Vector2(transform.position.x, transform.position.y+jumpForce).
这是我的其余移动脚本,没有前面提到的代码:
public float speed;
public float jumpVelocity;
float timeBtwJumps = 0f;
float startTimeBtwJumps = 0.3f;
Rigidbody2D rb;
private void Awake()
{
rb = GetComponent<Rigidbody2D>();
}
private void Update()
{
float horizontal = Input.GetAxisRaw("Horizontal") * speed * Time.deltaTime;
Vector2 position = new Vector2(transform.position.x, transform.position.y);
rb.MovePosition(new Vector2(position.x + horizontal, position.y));
}
private void FixedUpdate()
{
if (Input.GetAxisRaw("Vertical") > 0f && timeBtwJumps <= 0f)
{
Jump();
timeBtwJumps = startTimeBtwJumps;
}
else
timeBtwJumps -= Time.deltaTime;
}
void Jump()
{
}
一切都在从 MonoBehaviour 派生的类中。 这是我的刚体和玩家设置:
Body Type: Dynamic
Material: None
Simulated: true
Use Auto Mass: false
Mass:1
Linear Drag: 0
Angular Drag: 0.05
Gravity Scale:1
Collision Detection: Discrete
Sleeping Mode: Start Awake
Interpolate: None
Freeze Rotation: z-true
玩家拥有默认设置的 Box Collider 2D。
请帮忙。提前致谢。
【问题讨论】: