【发布时间】:2018-03-23 08:06:43
【问题描述】:
我编写了一些代码来检测攀爬(附加到播放器对象的脚本):
private float PlayerColHeight;
private float PlayerColWidth;
private bool Climb = false;
void Start () {
PlayerCol = GetComponent<CapsuleCollider2D> ();
PlayerColHeight = PlayerCol.bounds.size.y;
PlayerColWidth = PlayerCol.bounds.size.x;
}
private void OnCollisionStay2D(Collision2D col){
if (!IsGrounded() && (col.gameObject.tag == "Wall")) {
Vector2 position = transform.position;
Vector2 wallPos = col.transform.position;
float wallColHeight = col.gameObject.GetComponent<BoxCollider2D> ().bounds.size.y;
if ((position.y+PlayerColHeight/2)==(wallPos.y + wallColHeight/2)){
Climb = true;
}
Debug.Log (Climb);
}
}
这意味着当玩家在空中并与墙壁碰撞时,我需要检查玩家顶部 Y = 墙壁顶部 Y 并了解它是否有效。
但这不起作用...控制台仅返回 False。
图片:
为什么它不起作用?如果你知道另一种攀登的方法,你能解释一下吗?
【问题讨论】: