Unity3D日常开发】(一)实现角色移动行走之CharacterController组件

网友投稿 1067 2022-05-28

推荐阅读

CSDN主页

GitHub开源地址

Unity3D插件分享

简书地址

我的个人博客

QQ群:1040082875

大家好,我是佛系工程师

☆恬静的小魔龙☆

,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

一、前言

今天就分享一下如何让主角移动的脚本。

需要用到Unity 的CharacterController组件控制行走。

效果图:

二、实现

(1)新建一个Plane作为地面:

(2)让摄像机正对着地面,可以使用快捷键Ctrl+Shift+F,让摄像机快速对齐到屏幕:

(3)新建一个胶囊体,添加CharacterController组件:

(4)新建脚本PlayerMove.cs,编辑脚本:

using UnityEngine; public class PlayerMove : MonoBehaviour { private CharacterController cc; public float speed = 4; void Start() { cc = GetComponent(); } void Update() { float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); if (Mathf.Abs(h) > 0.1f || Mathf.Abs(v) > 0.1) { Vector3 targetDir = new Vector3(h, 0, v); transform.LookAt(targetDir + transform.position); cc.SimpleMove(transform.forward * speed); } } }

脚本解析:

1、使用Input.GetAxis(“Horizontal”) 和 "Vertical"得到键盘(操纵杆)输入的垂直和横向的值

2、使用CharacterController.SimpleMove(Vector3)设置物体运动的方向和速度

3、targetDir 是键盘输入之后获取到的方向,将目标用SimpleMove方法向获取到方向移动

4、transform.lookat 是让目标旋转到获取到的方向

【Unity3D日常开发】(一)实现角色移动行走之CharacterController组件

5、transform.forward 是让目标向正前方移动

(4)将PlayMove脚本,附加到胶囊体上:

(5)运行程序,点击WSAD即可移动:

unity

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

上一篇:鲲鹏云服务器移植GMAP
下一篇:【Unity3D日常开发】(二十八)Unity3D中实现自定义快捷键
相关文章