unity设置悬空物体,人物触发下落
public float time = 0f;//定义悬空失效时间
private TargetJoint2D _targetJoint2D;//获取这个组件,给你想要悬空的物体加上TargetJoint2D组件,2d游戏是这个,3d游戏是TargetJoint
private BoxCollider2D _boxCollider2D;//获取组件,该物体collider首先设置成istrigger=true。
void Start()//得到该物体的这两个组件
{
_boxCollider2D = GetComponent<BoxCollider2D>();
_targetJoint2D = GetComponent<TargetJoint2D>();
}
private void OnCollisionEnter2D(Collision2D collision)
{
if(collision.gameObject.tag=="Player")
{
Invoke("fall", time);//调用fall函数,使物体下降
}
if(collision.gameObject.tag=="enemy")
{
Destroy(gameObject);
}
}
void fall()
{
_targetJoint2D.enabled = false;//重力可以作用到物体
_boxCollider2D.isTrigger = false;//触发器失效
}