今天添加跳躍功能,重點在跳躍速度和重力的計算上。
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作為内置函數代表移動
}
}