天天看點

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作為内置函數代表移動
        
    }
}