Exemplo n.º 1
0
		private void DisconnectDelegates() {
			selector = GetComponent<Selector>();
			if (selector != null) {
				selector.useDefaultGUI = true;
				selector.SelectedUsableObject -= OnSelectedUsable;
				selector.DeselectedUsableObject -= OnDeselectedUsable;
			}
			proximitySelector = GetComponent<ProximitySelector>();
			if (proximitySelector != null) {
				proximitySelector.useDefaultGUI = true;
				proximitySelector.SelectedUsableObject -= OnSelectedUsable;
				proximitySelector.DeselectedUsableObject -= OnDeselectedUsable;
			}
			HideControls();
		}
Exemplo n.º 2
0
		private void ConnectDelegates() {
			DisconnectDelegates(); // Make sure we're not connecting twice.
			selector = GetComponent<Selector>();
			if (selector != null) {
				selector.useDefaultGUI = false;
				selector.SelectedUsableObject += OnSelectedUsable;
				selector.DeselectedUsableObject += OnDeselectedUsable;
				defaultUseMessage = selector.defaultUseMessage;
			}
			proximitySelector = GetComponent<ProximitySelector>();
			if (proximitySelector != null) {
				proximitySelector.useDefaultGUI = false;
				proximitySelector.SelectedUsableObject += OnSelectedUsable;
				proximitySelector.DeselectedUsableObject += OnDeselectedUsable;
				if (string.IsNullOrEmpty(defaultUseMessage)) defaultUseMessage = proximitySelector.defaultUseMessage;
			}
		}
		protected void DrawOnSelection(Usable usable, float distance, Selector.Reticle reticle, GUIStyle guiStyle, string defaultUseMessage,
		                               Color inRangeColor, Color outOfRangeColor, TextStyle textStyle, Color textStyleColor) {
			if (usable == null) return;
			if ((usable != lastUsable) || string.IsNullOrEmpty(heading)) {
				lastUsable = usable;
				heading = usable.GetName();
				useMessage = string.IsNullOrEmpty(usable.overrideUseMessage) ? defaultUseMessage : usable.overrideUseMessage;
			}
			GameObject selection = usable.gameObject;
			if (selection != lastSelectionDrawn) {
				selectionHeight = Tools.GetGameObjectHeight(selection);
				selectionHeadingSize = guiStyle.CalcSize(new GUIContent(heading));
				selectionUseMessageSize = guiStyle.CalcSize(new GUIContent(useMessage));
			}

			// Set text color based on distance:
			bool inUseRange = (distance <= usable.maxUseDistance);
			guiStyle.normal.textColor = inUseRange ? inRangeColor : outOfRangeColor;

			// Draw heading:
			Vector3 screenPos = Camera.main.WorldToScreenPoint(selection.transform.position + (Vector3.up * selectionHeight));
			screenPos += offset;
			screenPos = new Vector3(screenPos.x, screenPos.y + selectionUseMessageSize.y + selectionHeadingSize.y, screenPos.z);
			if (screenPos.z < 0) return;
			Rect rect = new Rect(screenPos.x - (selectionHeadingSize.x / 2), (Screen.height - screenPos.y) - (selectionHeadingSize.y / 2), selectionHeadingSize.x, selectionHeadingSize.y);
			UnityGUITools.DrawText(rect, heading, guiStyle, textStyle, textStyleColor);
			
			// Draw use message:
			screenPos = Camera.main.WorldToScreenPoint(selection.transform.position + (Vector3.up * (selectionHeight)));
			screenPos += offset;
			screenPos = new Vector3(screenPos.x, screenPos.y + selectionUseMessageSize.y, screenPos.z);
			rect = new Rect(screenPos.x - (selectionUseMessageSize.x / 2), (Screen.height - screenPos.y) - (selectionUseMessageSize.y / 2), selectionUseMessageSize.x, selectionUseMessageSize.y);
			UnityGUITools.DrawText(rect, useMessage, guiStyle, textStyle, textStyleColor);
			
			// Draw reticle:
			if (reticle != null) {
				Texture2D reticleTexture = inUseRange ? reticle.inRange : reticle.outOfRange;
				if (reticleTexture != null) {
					screenPos = Camera.main.WorldToScreenPoint(selection.transform.position + (Vector3.up * 0.5f * selectionHeight));
					rect = new Rect(screenPos.x - (reticle.width / 2), (Screen.height - screenPos.y) - (reticle.height / 2), reticle.width, reticle.height);
					GUI.Label(rect, reticleTexture);
				}
			}
		}
		void Awake() {
			selector = GetComponent<Selector>();
			proximitySelector = GetComponent<ProximitySelector>();

		}
 void Awake()
 {
     selector          = GetComponent <Selector>();
     proximitySelector = GetComponent <ProximitySelector>();
 }