在实现角色站到台阶跟随物体移动的时候,上下运动因为有重力和刚体的碰撞,所以角色可以勉强跟着物体移动,但是会发现角色在下落的时候会跟不上物体导致一直掉落,出现很强的抖动,而左右移动的台阶角色则不会跟着左右运动。
void FixedUpdate(){
if (groundCheck) checkPos = groundCheck.position;
else{
checkPos=transform.position;
checkPos.y-=curCollider.center.y+curCollider.size.y/2;
}
Collider2D band=Physics2D.OverlapCircle(checkPos, Config.checkGroundRadius, 1<<LayerMask.NameToLayer("Band"));
if(band!=null && Array.IndexOf(withTags,band.tag)!=-1){
transform.parent=band.transform;//使跟随移动的物体一起移动
}else{
if(transform.parent!=parent)
transform.parent = parent;//还原一起移动
}
}
其实只要判断物体站在台阶上,则将角色的parent设置为台阶即可。未站在台阶上则还原回角色之前的parent。