/// <summary> /// 在update里调用,当trans关闭时,出现其他layer,消除这个layer /// </summary> /// <param name="trans"></param> public void _ShowOtherLayers(SceneTrans trans) { if (trans.InClosing()) { float alpha = Mathf.Lerp(GetAlpha(), 0f, Time.deltaTime * 15f); alpha = alpha < 0.02f ? 0f : alpha; List <ILayer> layers = LayerManager.GetLayers(); for (int i = 0; i < layers.Count; i++) { var layer = layers[i]; if ((Layer)layer != this) { if (!layer.CanBeShownByOthers()) { continue; } if (layer.GetAlpha() < 1f - alpha) { layer.SetAlpha(1f - alpha); } layer.SetInteractable(true); } else { layer.SetAlpha(alpha); } } if (alpha == 0f) { trans.CompleteClose(); gameObject.SetActive(false); } } }
/// <summary> /// 在update里调用,当trans出现时,隐藏其他layer,只出现这个layer /// </summary> /// <param name="trans"></param> public void _HideOtherLayers(SceneTrans trans) { if (trans.InProcess()) { float alpha = Mathf.Lerp(GetAlpha(), 1f, Time.deltaTime * 15f); alpha = alpha > 0.98f ? 1f : alpha; List <ILayer> layers = LayerManager.GetLayers(); for (int i = 0; i < layers.Count; i++) { var layer = layers[i]; if ((Layer)layer != this) { if (layer.GetAlpha() > 1f - alpha) { layer.SetAlpha(1f - alpha); } if (alpha == 1f) { layer.SetInteractable(false); } } else { layer.SetAlpha(alpha); } } if (alpha == 1f) { trans.CompleteTrans(); } } }
public void ChangeScene(SceneTrans next, Dictionary <string, string> properties) { this.game.ChangeScene(next, properties); }
public void ChangeScene(SceneTrans next) { this.game.ChangeScene(next); }