黄沙百战穿金甲,不破楼兰终不还。这篇文章主要讲述Unity3D日常开发实现角色移动行走之CharacterController组件相关的知识,希望能为你提供帮助。
?
【Unity3D日常开发实现角色移动行走之CharacterController组件】
大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新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<
CharacterController>
();
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);
脚本解析:
(4)将PlayMove脚本,附加到胶囊体上:
1、使用Input.GetAxis(“Horizontal”) 和 "Vertical"得到键盘(操纵杆)输入的垂直和横向的值
2、使用CharacterController.SimpleMove(Vector3)设置物体运动的方向和速度
3、targetDir 是键盘输入之后获取到的方向,将目标用SimpleMove方法向获取到方向移动
4、transform.lookat 是让目标旋转到获取到的方向
5、transform.forward 是让目标向正前方移动
(5)运行程序,点击WSAD即可移动:
推荐阅读
- 图解transformer
- 数据分析之特征创造——降维算法
- Unity3D插件A*Pathfinding插件分享《A*寻路插件》
- [ 数据结构 -- 手撕排序算法第六篇 ] 归并排序(下)-- 非递归方法实现
- Steam 最新VR 游戏畅销榜——这几款游戏绝对值得一玩~不来看看你可就错过啦!
- Spring Cloud Alibaba Nacos 使用详解
- 对常用I/O模型进行比较说明
- Shell脚本进阶
- iPhone iOS 14的15个最佳第三方主屏幕小部件推荐合集(哪个最好())