【Unity3D日常开发】(一)实现角色移动行走之CharacterController组件
2023-09-11 14:19:57 时间
推荐阅读
大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新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);
}
}
}
脚本解析:
1、使用Input.GetAxis(“Horizontal”) 和 "Vertical"得到键盘(操纵杆)输入的垂直和横向的值
2、使用CharacterController.SimpleMove(Vector3)设置物体运动的方向和速度
3、targetDir 是键盘输入之后获取到的方向,将目标用SimpleMove方法向获取到方向移动
4、transform.lookat 是让目标旋转到获取到的方向
5、transform.forward 是让目标向正前方移动
(4)将PlayMove脚本,附加到胶囊体上:
(5)运行程序,点击WSAD即可移动:
相关文章
- 基于HiKariCP组件,分析连接池原理
- h5 录音 自动生成proto Js语句 UglifyJS-- 对你的js做了什么 【原码笔记】-- protobuf.js 与 Long.js 【微信开发】-- 发送模板消息 能编程与会编程 vue2入坑随记(二) -- 自定义动态组件 微信上传图片
- Flutter Scaffold组件详情配制使用
- VS2012用于OpenCV开发,安装时可以去除的组件
- Android开发工程师文集-提示框,菜单,数据存储,组件篇
- 《移动安全》(1)Android开发基础:安卓操作系统架构与应用程序组件
- 【ArkTS】ArkTS开发组件回调中this指向问题
- 快应用tabs和video组件滑动事件优先级问题
- 微信 小程序组件 滑动导航和获取元素实际高度
- react开发组件并发包到npm
- react组件懒加载
- 《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 2.2 网页易读性倡议的无障碍的富因特网应用程序组件(WAI-ARIA)
- 微信小程序基于swiper组件的tab切换
- SwiftUI iOS 组件之PageView手势切换欢迎界面(教程含源码)
- SwiftUI 1原生实现之轮播图组件实现自动切换图片(教程含源码)
- 鸿蒙提供对话框组件有哪些类型 (HarmonyOS鸿蒙开发基础知识)
- useMemo优化React Hooks程序性能,解决子组件重复执行问题
- 微信小程序原生开发功能合集六:富文本组件的封装
- 微信小程序原生开发功能合集四:复选框组件的封装
- 微信小程序原生开发功能合集二:下拉选择组件封装
- React之组件之间的通讯
- PyQt5 中调用MySql接口失败 ( QSqlDatabase 组件) 在Linux环境下如何修改
- Python开发GIS的应用组件包
- 【Unity3D-UGUI系列】(六)Panel 容器组件详解
- 【Unity3D日常开发】(二)实现角色移动行走之Transform、Rigidbody、CharacterController组件
- 微信小程序实现自定义组件
- windows 服务开发组件之Topshelf
- Kettle 调优 (使用阻塞组件的同时数据量大)
- 从0开发游戏引擎之引擎基础组件-Node类实现
- VUE.JS组件化开发实践