Unity3D日常开发】(五)Unity3D中10行代码实现简单角色行走移动

网友投稿 1344 2022-05-28

推荐阅读

CSDN主页

GitHub开源地址

Unity3D插件分享

简书地址

我的个人博客

QQ群:1040082875

一、前言

今天分享一个简单的角色移动脚本,主要用到碰撞器和刚体组件,代码简单易懂,复用性、扩展性较强,跟我一起来看看吧。

二、效果图

在这里插入图片描述

三、代码

using UnityEngine;

public class RunTest1 : MonoBehaviour

{

public float forwardSpeed; //前进的速度

public float backwardSpeed; //后退的速度

public float rotateSpeed; //旋转速度

private Vector3 velocity;

【Unity3D日常开发】(五)Unity3D中10行代码实现简单角色行走移动

void FixedUpdate() { //获取到横轴 前后 的输入 也就是键盘W 和S的输入 float h = Input.GetAxis("Horizontal"); //获取到纵轴 左右 的输入 也就是键盘A 和D的输入 float v = Input.GetAxis("Vertical"); //从上下键的输入,获取到Z轴的输入量 velocity = new Vector3(0, 0, v); //将世界坐标转化为本地坐标 velocity = transform.TransformDirection(velocity); //判断是前进还是后退 if (v > 0.1) { velocity *= forwardSpeed; } else { velocity *= backwardSpeed; } //移动自身坐标 transform.localPosition += velocity * Time.fixedDeltaTime; //旋转角度 transform.Rotate(0, h * rotateSpeed, 0); }

}

四、实现步骤

1.首先我们先设计场景 在场景中新建一个Plane,设置一下宽度和长度 在这里插入图片描述 2.新建一个Capsule,假设这个是主角 在这里插入图片描述 添加刚体组件,锁定XYZ的旋转 在这里插入图片描述 3.设置摄像机的跟随 在这里插入图片描述 直接设置成Capsule的子对象,简单粗暴,然后再设置一下位置旋转角度

4.编写RunTest.cs脚本

using UnityEngine;

public class RunTest1 : MonoBehaviour

{

public float forwardSpeed; //前进的速度

public float backwardSpeed; //后退的速度

public float rotateSpeed; //旋转速度

private Vector3 velocity;

void FixedUpdate() { float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); velocity = new Vector3(0, 0, v); velocity = transform.TransformDirection(velocity); if (v > 0.1) { velocity *= forwardSpeed; } else { velocity *= backwardSpeed; } transform.localPosition += velocity * Time.fixedDeltaTime; transform.Rotate(0, h * rotateSpeed, 0); }

}

5.将脚本赋给Capsule对象 在这里插入图片描述 设置参数 在这里插入图片描述

5.运行 开始快乐的玩耍把 在这里插入图片描述

unity

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:VITIS 2019.2使用非正式测评
下一篇:软硬结合,GPU/FPGA云服务器为什么我们做的更好(二)
相关文章