办法1:设置冲跳状态,处在这种状态时判断碰撞的地形是否为平面 // 用两物体碰撞接触点的法线方向
遇到问题:
办法2:在地图为平面的部分铺上检测层,将其认定为平面/好处:便于边缘保护
遇到问题:
办法3:禁止在地面反弹/或移除反弹材质,手动计算反弹方向,随时取消
遇到问题:要想用逻辑控制实现自定义物理效果,不能使用unity自带的物理模拟。或许要自己写角色控制器
//反弹与跃击判定
private void OnCollisionEnter2D(Collision2D colli)
{
if (bounceAttack)
{
//获得反射方向
//jumpDirect
if (colli.gameObject.tag == "Enermy")
{
}
if (colli.gameObject.tag == "Flat")
{
Debug.Log("Flat");
bounceAttack = false;
}
if (colli.gameObject.tag == "OtherTerrain")
{
Debug.Log("OtherTerrain");
bounceAttack = false;
}
}
}