第一人称移动旋转(需要在玩家身上添加 CharacterController组件,将脚本挂到玩家身上,)

首先随意创建一个物体作为主角,然后将摄像机调整下位置放到物体头顶,并且添加为子物体。

并且在这个物体上添加一个CharacterController组件。

创建一个脚本名为Move

CharacterController playerController;

    Vector3 direction;

       public float speed = 10;

    public float jumpPower = 3;

    public float gravity = 7f;

    public float mousespeed = 5f;

    float RotationY = 0f;

    float RotationX = 0f;

    public Transform agretctCamera;

   void Start()

{

    playerController = this.GetComponent<CharacterController>();

}

   void Update()

{

        float _horizontal = Input.GetAxis("Horizontal");

        float _vertical = Input.GetAxis("Vertical");

        if (playerController.isGrounded)

        {

            direction = new Vector3(_horizontal, 0, _vertical);

            if (Input.GetKeyDown(KeyCode.Space))

                direction.y = jumpPower;

            

        }

        direction.y -= gravity * Time.deltaTime;

        playerController.Move(playerController.transform.TransformDirection(direction * Time.deltaTime * speed));

        RotationX += Input.GetAxis("Mouse X") * mousespeed;

        RotationY -= Input.GetAxis("Mouse Y") * mousespeed;

        RotationY = Mathf.Clamp(RotationY, -45f, 45f);

        this.transform.eulerAngles = new Vector3(0, RotationX, 0);

        agretctCamera.transform.eulerAngles = new Vector3(RotationY, RotationX, 0);

    }

}

将此代码放到自己脚本上即可,并且可以在外部修改各种数据,将摄像机拖到相应位置即可。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值