private bool CanDisplayHotspotIcon() { if (IsOn()) { Vector3 direction = (transform.position - Camera.main.transform.position); if (Vector3.Angle(direction, Camera.main.transform.forward) > 90f) { iconAlpha = 0f; return(false); } if (KickStarter.settingsManager.cameraPerspective != CameraPerspective.TwoD && KickStarter.settingsManager.occludeIcons) { // Is icon occluded? Ray ray = new Ray(Camera.main.transform.position, GetIconPosition() - Camera.main.transform.position); RaycastHit hit; if (Physics.Raycast(ray, out hit, KickStarter.settingsManager.hotspotRaycastLength, 1 << LayerMask.NameToLayer(KickStarter.settingsManager.hotspotLayer))) { if (hit.collider.gameObject != this.gameObject) { iconAlpha = 0f; return(false); } } } if (KickStarter.playerMenus.IsInteractionMenuOn() && KickStarter.settingsManager.hideIconUnderInteractionMenu) { iconAlpha = Mathf.Lerp(iconAlpha, 0f, Time.deltaTime * 5f); } else if (KickStarter.settingsManager.hotspotIconDisplay == HotspotIconDisplay.OnlyWhenHighlighting || KickStarter.settingsManager.hotspotIconDisplay == HotspotIconDisplay.OnlyWhenFlashing) { if (highlight) { if (KickStarter.settingsManager.hotspotIconDisplay == HotspotIconDisplay.OnlyWhenHighlighting) { iconAlpha = highlight.GetHighlightAlpha(); } else { iconAlpha = highlight.GetFlashAlpha(iconAlpha); } } else { ACDebug.LogWarning("Cannot display correct Hotspot Icon alpha on " + name + " because it has no associated Highlight object."); } } else if (KickStarter.settingsManager.hotspotIconDisplay == HotspotIconDisplay.Always) { iconAlpha = 1f; } else { iconAlpha = 0f; } return(true); } else { iconAlpha = 0f; return(false); } }
public void DrawHotspotIcon() { if (IsOn()) { Vector3 direction = (transform.position - Camera.main.transform.position); if (Vector3.Angle(direction, Camera.main.transform.forward) > 90f) { iconAlpha = 0f; return; } if (KickStarter.settingsManager.cameraPerspective != CameraPerspective.TwoD && KickStarter.settingsManager.occludeIcons) { // Is icon occluded? Ray ray = new Ray(Camera.main.transform.position, GetIconPosition() - Camera.main.transform.position); RaycastHit hit; if (Physics.Raycast(ray, out hit, KickStarter.settingsManager.hotspotRaycastLength, 1 << LayerMask.NameToLayer(KickStarter.settingsManager.hotspotLayer))) { if (hit.collider.gameObject != this.gameObject) { iconAlpha = 0f; return; } } } if (KickStarter.playerInput.interactionMenuIsOn && KickStarter.settingsManager.hideIconUnderInteractionMenu) { iconAlpha = Mathf.Lerp(iconAlpha, 0f, Time.deltaTime * 5f); } else if (KickStarter.settingsManager.hotspotIconDisplay == HotspotIconDisplay.OnlyWhenHighlighting || KickStarter.settingsManager.hotspotIconDisplay == HotspotIconDisplay.OnlyWhenFlashing) { if (highlight) { if (KickStarter.settingsManager.hotspotIconDisplay == HotspotIconDisplay.OnlyWhenHighlighting) { iconAlpha = highlight.GetHighlightAlpha(); } else { iconAlpha = highlight.GetFlashAlpha(iconAlpha); } } else { Debug.LogWarning("Cannot display correct Hotspot Icon alpha on " + name + " because it has no associated Highlight object."); } } else if (KickStarter.settingsManager.hotspotIconDisplay == HotspotIconDisplay.Always) { iconAlpha = 1f; } else { iconAlpha = 0f; } } else { iconAlpha = 0f; return; } if (!KickStarter.mainCamera.IsPointInCamera(GetIconScreenPosition())) { return; } if (iconAlpha > 0f) { Color c = GUI.color; Color tempColor = c; c.a = iconAlpha; GUI.color = c; if (KickStarter.settingsManager.hotspotIcon == HotspotIcon.UseIcon) { CursorIconBase icon = GetMainIcon(); if (icon != null) { icon.Draw(GetIconScreenPosition()); } } else if (KickStarter.settingsManager.hotspotIconTexture != null) { GUI.DrawTexture(AdvGame.GUIBox(GetIconScreenPosition(), KickStarter.settingsManager.hotspotIconSize), KickStarter.settingsManager.hotspotIconTexture, ScaleMode.ScaleToFit, true, 0f); } GUI.color = tempColor; } }
private bool CanDisplayHotspotIcon() { if (IsOn()) { if (Camera.main == null) { return(false); } Vector3 direction = (transform.position - Camera.main.transform.position); if (Vector3.Angle(direction, Camera.main.transform.forward) > 90f) { iconAlpha = 0f; return(false); } if (SceneSettings.CameraPerspective != CameraPerspective.TwoD && KickStarter.settingsManager.occludeIcons) { // Is icon occluded? Ray ray = new Ray(Camera.main.transform.position, GetIconPosition() - Camera.main.transform.position); RaycastHit hit; if (Physics.Raycast(ray, out hit, KickStarter.settingsManager.hotspotRaycastLength, 1 << LayerMask.NameToLayer(KickStarter.settingsManager.hotspotLayer))) { if (hit.collider.gameObject != this.gameObject) { iconAlpha = 0f; return(false); } } } if (!KickStarter.stateHandler.IsInGameplay()) { iconAlpha = 0f; return(false); } else if (KickStarter.playerMenus.IsInteractionMenuOn() && KickStarter.settingsManager.hideIconUnderInteractionMenu) { iconAlpha = iconAlphaLerp.Update(iconAlpha, 0f, 5f); } else if (KickStarter.settingsManager.hotspotIconDisplay == HotspotIconDisplay.ViaScriptOnly) { if (manualShowIconSpeed > 0f) { iconAlpha = iconAlphaLerp.Update(iconAlpha, (manuallyShowIcon) ? 1f : 0f, manualShowIconSpeed); } else { iconAlpha = (manuallyShowIcon) ? 1f : 0f; } } else if (KickStarter.settingsManager.hotspotIconDisplay == HotspotIconDisplay.OnlyWhenHighlighting || KickStarter.settingsManager.hotspotIconDisplay == HotspotIconDisplay.OnlyWhenFlashing) { if (highlight) { if (KickStarter.settingsManager.hotspotIconDisplay == HotspotIconDisplay.OnlyWhenHighlighting) { iconAlpha = highlight.GetHighlightAlpha(); } else { iconAlpha = highlight.GetFlashAlpha(iconAlpha); } } else { ACDebug.LogWarning("Cannot display correct Hotspot Icon alpha on " + name + " because it has no associated Highlight object.", gameObject); } } else if (KickStarter.settingsManager.hotspotIconDisplay == HotspotIconDisplay.Always) { iconAlpha = 1f; } else { iconAlpha = 0f; } return(true); } else { iconAlpha = 0f; return(false); } }