Unity实现一个简单的人物控制

Unity实现一个简单的人物控制


今天来实现一个简单的人物移动的方法。根据用户输入的方向旋转角色并向前移动
具体的实现是这样的

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

public class PlayerMove : MonoBehaviour
{
   public float rotateSpeed=5f;
   public float moveSpeed=5f;
   void Update()
   {
      float hor= Input.GetAxis("Horizontal"); //获取用户水平轴输入
      float vor=Input.GetAxis("Vertical");   //获取用户垂直轴输入
      if(hor!=0||vor!=0)//当用户的输入不为零时才调用移动旋转的方法
      {      
         MovementRotation(hor,vor);
      }
   }
   
   private void MovementRotation(float hor,float vor)
   {
     Quaternion dir=Quaternion.LookRotation(new Vector3(hor,0,vor));
     this.transform.rotation=Quatenion.Lerp(this.transform.rotation,dir,rotateSpeed * Time.deltaTime);
     //使用Lerp方法可以是让旋转更加平滑

      this.transform.Translate(0,0,moveSpeed * Time.deltaTime);//人物向前移动的方法
   }

}

此方法可以实现简单的人物移动,呃。。。。这是我第一次写博客,所以还不会把做出来的效果放上来,大家有兴趣可以自己去试一试这个方法,配合上动画的话就基本上完美了。
以后我会陆续写一些我在学习Unity中遇到了一些问题或者知识点,也希望我写的不对的地方大佬们可以给我指出,互相学习互相进步吧~~

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现人物控制器的方法有很多种,这里介绍一种比较基础的实现方法。 首先,在Unity中创建一个空对象,将其命名为“Player”,然后再为“Player”添加一个Capsule Collider组件和一个Rigidbody组件,这两个组件是人物控制器的基本组成部分。 接下来,我们需要为人物控制器添加一个脚本来实现移动旋转功能。在Scripts文件夹下创建一个新脚本,将其命名为“PlayerController”,然后将其挂载到“Player”对象上。 在“PlayerController”脚本中,我们需要声明和定义一些变量,比如移动速度、旋转速度等。然后在Update()函数中,我们可以使用Input.GetAxis()函数来获取玩家按下的方向键的值,并根据这些值来实现移动旋转。例如: ``` public class PlayerController : MonoBehaviour { public float moveSpeed = 10.0f; public float rotateSpeed = 20.0f; void Update() { float horizontal = Input.GetAxis("Horizontal"); float vertical = Input.GetAxis("Vertical"); transform.Translate(Vector3.forward * moveSpeed * vertical * Time.deltaTime); transform.Rotate(Vector3.up, rotateSpeed * horizontal * Time.deltaTime); } } ``` 在这个例子中,我们使用Input.GetAxis()函数获取水平和垂直方向上的值,并使用transform.Translate()函数实现人物控制器的移动,使用transform.Rotate()函数实现人物控制器的旋转。 最后,我们需要在场景中添加一些灯光和地面,以便能够看到人物控制器的移动旋转效果。 以上就是使用Unity实现人物控制器的基础方法。当然,人物控制器还有很多高级的功能,例如蹲下、跳跃、奔跑等,需要根据实际需求进行扩展和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值