public void Activate(MadLevelIcon icon) { if (activeIcon != null && icon != activeIcon) { DeactivateActiveIcon(); } activeIcon = icon; switch (twoStepActivationType) { case TwoStepActivationType.Disabled: if (!icon.locked) { icon.LoadLevel(); } break; case TwoStepActivationType.OnlyOnMobiles: if (SystemInfo.deviceType == DeviceType.Handheld) { if (!icon.hasFocus) { icon.hasFocus = true; if (onIconActivate != null) { onIconActivate(icon, icon.level.name); } } else if (!icon.locked) { icon.LoadLevel(); } } else if (!icon.locked) { icon.LoadLevel(); } break; case TwoStepActivationType.Always: if (!icon.hasFocus) { icon.hasFocus = true; if (onIconActivate != null) { onIconActivate(icon, icon.level.name); } } else if (!icon.locked) { icon.LoadLevel(); } break; default: Debug.LogError("Uknown option: " + twoStepActivationType); break; } }
// second tier of icon activation. Will go through loadLevel condition private IEnumerator Activate2nd(MadLevelIcon icon) { switch (loadLevel) { case LoadLevel.Immediately: icon.LoadLevel(); break; case LoadLevel.WithDelay: yield return(new WaitForSeconds(loadLevelLoadLevelDelay)); icon.LoadLevel(); break; case LoadLevel.SendMessage: if (loadLevelMessageReceiver == null) { Debug.LogError("No send message receiver", this); break; } if (string.IsNullOrEmpty(loadLevelMessageName)) { Debug.LogError("No sent message name", this); break; } if (loadLevelMessageIncludeChildren) { loadLevelMessageReceiver.BroadcastMessage(loadLevelMessageName, icon); } else { loadLevelMessageReceiver.SendMessage(loadLevelMessageName, icon); } break; case LoadLevel.DoNotLoad: // don't do anything break; default: Debug.LogError("Unknown LoadLevel option: " + loadLevel); break; } }
// second tier of icon activation. Will go through loadLevel condition private IEnumerator Activate2nd(MadLevelIcon icon) { switch (loadLevel) { case LoadLevel.Immediately: icon.LoadLevel(); break; case LoadLevel.WithDelay: yield return new WaitForSeconds(loadLevelLoadLevelDelay); icon.LoadLevel(); break; case LoadLevel.SendMessage: if (loadLevelMessageReceiver == null) { Debug.LogError("No send message receiver", this); break; } if (string.IsNullOrEmpty(loadLevelMessageName)) { Debug.LogError("No sent message name", this); break; } if (loadLevelMessageIncludeChildren) { loadLevelMessageReceiver.BroadcastMessage(loadLevelMessageName, icon); } else { loadLevelMessageReceiver.SendMessage(loadLevelMessageName, icon); } break; default: Debug.LogError("Unknown LoadLevel option: " + loadLevel); break; } }