Session05:角色方向&跳跃
实现了人物转向和跳跃:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float speed = 400.0f;
public float jumpforce = 400.0f;
// Update is called once per frame
//不同电脑性能不同,每分钟调用Update的次数就不同
void Update()
{
Movement();
}
void Movement()
{
//GetAxisRaw :直接返回-1 0 1,没有过渡值
float faceDirection = Input.GetAxisRaw("Horizontal");
//角色移动,fixedDeltaTime的值是0.02,乘以这个值是为了平衡不同电脑的性能,使人物速度一样
if (horizontalAxis != 0)
{
rb.velocity = new Vector2(horizontalAxis * speed * Time.deltaTime, rb.velocity.y);
}
//人物转向
if(faceDirection != 0)
{
transform.localScale = new Vector3(faceDirection, 1, 1);
}
if (Input.GetButtonDown("Jump"))
{
rb.velocity = new Vector2(rb.velocity.x, jumpforce * Time.deltaTime);
}
}
}
有关Input的操作不要放在FixedUpdate里面,可能会漏掉很多按键触发。