//------------------------------------------------------------------------/ // Methods //------------------------------------------------------------------------/ /// <summary> /// Constructs a proxy in order to observe another GameObject's visibility messages /// </summary> /// <param name="target"></param> /// <param name="type"></param> /// <param name="onCollision"></param> /// <param name="persistent"></param> /// <returns></returns> public static StratusVisibilityProxy Construct(MeshRenderer target, OnVisible onVisible, float duration, float distance, bool persistent = true) { var proxy = target.gameObject.AddComponent <StratusVisibilityProxy>(); proxy.onVisible += onVisible; proxy.duration = duration; proxy.distance = distance; proxy.persistent = persistent; return(proxy); }
public void TurnVisible() { if (!isInvisible) { return; } StopCoroutine(_invisibilityCoroutine); AudioManager.Instance.Play(AudioClipName.Visible); isInvisible = false; playerSprite.color = Color.white; OnVisible?.Invoke(); StartCoroutine(EnableInvisibility()); }
protected void SetVisible(bool visible) { //don't set visible if the worlditem is hidden RefreshShadowCasters(visible); if (Is(WILoadState.Initialized | WILoadState.PreparingToUnload | WILoadState.Unloading)) { try { if (visible) { OnVisible.SafeInvoke(); } else { OnInvisible.SafeInvoke(); } } catch (Exception e) { Debug.LogException(e); } } }
public void InvokeVisible() { OnVisible?.Invoke(); }