天天看点

unity自学第二天

今天添加跳跃功能,重点在跳跃速度和重力的计算上。

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作为内置函数代表移动
        
    }
}