我想让玩家爬上梯子。 (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);
}
我已将儿童游戏对象放到梯子上以获得梯子顶部的位置。
但是当玩家跳过并用梯子的盒子对撞机击中时,我可以看到攀爬动画。然后球员再次跌倒在地。它并没有向上移动。这是什么原因?
答案 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;
如果启用了isKinematic,则力,碰撞或关节将不再影响刚体。