Switch开关
1.调整地图
2.加入Door和Switch
添加Door和Switch到场景,并设置位置
分别给两个节点加上碰撞检测组件Box Collider 2D,Switch设置为Trigger
3.脚本逻辑
新建脚本Switch,添加组件到Switch节点上
添加参数
public GameObject objectToSwitch; //Switch对象,即Door
private SpriteRenderer theSR; //
public Sprite downSprite; //按下后的Sprite
private bool hasSwitched; //开关是否按下
在Unity中设置指向Door,按下的Sprite图片
在Start()中初始化
void Start()
{
theSR = GetComponent<SpriteRenderer>();
}
添加碰撞检测
private void OnTriggerEnter2D(Collider2D other)
{
if(other.tag == "Player" && !hasSwitched)
{
//隐藏门
objectToSwitch.SetActive(false);
//设置为按下后的Sprite,设置开关为按下
theSR.sprite = downSprite;
hasSwitched = true;
}
}
4.开关门
添加参数
private bool deactivateOnSwitch; //激活开关
设置门的状态时,添加判断
//门的显示隐藏状态
if (deactivateOnSwitch)
{
objectToSwitch.SetActive(false);
}
else
{
objectToSwitch.SetActive(true);
}
在Unity中,默认设置deactivateOnSwitch为true