问题与c#脚本一致,玩家攀登团结

时间:2014-10-01 18:49:14

标签: c# unity3d

我想让玩家爬上梯子。 (2D游戏)

我使用此代码,

void OnTriggerEnter2D(Collider2D collider){
    if(collider.gameObject.tag=="Ladder"){
        _canClimb = true;
        _anim.SetBool("Climb",true);
    }
}

void OnTriggerExit2D(Collider2D collider){
    if(collider.gameObject.tag=="Ladder"){
        _canClimb = false;
        _anim.SetBool("Climb",false);
    }
}

在update()中,

if(Input.GetKey(KeyCode.UpArrow) && _canClimb == true){
    transform.position = Vector3.Lerp(transform.position,ladderTop.transform.position,Time.deltaTime);
}

我已将儿童游戏对象放到梯子上以获得梯子顶部的位置。

但是当玩家跳过并用梯子的盒子对撞机击中时,我可以看到攀爬动画。然后球员再次跌倒在地。它并没有向上移动。这是什么原因?

1 个答案:

答案 0 :(得分:0)

现在它按预期工作,这是代码,

if(Input.GetKey(KeyCode.UpArrow) && _canClimb == true){
        _myRigidBody.isKinematic = true;
        transform.position = Vector3.Lerp(transform.position,ladderTop.transform.position,Time.deltaTime);
}

我刚添加了这一行,它完美无缺:

_myRigidBody.isKinematic = true;

Rigidbody.isKinematic

  

如果启用了isKinematic,则力,碰撞或关节将不再影响刚体。