加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

(二)unity 3D 学习-限制跳跃功能

(2014-08-06 12:51:57)
标签:

unity

it

脚本

分类: unity3d

    昨天发的代码中,有一个控制物体跳跃的功能,即通过给物体添加一个向上的力,来实现物体的跳跃。

    但是后来运行过程中发现了一个毛病,就是按空格后物体可以实现跳跃,在腾空过程中继续按空格物体依然还可以往上运动。

    也就是说unity引擎在给物体添加向上的力时,并没有考虑到反作用力这一回事..至少 在rigidbody.AddForce (Vector3.up *jump);这段代码里面没有...

    不过这样的跳跃机制不符合我的要求,我只需要物体和现实世界中一样,即完成一次跳跃后落地才能进行下一次跳跃。

     具体思路:

  1、给跳跃动作添加一个次数限制,即跳跃次数变量,初始值为1;

  2、在点击空格并且物体跳跃次数为1 时物体才能进行跳跃;

  3、点击空格跳跃次数减一。变为0;

  4、物体落地与地面发生碰撞后跳跃次数+1

 

代码如下:

 

var jumpCount=1;

function Update () {

if(Input.GetKey(KeyCode.Space)&&jumpCount=1)
    {
       rigidbody.AddForce (Vector3.up *jump);
       jumpCount=jumpCount-1;
    }
 }
function OnCollisionEnter(collision : Collision){
    {

      if(this.gameObject.tag.CompareTo("dimian"))
      jumpCount=jumpCount+1;
    }

}

 

......................................

我想应该还有更简单的方法,只是现在初学还没想到。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有