unity人物控制移动代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CharacterControllerTest : MonoBehaviour
{
    public CharacterController playercc;
    public Vector3 moveMotion;
    public float forwardSpeed = 1f;
    public float trunSpeed = 0.5f;
    public float upSpeed = 0.5f;
    public float downSpeed = 0.5f;

    public float h_value = 0;
    public float v_value = 0;
    public float up_value = 0;

    public float jumpTime = 1;
    public float timer = 0;
    public bool isJump = false;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        h_value = Input.GetAxis("Horizontal");//监测水平方向的输入
        v_value = Input.GetAxis("Vertical");//监测垂直方向的输入


        if (Input.GetKeyDown(KeyCode.Space))
        {
            if(playercc.isGrounded)
            {
                isJump = true;
                timer = 0;
            }
           
        }
        if(isJump)
        {
            if (Input.GetKey(KeyCode.Space))
            {
                timer += Time.deltaTime;
                up_value = 1;
                if (timer > jumpTime)
                {
                    up_value = 0;
                    isJump = false;
                }
            }
        }
        if (Input.GetKeyUp(KeyCode.Space))
        {
            up_value = 0;
            isJump = false;
        }
        //按下的持续状态

        //前后移动
        //左右移动

        //Vector3 forwardMoveSpeed = new Vector3(0, 0, 0.01f);
        Vector3 forwardMoveSpeed = playercc.transform.forward * v_value * forwardSpeed * Time.deltaTime;

        Vector3 trunMoveSpeed = playercc.transform.right * h_value * trunSpeed * Time.deltaTime;

        Vector3 upMoveSpeed = playercc.transform.up * upSpeed * up_value * Time.deltaTime;

        Vector3 downMoveSpeed = -playercc.transform.up * downSpeed * Time.deltaTime;

        moveMotion = forwardMoveSpeed + trunMoveSpeed + upMoveSpeed + downMoveSpeed;
        playercc.Move(moveMotion);
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值