CharacterController 角色控制器实现移动和跳跃
2024-10-16 22:14:02
之前我使用SimpleMove来控制角色的移动, 后来又想实现人物的跳跃, 看见圣典里面是使用Move来实现的. =.= 然后我都把他们改成move来实现了
代码实现:
using UnityEngine;
using System.Collections; public class PlayerMove : MonoBehaviour { private CharacterController cc;
private bool isJump;
private bool isMove;
public float moveSpeed = 4; //移动的速度
public float jumpSpeed = 4; //跳跃的速度
public float gravity = 1; //重力 private Vector3 moveDirection; private float h = 0;
private float v = 0;
private Vector3 targetDir;
private CollisionFlags flags;
void Start () {
cc = this.GetComponent<CharacterController>();
} void Update () {
h = Input.GetAxis("Horizontal");
v = Input.GetAxis("Vertical"); if (Mathf.Abs(h) > 0.1f || Mathf.Abs(v) > 0.1f)
{
targetDir = new Vector3(h, 0, v);
transform.LookAt(targetDir + transform.position);
isMove = true;
} if (Input.GetButton("Jump") && !isJump)
{
isJump = true;
moveDirection = transform.TransformDirection(moveDirection);
moveDirection.y = jumpSpeed;
} if (isJump)
{
//模拟物理,开始下降
moveDirection.y -= gravity * Time.deltaTime;
flags = cc.Move(moveDirection * Time.deltaTime); //人物碰撞到下面了
if (flags == CollisionFlags.Below)
{
isJump = false;
}
} if (isMove)
{
cc.Move(transform.forward * moveSpeed * Time.deltaTime);
isMove = false;
} }
}
Unity5.1
下载地址: http://yunpan.cn/ccTGZuZI5sc5J 访问密码 c0b3
最新文章
- Java MySql 批量插入数据库addBatch
- 核心动画与UIView的区别
- beego里面自定义配置文件
- SQL增加,删除,更改表中字段
- SoundCloud 的开发功能
- swift3.0 中NSNotification 的使用
- SQLServer:定时作业
- sass学习--什么是sass
- cocos2dx 资源合并.
- hdu5353 Average(模拟)
- PHP MYSQL数据字典
- 3D人脸识别预处理,3D face recognition preprocess
- Python迭代器详解
- Calendar日历工具类
- 绿色版mssql
- android 活动的生命周期
- 面向对象【day07】:新式类和经典类(八)
- PHP中的10个实用函数
- 带你零基础学习HTML5
- 2018.11.02 洛谷P2831 愤怒的小鸟(状压dp)
热门文章
- javascript 中 ";!function(){}() "; 是什么意思?
- 使用PLSql连接Oracle时报错ORA-12541: TNS: 无监听程序
- 奔五的人学IOS:swift练手与csdn,最近学习总结
- VMware vSphere 5.5的12个更新亮点(3)
- C#基础:命令解析
- 常见HTTP状态码的含义
- python 安装 memcache
- 文本输入框的两种div+css的写法
- UIActivityIndicatorView活动控制器的大小改变
- linux下mysql环境支持中文配置步骤