今天添加跳跃功能,重点在跳跃速度和重力的计算上。
public class playermove : MonoBehaviour
{
//void Start()//start()开始函数;当脚本开始加载时,执行下面的函数
//{
//}
public float speed;
public CharacterController playercontroller;//声明一个叫CharacterController(角色控制器的变量),playercontroller是声明的变量,在unity中要将角色控制器的组件和你创建的脚本中playercontroller相关联
public float jumpspeed = 10;
public float gravity = 10;//重力
Vector3 move;//vector3 三维向量
void Update()//每一帧都会执行以下代码
{
float x=0, z=0;
if (playercontroller.isGrounded)//角色控制器是否在地面上
{
x = Input.GetAxis("Horizontal");
z = Input.GetAxis("Vertical");
move = (transform.right * x + transform.forward * z)*speed;
if (Input.GetAxis("Jump") == 1)
{
move.y = jumpspeed;
}
}
move.y = move.y - gravity * Time.deltaTime;
playercontroller.Move(move*Time.deltaTime);//Move作为内置函数代表移动
}
}