实现如下关卡:
任务触碰黄箱,右侧黑条下降,并且只可以交互三秒
image实现触碰:
unity碰撞有两种:
image因为这里实现触碰黄点的交互,所以可以选择OnTriggerStay2D
void OnTriggerStay2D(Collider2D other) { if(other.gameObject.tag == "yellowPot") { space = true; //space 是交互按钮变量,为true时可以进行下一步交互 } }
黑墙的移动:
wall.Translate(new Vector3(0f, -0.5f, 0f) * moveSpeed * Time.deltaTime); //wall :public Transform wall;
控制时间:通过Time.deltatime记录每帧花的时间
private bool haved; //人物需要离开黄点的判断
private bool wallOver; //墙是否到达地步
if(wallOver && haved && space && Input.GetKey(KeyCode.Space))
{
key1 += Time.deltaTime;
Debug.Log(key1);
wall.Translate(new Vector3(0f, -0.5f, 0f) * moveSpeed * Time.deltaTime);
if(key1 >= 3.0f )
{
Debug.Log(key1);
haved = false;
}
}
if(Input.GetKeyUp(KeyCode.Space))
{
key1 = 0f;
}
void OnTriggerExit2D(Collider2D other) {
if(other.gameObject.tag == "yellowPot")
{
space = false;
haved = true;
}
}
网友评论