如何在Unity中实现物体的二段跳
2016-09-27 21:34
459 查看
//第一次跳
void Jump()
{
//判断是否在地面,如果是在地面允许跳
if (m_isOnGround)
{
m_rigidbody.drag = 5f;
//bool类型,按space键跳跃,返回bool类型
if (m_jump)
{
//跳跃受力
m_rigidbody.drag = 0f;
m_rigidbody.velocity = new Vector3(m_rigidbody.velocity.x, 0f, m_rigidbody.velocity.z);
m_rigidbody.AddForce(new Vector3(0, moveSet.JumpForce, 0), ForceMode.Impulse);
//跳起后,跳跃状态为false
is_jump = false;
}
//重置按键
m_jump = false;
}
}
//第二次跳跃
void Jump2()
{
//如果不是在地面
if (!m_isOnGround)
{
//bool类型,按space键跳跃,返回bool类型
if (m_jump)
{
//bool类型,判断跳跃状态
if (!is_jump)
{
m_rigidbody.drag = 0f;
m_rigidbody.velocity = new Vector3(m_rigidbody.velocity.x, 0f, m_rigidbody.velocity.z);
m_rigidbody.AddForce(new Vector3(0, moveSet.JumpForce, 0), ForceMode.Impulse);
}
//跳起后,跳跃状态为false
is_jump = true;
}
//重置按键
m_jump = false;
}
}
void Jump()
{
//判断是否在地面,如果是在地面允许跳
if (m_isOnGround)
{
m_rigidbody.drag = 5f;
//bool类型,按space键跳跃,返回bool类型
if (m_jump)
{
//跳跃受力
m_rigidbody.drag = 0f;
m_rigidbody.velocity = new Vector3(m_rigidbody.velocity.x, 0f, m_rigidbody.velocity.z);
m_rigidbody.AddForce(new Vector3(0, moveSet.JumpForce, 0), ForceMode.Impulse);
//跳起后,跳跃状态为false
is_jump = false;
}
//重置按键
m_jump = false;
}
}
//第二次跳跃
void Jump2()
{
//如果不是在地面
if (!m_isOnGround)
{
//bool类型,按space键跳跃,返回bool类型
if (m_jump)
{
//bool类型,判断跳跃状态
if (!is_jump)
{
m_rigidbody.drag = 0f;
m_rigidbody.velocity = new Vector3(m_rigidbody.velocity.x, 0f, m_rigidbody.velocity.z);
m_rigidbody.AddForce(new Vector3(0, moveSet.JumpForce, 0), ForceMode.Impulse);
}
//跳起后,跳跃状态为false
is_jump = true;
}
//重置按键
m_jump = false;
}
}
相关文章推荐
- unity实现多点触控代码
- 在Unity中实现动画的正反播放代码
- Unity UGUI教程之实现滑页效果
- unity实现摄像头跟随
- Unity3D上路_01-2D太空射击游戏
- Unity3D上路_02-第一视角射击游戏
- Unity3D上路_03-塔防游戏
- Unity3D上路_04-基础资源介绍
- Unity3D上路_05-网络相关
- Unity3D-5.3.5发布VR项目到Android
- unity 新UI草稿
- [软件资讯]Unity已支持将3D游戏导出成Flash
- ShaderLab: Pass
- Unity 武器拖尾效果
- unity常见问题之20题
- Unity3D与JavaWeb服务器传递数据和文件 ---建立Java服务器
- unity动态加载资源并缓存到本地
- Unity3D动画存储插件
- unity 赛车相机跟随物体移动
- uLua中遇到的问题