我正在尝试使用Physics2D.OverlapCircle()
进行条件响应。以下是我正在使用的代码。基本上说,如果重叠是一个名为"平台"设置接地为真。
public bool grounded; //true or fals if you are grounded
public Transform groundCheck; //Object which will check if we are grounded
float groundRadius = .2f; //Radius around ground check object will check if grounded
public LayerMask platform; //Decide which layers count as grounded.
void FixedUpdate()
{
grounded = Physics2D.OverlapCircle(groundCheck.position, groundRadius, platform);
}
在这种情况下true == Jump
。
if (grounded == true)
{
//jump
}
但我并不总是希望它跳起来。例如,如果图层是" Ground"我不想让它跳起来。
如果图层是"平台"我确实希望它跳起来。
我无法弄清楚如何指定哪个图层重叠并执行不同的操作。
答案 0 :(得分:0)
那很有效!这是答案。我只需要在检查器中设置图层,按照我想要的方式运行。
public bool platformTouch; //true or false if touching platform
public Transform groundCheck; //Object which will check if we are grounded
public bool groundedTouch; //true or false if touching ground
public LayerMask ground; //Decide which layers count as grounded.
float groundRadius = .2f; //Radius around ground check object will check if grounded
public LayerMask platform; //Decide which layers count as grounded.
void FixedUpdate()
{
platformTouch = Physics2D.OverlapCircle(groundCheck.position, groundRadius, platform);
groundedTouch = Physics2D.OverlapCircle(groundCheck.position, groundRadius, ground);
}